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

Owl 2 DL Vocabulary #427

Merged
merged 12 commits into from
Aug 20, 2022

Conversation

frederich-stine
Copy link

@frederich-stine frederich-stine commented Aug 3, 2022

Issue

This Pull Request resolves all requirements of Issue #435 . (Edited by AJN. Originally referenced #406, which needed to be used as a baseline development state.)

Requirement 1

Datatype 2/3s incompletion resolved with owl:equivalentClass for all relevent vocabulary members.

Requirement 2

Redundant definition subClass of removed for all relevent vocabulary members.

Review steps taken:

  • Pull request is against correct branch
  • Pull Request is in, or reverted to, Draft status before Solutions Approval vote has passed. (Procedural error - merged before vote.)
  • CI passes in UCO feature branch
  • CI passes in UCO current unstable branch (49ffd78) (Note: One extra commit needed due to interaction with another currently in-flight proposal)
  • CI passes in CASE current unstable branch tracking UCO feature branch as submodule (610279a)
  • Impact on SHACL validation reviewed for CASE-Examples
  • Impact on SHACL validation remediated for CASE-Examples
  • Impact on SHACL validation reviewed for casework.github.io
  • Impact on SHACL validation remediated for casework.github.io (N/A)
  • Solutions Approval vote logged on corresponding Issue

ajnelson-nist and others added 5 commits July 22, 2022 21:44
This patch undoes an engineering convenience put in place as part of UCO
CP-100.  RDF Lists that were part of semi-open vocabularies were given
IRIs, so they could be referenced for OWL datatype definitions and for
SHACL membership testing.  This was acknowledged as an incompatibility
with OWL 2 DL, which requires that RDF Lists be identified as blank
nodes.  The concepts were intended to remain until an OWL test mechanism
would identify this error.

A test mechanism is now under development as part of UCO Issue 406, and
correctly flags IRI-identified RDF lists.  Hence, this patch undoes the
change.

To ensure the RDF lists are kept in sync. across their duplicate
locations, a Python unit test has been added to confirm list-equality.

References:
* [UCO OC-12] (CP-100) UCO's idea of "Open vocabulary" does not agree
  with its implementation with owl:oneOf
* ucoProject#406

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
A follow-on patch will refresh Make-managed files.

References:
* ucoProject#406

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
References:
* ucoProject#406

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
A draft version of this patch series assisted in reviewing Issue 389.

References:
* ucoProject#389
* ucoProject#406

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@frederich-stine frederich-stine changed the title Owl 2 dl vocabulary Owl 2 DL Vocabulary Aug 3, 2022
One additional line was supposed to have been copied.  By luck, this
error had still let the remainder of the recipe function, but it's
better to not leave luck in place here.

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist ajnelson-nist linked an issue Aug 8, 2022 that may be closed by this pull request
13 tasks
This test builds on the PR for Issue 406, and will fail CI as it is
currently filed.  The failure is an intentional demonstration of
non-conformance.  This test will need to be merged into another branch
that had applied the syntax fix.

References:
* ucoProject#406
* ucoProject#435

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@frederich-stine frederich-stine changed the base branch from Feature-Issue-406 to develop August 8, 2022 15:16
@frederich-stine
Copy link
Author

@ajelson-nist
Up to date with Feature-Branch-435, which is up to date with 406. Failure on make check due to placeholder test for OWL SHACL compatibility.

Should be good to merge, set target to 'develop'.

@frederich-stine
Copy link
Author

@ajelson-nist Up to date with Feature-Branch-435, which is up to date with 406. Failure on make check due to placeholder test for OWL SHACL compatibility.

Should be good to merge, set target to 'develop'.

Have fixed testing failure, good to merge now.

A pattern implemented in PR 463 is to avoid `sh:declare`, and where
prefixes are needed in SHACL-SPARQL queries, to inline a PREFIX clause.

This patch removes one instance of `sh:prefixes` that is not addressed
by PR 463.

References:
* ucoProject#435
* ucoProject#463

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

@eoghanscasey and @plbt5 - CASE PRs 99 through 103 catch CASE up with some of the practices adopted in UCO 0.8.0 through recent OCs' Solution Approvals. Whomever sees them first, can you please merge them?

I realized CASE had fallen behind when I started reviewing the CASE Examples for this PR, and the new OWL SHACL check for owl:oneOf being in a blank node triggered on CASE's investigation-form vocabulary in every SHACL validation file.

This actually ends up being a behavior similar to pyshacl's --metashacl flag, which reviews the SHACL graph with SHACL-SHACL before reviewing data. pyshacl reviews the "Ontology" graph as well as reviewing the data graph, which is a tool behavior nuance (acknowledged every few months on the pySHACL tracker) I'd either missed or forgotten. Thus, if there's an error in the OWL or RDFS passed in to pyshacl's --ont-graph, it will be reported alongside data errors. This isn't necessarily something we have control over, except possibly adding a "Disable-OWL-review" switch to case_validate that turns off the OWL shapes by adding sh:deactivated true triples.

Paul, would you be interested in reviewing UCO's owl.ttl for shapes that would probably be appropriate to disable when using SHACL on the "ABox" side of a knowledge graph? We can talk in more detail about this Monday.

@eoghanscasey eoghanscasey merged commit fdca735 into ucoProject:develop Aug 20, 2022
@ajnelson-nist
Copy link
Contributor

This was merged prematurely.

@eoghanscasey , please do not revert, that makes a tricky Git situation. We will revert if the vote does not pass on Thursday.

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.

Correct OWL 2 DL syntax of enumerations of literals
3 participants