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

Inverses cause false property equivalences #3

Closed
ignazio1977 opened this issue Sep 24, 2018 · 1 comment
Closed

Inverses cause false property equivalences #3

ignazio1977 opened this issue Sep 24, 2018 · 1 comment

Comments

@ignazio1977
Copy link
Collaborator

phillord#8

Defining a property, another property that is inverse of the first one, and then declaring a subproperty of the first also as subproperty of the inverse of the second (which is redundant but legal) causes HermiT to think the subproperty is equivalent to the inverse. This is due to inverse property inferences based on property inclusion, but not precise enough to detect that subproperty of an inverseOf expression is not enough to guarantee bidirectional inclusion.

Example:

Prefix: : <http://example.org/>
    Ontology: <http://asdf>
    ObjectProperty: hasBigPart
        SubPropertyOf: hasPart, inverse (partOf)
    ObjectProperty: hasPart
        InverseOf:  partOf
    ObjectProperty: partOf
        InverseOf: hasPart
        Characteristics: Transitive

hasBigPart is inferred to be equivalent to hasPart. For that to be true, another inclusion is needed.

The issue is that HermiT rewrites inverseOf axioms into bidirectional, independent inclusions (so as to normalize inverses that are not written explicitly but declared via inclusions), but when it builds the inverses map it considers the appearance of one inverseOf expression sufficient to infer the bidirectional inverse relation, which would, in the example above, justify the property equivalence. However, that's wrong - both sides of the inclusion are required for this inference.

@ignazio1977
Copy link
Collaborator Author

Fix in version 5 before closing

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

1 participant