Sorry for the rushed response, at a meeting, comments inline
On Feb 24, 2013, at 11:26 PM, Alan Ruttenberg wrote:
> I was looking at an OORT generated OBO version of OBI and was struck by how unnecessarily (afaik) unpleasant rendering. Here's the example:
>
> Before:
>
> [Term]
> id: BFO:0000004
> name: independent continuant
> def: "A continuant that is a bearer of quality and realizable entity entities, in which other entities inhere and which itself cannot inhere in anything." []
> property_value: IAO:0000111 "independent continuant" xsd:string
> property_value: IAO:0000112 "a chair" xsd:string
> property_value: IAO:0000112 "a heart" xsd:string
> property_value: IAO:0000112 "a leg" xsd:string
> property_value: IAO:0000112 "a person" xsd:string
> property_value: IAO:0000112 "a symphony orchestra" xsd:string
> property_value: IAO:0000112 "an organism" xsd:string
> property_value: IAO:0000112 "the bottom right portion of a human torso" xsd:string
> property_value: IAO:0000112 "the lawn and atmosphere in front of our building" xsd:string
> property_value: IAO:0000118 "substantial entity" xsd:string
> is_a: BFO:0000002 ! continuant
Yeh, not too pretty. (but not too bad when compared to the rdf/xml!)
This shouldn't be too surprising though. The property_value tags have been in obo-format since 2004 as an extensible generic mechanism for this kind of thing. As IAO uses numeric identifiers, this is what you see in the property value tag.
> Here's what I think it should look like. Comments below. Is there a reason it can't look like this? It seems that the benefit of OBO, something that we should retain, is that it's possible to read and author it in a text editor.
I'm not sure how much benefit there is. I do author obo format in a text editor but thankfully I'm in a small minority. Most users of obo format see the ontology through the prism of oboedit. Unfortunately there isn't much support for anything beyond the core metadata tags in OE. We may have some support for the generic property_value tag if there is enough demand. So actually the generic tags are the best bet for getting more oboedit users to adopt additional metadata schemas.
>
> [Term]
> id: BFO:0000004
> name: independent continuant
> def: "A continuant that is a bearer of quality and realizable entity entities, in which other entities inhere and which itself cannot inhere in anything." []
> example_of_usage: "a chair"
> example_of_usage: "a heart"
> example_of_usage: "a leg"
> example_of_usage: "a person"
> example_of_usage: "a symphony orchestra"
> example_of_usage: "an organism"
> example_of_usage: "the bottom right portion of a human torso"
> example_of_usage: "the lawn and atmosphere in front of our building"
> synonym: "substantial entity" EXACT
> is_a: BFO:0000002 ! continuant
Various reasons, including:
- the spec has been relatively stable for a while.
- you don't gain much (see above). In fact due to the way OE is engineered there is more likely to be generic support for the generic property_value tags than special blessed tags.
- I'm not sure if you're suggesting extending the BNF to account for an additional set of blessed properties, or generically extending it to allow for open ended sets of annotation properties. If the former, why example_of_usage over many other useful annotation properties? How do we know when we have the final set? My goal is to freeze the spec. If the latter, this would make the BNF and spec even more complicated than it already is.
> Notes:
> Don't repeat name as IAO:0000111 - they mean the same thing.
The translated obo-format is just reflecting what's in the input ontology. If the input ontology repeats the rdfs:label in the IAO_0000111 assertion then that's what the translated form shows.
> IAO:0000118 'alternative term' means the same thing as exact synonym
> property_value: IAO:0000112 means example of usage. I use a tag that says that. Is there a reason that the generic tag is necessary/desirable in someone's view?
The generic tag is useful if we want a way to roundtrip arbitrary ontologies.
> One doesn't need to ever write xsd:string, since that's the only type of string there is. When there is provision for language tags that will merit some extra markup.
In terms of roundtripping to/from OWL surely this is required? To distinguish plain literals from xsd:strings.
It's been this way in obo-format since 2004:
http://www.geneontology.org/GO.format.obo-1_2.shtml
(Modeled after the rdf spec)
> While there may be some controversy on a small set of the IAO metadata tags, particularly non-exact "synonyms", most of the metadata terms we envisioned as fitting comfortably in OBO syntax. The other ones I would add as built-in tags are (perhaps not exclusively - but these make sense on quick glance)
>
> editor-note:
> curation-note:
> curation-status:
> term-editor:
> obsolescence-reason:
> imported-from:
> denotator-type:
> first-order-logic-expression:
I could probably come up with a few dozen more. In another year, a dozen more. That's why an extensible syntax (complete with typing for literals) is a good idea.
> While the field values of some of these are supposed to be taken from enumerated sets (e.g. curation_status is (currently) one of {'example to be eventually removed' , 'metadata complete' , 'organizational term' , 'ready for release' , 'metadata incomplete' , uncurated , 'pending final vetting' , 'to be replaced with external ontology term' , 'requires discussion'} there's no reason why the translation rules can't take these from strings to their instances.
One reason is that this set of obsolescence reasons above is incomplete, and we don't want to have to introduce a new specification with a new BNF every time IAO introduces a new obsolescence reason instamce.
(I have a lot of issues with these values but that's probably an issue with the IAO list)
> Some of these tags could be construed to be equivalent to properties in other vocabularies, e.g. 'alternative term' -> skos:altLabel.
This is an issue for IAO surely?
> When there was a wider discussion of this issue a number of years ago, the thought was 1) The other vocabulary terms are often poorly defined or ambiguous 2) that we should have, at least, annotation properties that are defined how we want them to be 3) That we should, in those cases where we defined a property that has a close cognate in a popular semweb vocabulary, as a matter of courtesy, have property assertions for both the foundry defined annotation property as well as the external vocabulary property. Hence OBI mirrors labels (via script) between 'editor preferred name' and refs:label. Our OBO->OWL mapping could do the same.
Sorry, I'm not sure I understand this.