190 likes | 299 Views
Mapping OBO to OWL 1.1. Christine Golbreich & Ian Horrocks. OWL : W3C standard ontology language Large user community Many in life sciences Extensive library of ontologies High quality tools Formally specified syntax and semantics. OBO : De facto standard ontology language
E N D
Mapping OBO to OWL 1.1 Christine Golbreich & Ian Horrocks
OWL: W3C standard ontology language Large user community Many in life sciences Extensive library of ontologies High quality tools Formally specified syntax and semantics OBO: De facto standard ontology language Large user community Mainly in life sciences Extensive library of ontologies High quality tools Informally specified syntax and semantics OWL and OBO
OBO at a Glance • Ontology consists of a set of stanzas (frames) • Term stanzas define terms (classes), e.g. [Term] id: GO:0001555name: oocyte growthis_a: GO:0016049 ! cell growth relationship: part_of GO:0048601 ! oocyte morphogenesis intersection_of: GO:0040007 ! growth intersection_of: has_central_participant CL:0000023
OBO at a Glance • Ontology consists of a set of stanzas (frames) • Typedef stanzas define relationships (properties), e.g. [Typedef] id: propreo:is_described_by domain: propreo:chemical_entity range: __Description177
OBO at a Glance • Ontology consists of a set of stanzas (frames) • Instance stanzas define instances (individuals), e.g. [Instance] id: propreo:water_molecule instance_of: propreo:inorganic_solvent_molecule property_value: propreo:is_described_by propreo:CHEBI_15377
OBO and OWL • OBO$OWL interoperability would be useful • Sharing ontologies • Extending tool sets • Establishing exact relationship is not easy • OBO syntax not formally specified, e.g.: The intersection_of tag “indicates that this term represents the intersection of several other terms. The value is either a term id, or a relationship type id, a space, and a term id. [...]”
OBO and OWL • OBO$OWL interoperability would be useful • Sharing ontologies • Extending tool sets • Establishing exact relationship is not easy • OBO semantics not formally specified, e.g.: The relationship tag “describes a typed relationship between this term and another term. [...] cardinality constraints specify the number of relationships of a given type that may be defined for instances of this term [...]”
Proposed Solution • Formalise OBO syntax using BNF grammar, e.g.: The intersection_of tag “indicates that this term represents the intersection of several other terms. The value is either a term id, or a relationship type id, a space, and a term id. [...]” a intersection := intersection of:termOrRestrtermOrRestr := term-id | restrictionrestriction := relationship-id term-id
Proposed Solution • Formalise OBO semantics via mapping to OWL 1.1 relationship: R C minCardinality=3 a ObjectMinCardinality(3 R C)
Proposed Solution • Formalise OBO semantics via mapping to OWL 1.1 [Term] id: Aname: Example Classis_a: B relationship: R C minCardinality=3 aSubClassOf(A B)SubClassOf(A ObjectMinCardinality(3 R C))EntityAnnotation(OWLClass(A) Label(“Example Class”))
Advantages of Our Approach? • Clarifies and disambiguates OBO syntax • E.g., can a relationship have more than one range? typedef-stanza := ‘[Typedef]’ … [ 'range:' termOrReserved ] …
Advantages of Our Approach? • Clarifies and disambiguates OBO semantics • E.g., is cardinality qualified or not? relationship: R C minCardinality=3 aObjectMinCardinality(3 R C) • and what is the precise semantics? (ObjectMinCardinality(3 R C))I = { x | #{ y | ( x, y ) ∈ RI and y ∈ CI } ≥ 3 }
Advantages of Our Approach? • Can capture almost all of OBO in OWL 1.1, e.g.: [Typedef]id: locationtransitive_over: part_of aSubObjectPropertyOf( SubObjectPropertyChain(location part_of) location)) • Only fails to capture • “cyclic” relations (semantics?) • negative assertions about relations (e.g., not transitive)
Advantages of Our Approach? • Can easily extend OWL infrastructure to handle OBO • OWL API extended with OBO parser and serialiser • All tools built on top of API can now read/write OBO
Advantages of Our Approach? • Can easily extend OWL infrastructure to handle OBO • OWL API extended with OBO parser and serialiser • All tools built on top of API can now read/write OBO
Advantages of Our Approach? • Could easily extend OBO infrastructure to handle OWL • To exploit OWL reasoners • To handle (some) OWL ontologies
Advantages of Our Approach? • Could easily extend OBO infrastructure to handle OWL • To exploit OWL reasoners • To handle (some) OWL ontologies
Advantages of Our Approach? • OWL reasoners can deal with (most) OBO ontologies
Summary • OBO$OWL interoperability would be useful • Proposed solution is • Formalise OBO syntax using BNF grammar • Formalise OBO semantics via mapping to OWL 1.1 • Benefits include • Sharing of tools and ontologies • OWL community gets access to OBO ontologies(and major ongoing development effort) • OBO community gets access to OWL tools(and major ongoing development effort)