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

Issue 430: Add top-level class and requirements on node identifiers #467

Merged
merged 19 commits into from
Sep 1, 2022

Conversation

ajnelson-nist
Copy link
Contributor

@ajnelson-nist ajnelson-nist commented Aug 23, 2022

This Pull Request will resolve all requirements of Issue #430 .

Coordination

  • Pull Request is against correct branch
  • Pull Request is in, or reverted to, Draft status before Solutions Approval vote has passed.
  • CI passes in UCO feature branch
  • CI passes in UCO current unstable branch (98ec576)
  • CI passes in CASE current unstable branch tracking UCO's unstable as submodule (db3fe86)
  • Impact on SHACL validation reviewed for CASE-Examples
  • Impact on SHACL validation remediated for CASE-Examples (Deferred)
  • Impact on SHACL validation reviewed for casework.github.io
  • Milestone linked
  • Solutions Approval vote logged on corresponding Issue (once logged, can be taken out of Draft PR status)

This patch is a find-and-replace to reset the value of `sh:nodeKind` in
SHACL constraints, only done within the scope of the UCO ontology files.
The non-UCO shapes files (i.e. for Collections Ontology, OWL) are
intentionally left unaffected by this change, to allow for
interoperability with non-UCO content using those ontologies' concepts.

A follow-on patch will regenerate Make-managed files.

This patch will fail CI from the adjusted constraint.  A further
follow-on patch will correct the unit tests (separated as demonstration
of impact).

References:
* #430

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

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

References:
* #430

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

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
This patch is known to fail CI due to the new test.  It is posted early
for definition-comment feedback.

References:
* #430

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist ajnelson-nist marked this pull request as draft August 23, 2022 03:04
@ajnelson-nist ajnelson-nist added this to the UCO 1.0.0 milestone Aug 23, 2022
This is in preparation of an expansion of the class of disjoint
subclasses of core:UcoThing.

Note that per the OWL 2 to RDF mapping document, an
`owl:AllDisjointClasses` declaration must have a blank node as its
subject.

References:
* #430
* https://www.w3.org/TR/2012/REC-owl2-mapping-to-rdf-20121211/

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
No effects were observed on Make-managed files.

References:
* #430

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
Note that usage of prefixes in the core namespace does not require the
ontology corresponding to the namespace must be imported.

Class declarations are provided for each of the disjoint class members
due to the UCO Core namespace requiring the ability to be valid OWL on
its own.  The classes need to be declared in satisfaction of these rules
from the OWL 2 to RDF parsing (table row numbers start their counts at
1):

* Section 3.2.1:  For any OWL mapping function f(x), "f(x) = ε" means
  "f is not defined at x."
* Table 16, row 10:  The expression "CE(y_i) ≠ ε" reads as "The class
  expression function must be defined for the input y_i."
* Table 9, row 1:  See also the preamble text immediately preceding
  within Section 3.2.1, describing that CE(x) is initialized to ε for
  all x.
* Section 3.2.1 also requires that CE(x) is defined at most once.  Once
  defined, "no attempt should be made to change the function's value for
  x."  (Hence, a later assignment to the same value doesn't qualify as a
  re-definition.)
* Table 7, row 1 and Table 16, row 1 both handle mapping
  `*:x rdf:type owl:Class .` into the OWL structural specification.
* The triple `*:x rdf:type owl:Class .` is required within the
  transitive closure of the ontology being parsed (i.e. the collection
  of all ontologies brought in via `owl:imports`).  This is supported in
  part by Section 3.1.1, and also by order of much of the subtractive,
  consumptive parsing process being unimportant, so long as the entire
  graph is consumed by the parsing process (see the last sentence before
  section 4: "At the end of this process, the graph G must be empty."

Because the UCO Core namespace imports no other UCO namespaces, it must
include the class declarations from other UCO namespaces to support
being OWL-parsed by itself.

References:
* #430
* https://www.w3.org/TR/2012/REC-owl2-mapping-to-rdf-20121211/

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
A follow-on patch will correct the new unit test failures across all
examples.

References:
* #430

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
This revision was part of the review that led to realizing the new
`types:Thread` is a subclass of `core:UcoObject`, which needs a
committee double-check anchored in Issue 470.

References:
* #430
* #470

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

References:
* #430

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

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist and others added 5 commits August 31, 2022 18:27
…archy

References:
* #430
* #470

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
Class definitions are as provided by Sean.

This patch reverts much of the impact of
b491c21
on the core namespace.

References:
* #430

Co-authored-by: Sean Barnum <sbarnum@mitre.org>
Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
This patch reverts a word change from
51f3723.

References:
* #430

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

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

References:
* #430

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

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

Thanks for the approval @eoghanscasey ! I'm going to wait until the versionIRI merges happen before pushing the big green button on this one.

@ajnelson-nist ajnelson-nist merged commit c770704 into develop Sep 1, 2022
@ajnelson-nist ajnelson-nist deleted the Feature-Issue-430 branch September 1, 2022 02:12
ajnelson-nist added a commit to casework/CASE that referenced this pull request Sep 1, 2022
References:
* ucoProject/UCO#430
* ucoProject/UCO#467

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
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.

Resolve current bug in UCO that does not require globally unique IDs for all class objects
2 participants