PROV Ontology (PROV-O) is a World Wide Web Consortium (W3C) recommended ontology used to structure data about provenance across a wide variety of domains. Basic Formal Ontology (PROV-O) is a top-level ontology ISO/IEC standard used to structure a wide variety of ontologies, including the Relation Ontology (RO) and the Common Core Ontologies (CCO). To enhance interoperability between these ontologies, their extensions, and data organized by them, this repo includes a set of mappings that were created according to a criteria and methodology which prioritizes structural and semantic principles.
Every class and object property from PROV-O and its extensions is mapped to some class or object property from BFO, RO, or CCO.
The mappings use subsumption and equivalence relations either directly with RDFS and OWL, or indirectly with SWRL rules and property chain axioms. Additional SKOS mappings are provided for extra commentary.
The following PROV namespaces have been (1) mapped in the mapping files, (2) imported in the editors file, and (3) all Turtle-serialized examples from each have been loaded as instances in the editors file for testing:
prov:wasMemberOf
may be automatically inferred as a subproperty of BFO "part of" because prov:hadMember
is a subproperty of BFO "has part" and these PROV terms are inverses of each other.Bonus mappings between BFO and the SOSA (Sensor, Observation, Sample, and Actuator) ontology are possible, due to the SOSA-PROV Mapping.
The version of each PROV-O, BFO, RO, and CCO file is specified in the owl:imports
of the editor's file prov-mappings-edit.ttl
.
The following W3C semantic web technologies are used to represent the mappings and the mapping criteria:
The following tools are used to develop and evaluate the mappings:
A separate RDF Turtle file is created to extend each ontology with a set of mappings.
All mappings and ontologies are imported into the editor's file prov-mappings-edit.ttl
to help visualize the mappings using Protege.
A mapping file adds triples which relate terms from each ontology using the following "mapping" predicates: rdfs:subClassOf
, rdfs:subPropertyOf
, owl:equivalentClass
, and owl:equivalentProperty
.
rdfs:comment
and other SSSOM metadata.SPARQL queries are used for finding "unmapped" classes and object properties, and also "candidate" superproperties. The HermiT reasoner is used to check consistency and materialize inferences for various development tasks.
Mappings for each ontology are encoded as separate extensions to maximize compatibility and minimize dependencies for users, following conventions from the PROV-DC (Dublin Core) mapping.
All example instances from the PROV-O documentation and its extensions are temporarily imported into the extended ontology. The HermiT reasoner is used to check if the example instance data is consistent with the extended ontology.
ROBOT runs HermiT and also SPARQL queries for evaluating the mappings. A SPARQL query that formalizes the mapping criteria is executed to check whether any mappings are missing.
How to run tests automatically:
How to run tests manually:
make
from the src directory, or make -C src
from this directory-directmappings
prefix in the file names. These are edited and annotated directly, and imported in the Editor's file for development and testing.Tim Prudhomme, Giacomo De Colle, Austin Liebers, Alec Sculley, Karl Xie, Sydney Cohen, and John Beverley
Please cite "Mapping PROV-O to BFO" using the GitHub URL https://github.com/BFO-Mappings/PROV-to-BFO or its Zenodo DOI.