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

Avoid use of "inverse(Property)" expression in class expressions in favour of providing an inverse relation #229

Closed
matentzn opened this issue Feb 19, 2023 · 6 comments · Fixed by #267

Comments

@matentzn
Copy link
Contributor

We rely a lot on ELK, and this kind of axiom, using complex property expressions in class expressions will result in incomplete reasoning:

    <owl:Class rdf:about="http://purl.obolibrary.org/obo/COB_0000113">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty>
                    <rdf:Description>
                        <owl:inverseOf rdf:resource="http://purl.obolibrary.org/obo/COB_0000087"/>
                    </rdf:Description>
                </owl:onProperty>
                <owl:allValuesFrom rdf:resource="http://purl.obolibrary.org/obo/COB_0000082"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:label xml:lang="en">plan</rdfs:label>
    </owl:Class>

I would like to propose to avoid use of "inverse(Property)" expression in class expressions in favour of providing a named inverse relation. Apart from the fact that we can actually use the expression for reasoning, it is much easier to read, and also better supported by ontology formats that are not OWL (OBO, obographs-json).

@bpeters42
Copy link
Contributor

I believe the only reason we used 'inverse of' was that sometimes it was not-trival to come up with a label for the inverse property, and we wanted to move quickly. For the exact reasons Nico pointed out, we should move away from that.

@matentzn
Copy link
Contributor Author

This is also causing OBO format conversions to break when people are importing COB directly..

@matentzn
Copy link
Contributor Author

matentzn commented May 22, 2024

I had to hotfix some builds like

monarch-initiative/vertebrate-breed-ontology@d509ecf

because the OBO error is so big that even --check false fails..

@matentzn
Copy link
Contributor Author

I suggest to prioritise this as it is really a massive blocker for rolling out COB..

I spend another hour tracking this down now and it requires more than 5 years of ontology pipeline expertise to debug this..

matentzn added a commit to monarch-initiative/vertebrate-breed-ontology that referenced this issue Aug 14, 2024
@bpeters42
Copy link
Contributor

Copying @sebastianduesing - this should be straightforward to do, and it would be great to have it done in our pre-workshop release. If there is a problem finding a label for the inverse like I suspected above, we can start ugly with something like "inverse_of_other_relationship" - we can improve those labels later.

@sebastianduesing
Copy link
Collaborator

Done. No new labels needed.

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

Successfully merging a pull request may close this issue.

3 participants