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

Add test to demonstrate owl:Axiom interpretations in inferencing #52

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

ajnelson-nist
Copy link

I've been inspecting owl:Axiom for potential use in a project. (What I'm trying to do is out of scope of this patch series, but the short of it is, I'm trying to almost but not entirely assert a triple, while remaining in OWL 2 DL. Subclassing owl:Axiom looks like it might work, but reviewing the OWL 2 specs has left me spinning. It's not obvious to me whether this is a good idea or an explicit faux pas. If you know one way or the other offhand, I'd appreciate hearing it! Meanwhile, relevant to the RDFLib OWL-RL project, I may have found a bug.)

I am having difficulty finding in the OWL specifications how owl:Axiom is supposed to behave when its described triple is not already asserted(/present) in the graph. Would any of this repository's maintainers be able to help answer some of these questions, encoded in a unit test added in this patch series? (Patch 1 has a commit message providing further detail.)

I appreciate some of this may be out of scope of RL-specific functionality, but it appears from Issues 33 and 35 that this repository is looking to slightly expand its scope beyond RL. Please let me know if there is a better venue for this line of questions.

This patch adds one test to give the RDFLib OWL-RL project's expected
behavior.

From the OWL 2 Mapping to RDF document (cited in test), it appears that
Table 7, row 7, implies a class declaration axiom should be induced by a
populated `owl:Axiom` ("populated" meaning annotated{Source,Property,
Target} are all given), whether or not the referenced axiom is directly
asserted (written as a triple).  The left column pattern contrasts with
Table 17, row 1, which specifies the triple must already be asserted (to
receive further annotations).

This patch runs up against an undefined behavior in the OWL-RDF mapping:
What should be deduced from an IRI that is an `owl:Axiom`? A subtle
detail throughout the document is `owl:Axiom` only appears in references
to blank nodes (`_:x`, rather than `*:x`).

A follow-on patch may be necessary to clarify decisions (and assertions)
around what may or may not be undefined behavior.

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist
Copy link
Author

Also, I'm aware this first version of the unit test fails. I currently think it hits unimplemented functionality in closure construction.

@aucampia
Copy link
Member

Not an OWL expert, but I always have good luck asking at https://gitter.im/linkeddata/chat - so maybe that helps.

@ajnelson-nist
Copy link
Author

I've been informed that if an RDF pattern does not match the OWL 2 Web Ontology Language Mapping to RDF Graphs, the RDF document is in OWL FULL. I would like to stay within OWL 2 DL semantics, so I will modify this PR to not step into that extended usage of owl:Axiom.

A follow-on patch may be necessary to clarify closure behaviors.

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist
Copy link
Author

I've updated the test, but I'm not sure if I placed one of the failure detectors right. An IRI-identified owl:Axiom bumps the graph into OWL 2 FULL. Should the closure raise an Exception on finding it is in OWL 2 FULL?

@aucampia
Copy link
Member

I will try find some time this week to review this.

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 this pull request may close these issues.

None yet

2 participants