I was looking at an OORT generated OBO version of OBI and was struck by how unnecessarily (afaik) unpleasant rendering. Here's the example:


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

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.

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

Don't repeat name as IAO:0000111 - they mean the same thing.
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?
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.

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)


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.

Some of these tags could be construed to be equivalent to properties in other vocabularies, e.g. 'alternative term' -> skos:altLabel. 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.