-
Notifications
You must be signed in to change notification settings - Fork 34
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
UCO's OWL syntax review should test cardinality restrictions #591
Labels
Milestone
Comments
ajnelson-nist
added a commit
that referenced
this issue
Feb 9, 2024
A follow-on patch will regenerate Make-managed files. References: * #591 Signed-off-by: Alex Nelson <[email protected]>
13 tasks
ajnelson-nist
added a commit
that referenced
this issue
Feb 9, 2024
References: * #591 Signed-off-by: Alex Nelson <[email protected]>
13 tasks
18 tasks
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
Feb 9, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
Feb 9, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
The Requirements Review vote passed this morning. Some testing matters need to resolve before the implementation of this proposal is announced for a vote. |
ajnelson-nist
added a commit
to casework/CASE-Examples
that referenced
this issue
Feb 28, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
Feb 28, 2024
A follow-on patch will regenerate Make-managed files. References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
Feb 28, 2024
References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Corpora
that referenced
this issue
Feb 29, 2024
No effects were observed on Make-managed files. References: * #63 * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to ucoProject/UCO-Archive
that referenced
this issue
Mar 13, 2024
References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
Mar 13, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
Mar 13, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Examples
that referenced
this issue
Mar 13, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Corpora
that referenced
this issue
Mar 13, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#591 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
that referenced
this issue
Oct 29, 2024
References: * #591 * #638 Signed-off-by: Alex Nelson <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Background
Use cases are starting to appear suggesting restoring some OWL modeling practices around cardinality. For instance, CASE Issue 146 introduces
owl:Restriction
s to suggest objects should exist, separately from (and complementary to) the SHACL shapes requiring that they must. Another proposal seems to be suggested from CASE 146 on changing part of the implementation ofuco-core:ContextualCompilation
away from SHACL. Separately, another proposal is coming soon pertaining to a significant revision toFacet
specifications, whereowl:Restriction
s may fulfill a need where SHACL might or might not be appropriate to use.In support of processing those proposals, UCO should begin testing cardinality syntax.
Requirements
Requirement 1
UCO must maintain its stance of conformance with OWL 2 DL syntax where OWL constructs are used. (Since transitioning to SHACL, nuances around this requirement have mostly been exercised in custom datatypes in the
vocabulary:
namespace.)Requirement 2
UCO must assure conformant usage of OWL cardinality restrictions.
Risk / Benefit analysis
Benefits
vocabulary:
namespace.)As a data point / aside, UCO's usage of
owl:Restriction
in 0.6.0, the last version posted before the transition to SHACL in 0.7.0, had one issue according to these and the other OWL-review shapes, outside of the issues in the vocabulary namespace that were addressed near 1.0.0. Some restrictions onobservable:addressValue
used an unqualified cardinality of exactly-1 onobservable:addressValue
, but specified a data range as is only done on qualified cardinalities. See e.g.observable:DigitalAddressFacet
. This restriction issue occurred four times total.Risks
sh:targetSubjectsOf
). Deeper review of the predicates' objects seems to present unrelated challenges, left out of scope.ObjectMinCardinality
. This saves on name invention, but might be confusing to those looking forsh-owl:
IRIs that repeatowl:
IRIs.Competencies demonstrated
Competency 1
OWL and SHACL have different ways of specifying expectations about counts of properties. For instance, take the SHACL specification's example for a shape validating usage of a class called "hand" (from Section 4.7.3):
This shape sets up rules around classes
ex:Hand
,ex:Digit
,ex:Thumb
, andex:Finger
. The brief hierarchy for those is (guessing the spelling with OWL):OWL has its own way of specifying specialized behaviors for the property
ex:digit
, which differs in semantics and syntax. (The semantics, on OWL being open-world and SHACL closed-world, and impacts on inference, are not planned to be discussed in this proposal focused on syntax-checking.) This supplementary OWL graph describes the gist of the SHACL shapes, that a hand in this (simplified) worldview has exactly five digits, exactly 1 thumb, exactly 4 fingers:The translation in the min-and-max-being-equal case is straightforward:
sh:minCount
andsh:maxCount
reduce to exactlyowl:cardinality
.Competency Question 1.1
Is this a correct spelling in OWL?
Result 1.1
No. Both of those cardinality predicates cannot appear in the same
owl:Restriction
.The reason for that spelling restriction is in the "consumptive" nature of the parsing process in the OWL 2 Mapping to RDF specification. Namely, that
owl:Restriction
with the multiple cardinality predicates is consumed to match either theObjectMinCardinality
OWL construct, or theObjectMaxCardinality
construct (see Table 13), depending on whichever of the two the parser happens to have picked first; and the matched set of triples is then subtracted from the graph. So, assumingObjectMinCardinality
is matched first, this is left in the graph:The isolated triple containing
owl:maxQualifiedCardinality
can't match any other parser rules by itself. This causes the parsing process to fail, because the OWL reserved vocabulary IRIs need to be consumed entirely by strict matches according to that document. (From testing with another tool, the specific parsing failure appears to be the unconsumed triple being treated as an annotation, with the annotation predicate being a member of the reserved vocabulary. Re-definition of reserved vocabulary IRIs is disallowed in OWL 2 DL.)Solution suggestion
See the linked Pull Request 592 for the implementation.
One shape entailed from development starts on generically capping counts of predicates usable in
owl:Restriction
(inuco-owl:Restriction-shape
). One thing this prevents is another potential from-SHACL translation error: A SHACL shape can have twosh:class
usages (inducing an "intersection" test), but anowl:Restriction
can't have twoowl:onClass
usages, for the same consumptive explanation given in Result 1.1.Coordination
Coordination
develop
for the next releasedevelop
state with backwards-compatible implementation merged intodevelop-2.0.0
develop-2.0.0
(or N/A)develop
branch updated to track UCO's updateddevelop
branchdevelop-2.0.0
branch updated to track UCO's updateddevelop-2.0.0
branchThe text was updated successfully, but these errors were encountered: