-
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
ContextualCompilation should remove its 1-member minimum #599
Labels
Milestone
Comments
ajnelson-nist
changed the title
ContextualCompilation should use open-world expression on object-members
ContextualCompilation should remove its 1-member minimum
Mar 7, 2024
It would be fair to discuss whether this is a backwards-compatible change. I believe it is, because graphs that currently pass UCO SHACL validation will continue to do so. |
ajnelson-nist
added a commit
that referenced
this issue
Mar 7, 2024
No effects were observed on Make-managed files. References: * #599 Signed-off-by: Alex Nelson <[email protected]>
13 tasks
13 tasks
I agree that this would be a backward compatible change and support it. |
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
Apr 29, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
Apr 29, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Corpora
that referenced
this issue
Apr 29, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Examples
that referenced
this issue
Apr 29, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
Apr 29, 2024
A follow-on patch will regenerate Make-managed files. References: * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
Apr 29, 2024
References: * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
Apr 30, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE
that referenced
this issue
Apr 30, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
Apr 30, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
Apr 30, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
Apr 30, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Examples
that referenced
this issue
Apr 30, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Corpora
that referenced
this issue
Apr 30, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
May 1, 2024
A follow-on patch will regenerate Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
May 1, 2024
References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Archive
that referenced
this issue
May 1, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
May 1, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to ucoProject/ucoproject.github.io
that referenced
this issue
May 1, 2024
References: * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/casework.github.io
that referenced
this issue
May 1, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE
that referenced
this issue
May 1, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Corpora
that referenced
this issue
May 3, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
ajnelson-nist
added a commit
to casework/CASE-Examples
that referenced
this issue
May 3, 2024
No effects were observed on Make-managed files. References: * ucoProject/UCO#573 * ucoProject/UCO#584 * ucoProject/UCO#599 Signed-off-by: Alex Nelson <[email protected]>
Open
17 tasks
ajnelson-nist
added a commit
that referenced
this issue
Jun 4, 2024
This has analagous rationale to UCO Issue 599, as well as supporting the data-sharing use case where a dictionary key repetition is wished to be shared without sharing other members of the dictionary. No effects were observed on Make-managed files. References: * #599 * #602 Signed-off-by: Alex Nelson <[email protected]>
17 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Background
core:ContextualCompilation
is a class for representing a set of objects sharing some context. A contextual compilation has a standing expectation that the set have at least one member; however, from experience with provenance tracking in CASE and some other representations, this expectation might be inappropriate to impose. There is also some debate whether the definition in therdfs:comment
includes this expectation.The definition currently reads:
Under one reading of that definition, there exist things that are grouped, and thus there are at least two members in the compilation.
However, under another reading that focuses on "grouping" rather than "of things," this definition describes a set, and the set could be empty.
The second reading has arisen as a necessary use case to support, demonstrated in part by CASE's
investigation:ProvenanceRecord
, which collects results of aninvestigation:InvestigativeAction
. What was not originally appreciated in CASE and UCO design is that there are some actions that truly have no results, e.g., "Hash all of the files in this directory that happens to have no files." Other use cases have come up through representing data sets in CASE-Corpora; without going into detail, they provide other examples where there is a "grouping of things" that exists but, for one reason or another, the things are not linkable.Another use case to support comes in the context of information sharing. There can arise situations where two parties need to be able to discuss one set, sharing its IRI between themselves, but for some reasons the members of the set cannot be shared. For instance, sharing the set-members might be temporarily or permanently legally restricted, but the set's identity might need to be acknowledged in shared data. With UCO's current implementation of
core:ContextualCompilation
, attempting to share a set-identifier in such a manner would lead to the transported graph always failing SHACL validation because of acore:ContextualCompilation
with no members, and that SHACL validation would propagate to any graphs the receiver has.The SHACL-specific issue is that there was a translation from an open-world description of
core:ContextualCompilation
, spelled like this in UCO 0.6.0:In UCO 0.7.0, that
owl:Restriction
was translated to this:[ sh:class core:UcoObject ; sh:minCount "1"^^xsd:integer ; sh:nodeKind sh:BlankNodeOrIRI ; sh:path core:object ; ]
What previously read "A
core:ContextualCompilation
has at least onecore:UcoObject
linked bycore:object
; but it's not necessary to record it, just know that it exists" became "Acore:ContextualCompilation
must have at least onecore:UcoObject
linked bycore:object
, else the data is non-conformant with UCO."Requirements
Requirement 1
It must be possible to represent a contextual compilation of objects that share some context, and for the set to have no members.
Risk / Benefit analysis
Benefits
Risks
core:ContextualCompilation sh:property [ sh:minCount 1 ; sh:path core:object ; ] ; .
core:Compilation
, or its subclasses, has 0 members. It is possible to extendcore:Compilation
with class design from the Collections Ontology (which UCO has already adopted), e.g., by havingcore:Compilation
subclassco:Set
and inheritco:size
. That is left out of scope of this proposal, but there is a demonstration in the competencies for reference.Competencies demonstrated
Competency 1
Suppose there is a general form of CASE
investigation:InvestigativeAction
that hashes files in a directory: it takes aobservable:Directory
as input and emitsobservable:ContentData
objects as output, as well as ainvestigation:ProvenanceRecord
(subclass ofcore:ContextualCompilation
). Hashes can then be returned with this SPARQL query:Suppose it is run against a directory with no files.
Competency Question 1.1
What hashes were yielded by reviewing this directory?
Result 1.1
None. And, with adoption of this proposal, the input graph is UCO-conformant and CASE-conformant, with Collections Ontology extension.
Solution suggestion
In light of the need to represent empty
core:ContextualCompilation
, this proposal only removes the minimum-1 count constraint.There was some consideration of whether it would be necessary to restore an
owl:Restriction
, but this proposal effectively makescore:object
an entirely optional property oncore:ContextualCompilation
. Further, the priorowl:Restriction
's use of a qualified cardinality was redundant with therdfs:range
ofcore:object
. So, it seems that anowl:Restriction
for general usage oncore:ContextualCompilation
would have no effect.Coordination
develop
for the next releasedevelop
state with backwards-compatible implementation merged intodevelop-2.0.0
develop-2.0.0
(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: