Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

oio:hasAlternativeId should always has a referent, and it should always be a CURIE for a #772

Open
cmungall opened this issue Nov 20, 2020 · 1 comment
Assignees

Comments

@cmungall
Copy link
Contributor

For context: owlcs/owlapi#317 -- a lot of this is my fault, I will endeavour to fix this. It only affects ontologies that implement GO-style merges (which @balhoff hates).

Identified by @althonos in EnvironmentOntology/envo#1045

The value of oio:hasAlternativeId

robot report seems the appropriate place to fix this

here is a sample valid ontology:

############################
#   Annotation Properties
############################

# Annotation Property: <http://www.geneontology.org/formats/oboInOwl#hasAlternativeId> (has_alternative_id)

AnnotationAssertion(rdfs:label <http://www.geneontology.org/formats/oboInOwl#hasAlternativeId> "has_alternative_id"^^xsd:string)



############################
#   Classes
############################

# Class: <http://purl.obolibrary.org/obo/X_1> (<http://purl.obolibrary.org/obo/X_1>)

AnnotationAssertion(<http://purl.obolibrary.org/obo/IAO_0000231> <http://purl.obolibrary.org/obo/X_1> <http://purl.obolibrary.org/obo/IAO_0000227>)
AnnotationAssertion(<http://purl.obolibrary.org/obo/IAO_0100001> <http://purl.obolibrary.org/obo/X_1> <http://purl.obolibrary.org/obo/X_2>)
AnnotationAssertion(owl:deprecated <http://purl.obolibrary.org/obo/X_1> "true"^^xsd:boolean)

# Class: <http://purl.obolibrary.org/obo/X_2> (foo)

AnnotationAssertion(<http://www.geneontology.org/formats/oboInOwl#hasAlternativeId> <http://purl.obolibrary.org/obo/X_2> "X:1"^^xsd:string)
AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/X_2> "foo"^^xsd:string)
)

here is a sample invalid ontology

############################
#   Annotation Properties
############################

# Annotation Property: <http://www.geneontology.org/formats/oboInOwl#hasAlternativeId> (has_alternative_id)

AnnotationAssertion(rdfs:label <http://www.geneontology.org/formats/oboInOwl#hasAlternativeId> "has_alternative_id"^^xsd:string)



############################
#   Classes
############################

# Class: <http://purl.obolibrary.org/obo/X_1> (foo1)

AnnotationAssertion(<http://purl.obolibrary.org/obo/IAO_0000231> <http://purl.obolibrary.org/obo/X_1> <http://purl.obolibrary.org/obo/IAO_0000227>)
AnnotationAssertion(<http://purl.obolibrary.org/obo/IAO_0100001> <http://purl.obolibrary.org/obo/X_1> <http://purl.obolibrary.org/obo/X_2>)
AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/X_1> "foo1"^^xsd:string)
AnnotationAssertion(owl:deprecated <http://purl.obolibrary.org/obo/X_1> "true"^^xsd:boolean)

# Class: <http://purl.obolibrary.org/obo/X_2> (foo2)

AnnotationAssertion(<http://www.geneontology.org/formats/oboInOwl#hasAlternativeId> <http://purl.obolibrary.org/obo/X_2> "X:1"^^xsd:string)
AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/X_2> "foo2"^^xsd:string)

)
@cmungall cmungall self-assigned this Nov 20, 2020
@althonos
Copy link

I'm confused, since I've always seen cases of alt_id being used to give an old identifier to a new term (typically, because of a merge), but it's probably because I'm not clear on the semantics. I understand the alt_id is a remnant of several terms being merged into one, but with what you propose you have the identifier referring to both the old and the new term?

I think I would have expected the replaced_by annotation property to be used here rather than the alt_id...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants