Skip to content

Must an InvestigativeAction always have a ProvenanceRecord among its outputs? #136

@ajnelson-nist

Description

@ajnelson-nist

The CASE Ontology Committee had discussed in the past whether InvestigativeActions would always have a ProvenanceRecord among their outputs. I recall, informally, we had said yes, this is a requirement. However, we had not encoded this in SHACL or OWL.

I have found a few logistical issues with requiring a ProvenanceRecord as output. While I don't think these are necessarily counter-arguments, they seem to need clarification if we move towards encoding the generated-ProvenanceRecord expectation.

  1. A ProvenanceRecord must have at least one member. This is a requirement inherited from uco-core:ContextualCompilation, ProvenanceRecord's superclass. By my understanding of what CASE had not formally encoded, that ProvenanceRecord should have members that are either (1) inputs to the InvestigativeAction, or (2) other results of the InvestigativeAction.
  2. I do not think uco-action:subaction was considered as part of the discussion, because it had not been exercised in CASE-Examples or the CASE website.1 It is not quite clear how that property is supposed to be used with InvestigativeAction, namely whether any sub-action of an InvestigativeAction is also an InvestigativeAction. The answer to that question might complicate requiring a ProvenanceRecord as output.

Let's take this example graph, which renders an action that takes a JPEG file as input and uses a (made-up) tool, "ExampleJpegAnalyzer," to analyze the JPEG's contents in a couple ways. The tool unconditionally calls multiple independent, tool-internal functions as part of its execution, look_up_location, ocr and others. The ocr function yields a file. This graph omits some triples for the sake of discussion.

kb:tool-1
	a uco-tool:AnalyticTool ;
	uco-core:name "ExampleJpegAnalyzer" ;
	.

kb:jpeg-i1
	a uco-observable:RasterPicture ;
	.
kb:provenance-record-i1
	a case-investigation:ProvenanceRecord ;
	uco-core:object kb:jpeg-i1 ;
	.

kb:action-1
	a case-investigation:InvestigativeAction ;
	uco-action:instrument kb:tool-1 ;
	uco-action:object
		kb:jpeg-i1 ,
		kb:provenance-record-i1
		;
	uco-action:subaction kb:action-2 ;
	uco-action:result kb:provenance-record-o1 ;
	.

kb:action-2
	a uco-action:Action ;
	uco-core:description "Store any OCR-recognized text in a file." ;
	uco-action:object kb:jpeg-i1 ;
	uco-action:result kb:ocr-text-results-file-1 ;
	.
kb:ocr-text-results-file-1
	a uco-observable:File ;
	.

Question 1: Is kb:action-2 a InvestigativeAction? If so, and if all InvestigativeActions need to generate a ProvenanceRecord, how do the members of its ProvenanceRecord relate to the parent action's ProvenanceRecord?

Question 2: What are the members of the output ProvenanceRecord, kb:provenance-record-o1?

Question 2.1: Is kb:jpeg-i1 a member, recording that it was seen and/or handled?

Question 2.2: Is kb:ocr-text-results-file-1 in kb:provenance-record-o1? Is the answer to this influenced by whether kb:action-2 is or is not a InvestigativeAction?

I intend to take responses to these questions and propose OWL and SHACL encodings to capture the consensus.

Footnotes

  1. To date, subaction still has not been exercised in either of those repositories. It is exercised in CASE-Corpora, and a recent update in testing infrastructure triggered a data validation error in a sketch of mine, which led to this Question post.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions