- From: Chris Mungall <cjm@fruitfly.org>
- Date: Wed, 11 Oct 2006 08:01:24 -0700
- To: Mary Montoya <mhm@ncgr.org>
- Cc: semantic-web@w3.org, public-semweb-lifesci@w3.org
Hi Mary I invite you to submit your comments to the obo-format list, where we are close to finalising a new version of the obof->owl mapping http://www.bioontology.org/wiki/index.php/OboInOwl:Main_Page On Oct 10, 2006, at 10:08 PM, Mary Montoya wrote: > > I have a question about using the OpenBiomedicalOntologies such as > the SequenceOntology in owl format to describe data resident in my > local biological database. > It seems desirable to leverage subclass relationships of terms in > the hierarchy of the SequenceOntology and to have all the terms > there rooted in a common parent obo:Term class. OBO defines > certain information to be provided for all OBO terms such as name, > id, definition, etc. These provide descriptive information of the > class itself not properties of members of the class. So it seems > all obo:Terms would have "class values" for a name, id, def, etc. > I would then expect to find classes in SequenceOntology that are > defined as subClassOf obo:Term and reflect the hierachical > structure of those SequenceOntology terms, for example, so:Gene as > a subClassOf so:Region which is a subClassOf > so:Located_sequence_feature which is a subClassOf obo:Term. The > problem is that the owl class definitions I've seen for OBO terms > don't also include property definitions for individuals of the > class. So an individual of so:Gene doesn't have a property for > name, id, def, etc that I can provide values for from my database. > There are only these class description properties often defined > using rdfs:label, rdfs:comment or as annotation type properties. My > question is: How can I use these publicly available ontologies to > hold values for my data? They seem poised for interoperability if > these properties were available to individuals of these classes. > > Here is one sequence ontology definition I found for gene in owl > format ( others I've seen look similar ) > > <owl:Class rdf:ID="SO_0000704"> > <rdfs:label xml:lang="en">gene</rdfs:label> > <rdfs:comment rdf:datatype="http://www.w3.org/2001/ > XMLSchema#string">A locatable region of genomic sequence, > corresponding to a unit of inheritance, which is associated with > regulatory regions, transcribed regions and/or other functional > sequence regions</rdfs:comment> > <rdfs:subClassOf rdf:resource="#SO_0000001"/> > </owl:Class> > > I thought something like this would be more useful: > > <owl:Class rdf:about="&so;SO_0000704"> > <obo:classId>SO:0000704</obo:classId> > <obo:className>gene</obo:className> > <obo:classDef> > "A locatable region of genomic sequence, corresponding > to a unit of inheritance, which is associated with > regulatory regions, transcribed regions and/or other > functional sequence regions" [SO:rd] </obo:classDef> > <rdfs:subClassOf rdf:resource="&so;SO_0000001"/> > </owl:Class> > > with the root parent Term defined within an obo namespace as > <owl:Class rdf:about="&obo;Term"> > <obo:classId>OBO:Term</obo:classId> > <obo:className>term</obo:className> > <obo:classDef> > Term is a blah, blah > </obo:classDef> > <rdfs:subClassOf> > <owl:Restriction> > <owl:onProperty rdf:resource="&obo;name"/> > <owl:minCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:minCardinality> > <owl:maxCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:maxCardinality> > </owl:Restriction> > </rdfs:subClassOf> > <rdfs:subClassOf> > <owl:Restriction> > <owl:onProperty rdf:resource="&obo;id"/> > <owl:minCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:minCardinality> > <owl:maxCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:maxCardinality> > </owl:Restriction> > </rdfs:subClassOf> > <rdfs:subClassOf> > <owl:Restriction> > <owl:onProperty rdf:resource="&obo;def"/> > <owl:minCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 0 > </owl:minCardinality> > <owl:maxCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:maxCardinality> > </owl:Restriction> > </rdfs:subClassOf> > </owl:Class> > > Then I could do something like this: > > <owl:Class rdf:about="&mystuff;MyGene"> > <rdfs:subClassOf rdf:resource="&so;SO_0000704"/> > <rdfs:subClassOf> > <owl:Restriction> > <owl:onProperty > rdf:resource="&mystuff;chromosomeNumber"/> > <owl:minCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:minCardinality> > <owl:maxCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:maxCardinality> > </owl:Restriction> > </rdfs:subClassOf> > <rdfs:subClassOf> > <owl:Restriction> > <owl:onProperty > rdf:resource="&mystuff;startCoordinate"/> > <owl:minCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:minCardinality> > <owl:maxCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:maxCardinality> > </owl:Restriction> > </rdfs:subClassOf> > <rdfs:subClassOf> > <owl:Restriction> > <owl:onProperty rdf:resource="&mystuff;endCoordinate"/> > <owl:minCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:minCardinality> > <owl:maxCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:maxCardinality> > </owl:Restriction> > </rdfs:subClassOf> > <rdfs:subClassOf> > <owl:Restriction> > <owl:onProperty rdf:resource="&mystuff;sequence"/> > <owl:minCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:minCardinality> > <owl:maxCardinality > rdf:datatype="&xsd;nonNegativeInteger"> > 1 > </owl:maxCardinality> > </owl:Restriction> > </rdfs:subClassOf> > </owl:Class> > > so now I have defined a class MyGene that extends from obo to > sequence ontology and I can define individuals with property values > for the following from my database: > obo:name > obo:id > obo:def > mystuff:sequence > mystuff:endCoordinate > mystuff:startCoordinate > mystuff:chromosomeNumber > > It seems presumptuous to define properties for individuals ( name, > id, etc ) as well as class properties ( className, classID, etc ) > for public ontologies such as obo ontologies but possibly quite > useful for interoperability sake. Any comments would be welcome. > > Mary Montoya > > VPIN project team > NCGR > > > > > >
Received on Wednesday, 11 October 2006 15:02:29 UTC