-
Notifications
You must be signed in to change notification settings - Fork 25
Description
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.
- A
ProvenanceRecordmust have at least one member. This is a requirement inherited fromuco-core:ContextualCompilation,ProvenanceRecord's superclass. By my understanding of what CASE had not formally encoded, thatProvenanceRecordshould have members that are either (1) inputs to theInvestigativeAction, or (2) other results of theInvestigativeAction. - I do not think
uco-action:subactionwas 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 withInvestigativeAction, namely whether any sub-action of anInvestigativeActionis also anInvestigativeAction. The answer to that question might complicate requiring aProvenanceRecordas 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
-
To date,
subactionstill 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. ↩