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 432: Expand Issue 405 to cover observable:Software #455

Merged
merged 24 commits into from
Aug 26, 2022

Conversation

ajnelson-nist
Copy link
Contributor

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

This Pull Request resolves all requirements of Issue #432 .

This Pull Request supersedes PR 447.

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 (CASE/UCO) feature branch
  • CI passes in UCO current unstable branch (020ce56)
  • CI passes in CASE current unstable branch tracking UCO's unstable as submodule (d40e99e)
  • 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
  • Milestone linked
  • Solutions Approval vote logged on corresponding Issue (once logged, can be taken out of Draft PR status)

ajnelson-nist and others added 8 commits August 12, 2022 16:19
This patch also includes PASS/XFAIL unit tests.

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

References:
* #405

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

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
While reviewing and upgrading the CASE Examples repository, these two
commits demonstrated there was a problem with using overly-specified
shapes with `sh:xone`.

* casework/CASE-Examples@6269b8d
* casework/CASE-Examples@f5d19bf

This patch moves more generic constraints into `sh:PropertyShape`s
outside of the `sh:xone`.

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

References:
* #405

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

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

References:
* #405

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
Added in initial ontology definition content for configuration.ttl
Modified to extract configuration related classes and properties out into the separate configuration namespace and align the localized tool configuration-related properties to align with classes in configuration namespace.
This patch is a manual adjustment to apply UCO current ontology spelling
and linking practices.

* While the `rdfs:label` for the `owl:Ontology` includes the `uco-`
  prefix on the namespace short form, the prefix encoded in Turtle for
  concepts has not included the `uco-` prefix.
* `rdfs:seeAlso` has been used when drafting ontology concepts in files
  named `drafting.ttl`, as a part of CASE development practice, to tie
  the concept to its originating work-anchor (whether Jira ticket,
  Github Issue, or other).  However, by the time concepts migrate into
  the UCO or CASE ontology Turtle files, `rdfs:seeAlso` is not used to
  reference originating tickets.

The first issue caused a breakage in normalization, because the
`@prefix` declaration didn't quite agree with all of the UCO concept
references.  So, this patch applies the manual spelling changes, and a
follow-on patch will normalize the new `configuration.ttl` file.

References:
* #432

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

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

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

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
Because Sean used seeAlso on a few other properties, I was able to catch
a point of development interest.  It seems we're moving towards more
fleshed-out citations, which I'm happy to support.

References:
* #432

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
This patch is motivated by several matters:
1. This class will be introduced (under another name) in the resolution
   of Issue 430.  So, entailing it in this proposal is a risk to this
   proposal's acceptance.
2. The semantics of using the higher-class-than-UcoObject are not
   defined.  Under what conditions is it OK to use a `types:Hash` object
   with this property?  What about a `types:Dictionary`,
   `types:ControlledDictionaryEntry`, or `types:ThreadItem`?

References to `core:ClassBase` will be restored (under its agreed-upon
name alteration, `core:UcoThing`) only after explanation and
demonstration of the semantic issues.

References:
* #430
* #432

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
An `sh:xone` pattern was introduced as part of Issue 405.  Sean removed
it when migrating concepts over to the new `configuration` namespace,
and neither documented why nor updated the unit test that expected it.

This patch restores the addition.

References:
* #405
* #432

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
This patch should restore CI passing.

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

References:
* #432

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

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
This keeps with the allowance made by Issue 428.

This also supports that some configurations may truly have 0 things
specified, which could be phrased as operating in "All-defaults" mode.

References:
* #428
* #432

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
This aligns cardinality of `itemValue` with `itemObject`, and permits
setting multiple values for a parameter, such as multiple independent
filter patterns.

References
* #432

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
Sean removed `tool:ConfiguredTool` and `tool:isConfigurationOf` from the
implementation for Issue 405, without explanation.  His revised
demonstration of how to represent a tool being used with a configuration
within an action included this excerpt (not complete UCO JSON-LD, but
sufficient to demonstrate the design issue):

```json
[
    {
      "@id": "kb:relationship-d6d18770-cb60-4779-b28a-905846dbd3f4",
      "@type": "uco-core:Relationship",
      "uco-core:source": "kb:AnalyticTool-DAE5EE58-E5ED-4588-93BE-CDEC6FAA9C6A",
      "uco-core:target": "kb:Configuration-4bc42c81-e9e7-4f48-b066-17e7fdca0f92",
      "uco-core:kindOfRelationship": "Has_Configuration",
      "uco-core:startTime": "2010-01-15T17:59:43.25Z",
    },
    {
      "@id": "kb:Analysis-7cd51fa7-63ee-4f40-a482-9ce8333c7556",
      "@type": "uco-analysis:Analysis",
      "uco-core:name": "compute string similarity",
      "uco-action:instrument": [
        "kb:AnalyticTool-DAE5EE58-E5ED-4588-93BE-CDEC6FAA9C6A",
        "kb:relationship-d6d18770-cb60-4779-b28a-905846dbd3f4",
        "kb:Configuration-4bc42c81-e9e7-4f48-b066-17e7fdca0f92"
      ]
    }
]
```

`tool:ToolConfigurationTypeFacet` was also removed, and I agree that
that is obviated with the `Configuration` class.  Because that `Facet`
is removed, another mechanism is needed to link a configuration to a
`Tool` or a `Software`.

This patch restores `ConfiguredTool`, and adds a similar class
`ConfiguredSoftware` to meet the expanded objective of Issue 432.

`isConfigurationOf` is restored as a more generically-specified
property, leaving type-scoping to the SHACL associations.

`configuration:usesConfiguration` is added to link a `ConfiguredX`
instance to a `Configuration`.

With the above new and restored properties and classes, the above
JSON-LD snippet is now expressible like this, most notably removing the
complexity of references in `action:instrument`:

```json
[
    {
      "@id": "kb:configured-tool-c6718138-e953-4731-bf52-d7d89eae9c85",
      "@type": [
          "uco-tool:AnalyticTool",
          "uco-tool:ConfiguredTool",
      ],
      "uco-configuration:isConfigurationOf": "kb:AnalyticTool-DAE5EE58-E5ED-4588-93BE-CDEC6FAA9C6A",
      "uco-configuration:usesConfiguration": "kb:Configuration-4bc42c81-e9e7-4f48-b066-17e7fdca0f92",
      "uco-core:objectCreatedTime": "2010-01-15T17:59:43.25Z",
    },
    {
      "@id": "kb:Analysis-7cd51fa7-63ee-4f40-a482-9ce8333c7556",
      "@type": "uco-analysis:Analysis",
      "uco-core:name": "compute string similarity",
      "uco-action:instrument": "kb:configured-tool-c6718138-e953-4731-bf52-d7d89eae9c85"
    }
]
```

Tests are updated to exercise the new classes and properties.

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

References:
* #405
* #432

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

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
Issue 430 was presumed in some of the new `sh:nodeKind` specifications.
This patch relaxes those to `sh:BlankNodeOrIRI` as used everywhere else
in UCO before the passage of 430.  Once 430 is passed, this patch will
be reverted.

References:
* #430
* #432

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist ajnelson-nist marked this pull request as ready for review August 26, 2022 20:12
@ajnelson-nist
Copy link
Contributor Author

@b0bkaT , once CI passes, please review and merge.

@b0bkaT b0bkaT merged commit 051970a into develop Aug 26, 2022
@ajnelson-nist ajnelson-nist deleted the Feature-Issue-432 branch August 27, 2022 20:45
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.

Add a new Configuration object to support flexible expression of configuration details for tools and software
3 participants