This repository contains OGC Building Blocks for the Wf4Ever ontologies suite, enabling workflow description, provenance tracking, and research object aggregation with semantic annotations.
The Wf4Ever ontologies provide a comprehensive framework for describing scientific workflows and their execution:
- Prospective Provenance: Describes what a workflow is designed to do (wfdesc)
- Retrospective Provenance: Tracks what actually happened during execution (wfprov)
- Research Object Packaging: Aggregates and contextualizes research artifacts (ro)
- Specialized Artifact Types: Provides concrete implementations for common workflow artifacts (wf4ever)
This repository provides Building Blocks that make these ontologies reusable, testable, and interoperable with modern workflows and APIs.
ID: ogc.bbr.wf4ever.wfdesc
Namespace: http://purl.org/wf4ever/wfdesc#
Purpose: Describe workflow structure, processes, inputs, outputs
Key concepts:
Workflow: A directed graph of processesProcess: An atomic computational stepInput/Output: Data parameters with typesDataLink: Connections between process outputs and inputs
ID: ogc.bbr.wf4ever.wfprov
Namespace: http://purl.org/wf4ever/wfprov#
Purpose: Track workflow execution traces
Key concepts:
WorkflowRun: An execution instance of a workflowProcessRun: Execution of an individual processArtifact: Data artifacts consumed/produced during execution- Temporal information (start/end times, durations)
ID: ogc.bbr.wf4ever.ro
Namespace: http://purl.org/wf4ever/ro#
Purpose: Package and aggregate research artifacts
Key concepts:
ResearchObject: Container for aggregating resourcesResource: Any aggregated artifact (data, workflows, papers)Manifest: Metadata about the aggregation- Annotations and semantic relationships
ID: ogc.bbr.wf4ever.wf4ever
Namespace: http://purl.org/wf4ever/wf4ever#
Purpose: Specialized artifact and process types for workflow systems
Key concepts:
File: File-based artifacts (JSON, GeoTIFF, etc.)Dataset: Scientific dataset collectionsDocument: Textual/formatted content (PDF, HTML)Image: Graphical/raster dataWebServiceProcess: Web service-based processesWorkflowResearchObject: Research objects containing workflows
✅ JSON-LD Contexts: Semantic uplift for JSON documents
✅ JSON Schemas: Validation and documentation
✅ Examples: Real CWL provenance data from scientific workflows
✅ Validation: Automatic testing with pass/fail examples
✅ Ontology Documentation: Auto-generated from OWL/RDF sources
✅ Complete Coverage: 25 classes + 15 properties across 4 ontologies
Browse the online register with full documentation and examples:
Reference building blocks directly from the register:
# In your bblocks-config.yaml
imports:
- https://ogcincubator.github.io/bblocks-wf4ever/{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$ref": "https://ogcincubator.github.io/bblocks-wf4ever/build/annotated/wfdesc/schema.yaml"
}{
"@context": "https://ogcincubator.github.io/bblocks-wf4ever/build/annotated/wfdesc/context.jsonld"
}Build the register locally using Docker:
./build.shView the results locally:
./view.shThen open http://localhost:9090/register/
{
"@context": "https://ogcincubator.github.io/bblocks-wf4ever/build/annotated/wfdesc/context.jsonld",
"@id": "workflow:HelloWorld",
"@type": "Workflow",
"hasSubProcess": [
{
"@id": "workflow:echo",
"@type": "Process",
"hasInput": [{
"@id": "workflow:message",
"label": "Message to echo"
}],
"hasOutput": [{
"@id": "workflow:echoed_message",
"label": "Echoed message"
}]
}
]
}{
"@context": "https://ogcincubator.github.io/bblocks-wf4ever/build/annotated/wfprov/context.jsonld",
"@id": "run:execution-123",
"@type": "WorkflowRun",
"describedByWorkflow": "workflow:HelloWorld",
"startedAtTime": "2025-11-07T10:00:00Z",
"endedAtTime": "2025-11-07T10:05:00Z",
"wasEnactedBy": "engine:cwltool-3.1"
}{
"@context": "https://ogcincubator.github.io/bblocks-wf4ever/build/annotated/ro/context.jsonld",
"@id": "ro:my-research",
"@type": "ResearchObject",
"aggregates": [
{ "@id": "workflow:HelloWorld", "@type": "Workflow" },
{ "@id": "run:execution-123", "@type": "WorkflowRun" },
{ "@id": "data:results.json", "@type": "Resource" }
]
}{
"@context": "https://ogcincubator.github.io/bblocks-wf4ever/build/annotated/wf4ever/context.jsonld",
"@id": "artifact:mangrove_mask.tif",
"@type": ["wfprov:Artifact", "wf4ever:File"],
"basename": "mangrove_mask.tif",
"format": "image/tiff",
"checksum": "sha1:0999fb93da...",
"size": 2048576
}- CWL Building Blocks: Common Workflow Language schemas and validation
- OGC API - Processes: Geoprocessing API building blocks
- PROV-O: W3C Provenance Ontology
This repository focuses on the core ontology building blocks. Future work may include:
- Transformers: Bidirectional conversion between wfdesc and OGC API - Processes
- Mappings: Integration with STAC and other geospatial standards
- Validators: Advanced constraint checking for workflow definitions and provenance traces
- Building Blocks Documentation: Framework overview
- Wf4Ever Project: Original ontologies project
- CWL Specification: Common Workflow Language
- OGC API - Processes: OGC geoprocessing standard
Contributions are welcome! Please see the Building Blocks contribution guide.
To add examples or improve documentation:
- Fork this repository
- Edit source files in
_sources/ - Run
./build.shto test - Submit a pull request
The Wf4Ever ontologies are available under open licenses. See individual building block metadata for details.
This work builds upon the Wf4Ever Project funded by the European Commission's Seventh Framework Programme (FP7).
Building Blocks framework developed by the OGC