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

EventFacet Duration #396

Closed
11 tasks done
kchason opened this issue Jun 1, 2022 · 7 comments · Fixed by #399
Closed
11 tasks done

EventFacet Duration #396

kchason opened this issue Jun 1, 2022 · 7 comments · Fixed by #399
Milestone

Comments

@kchason
Copy link
Contributor

kchason commented Jun 1, 2022

Background

The uco-observable:EventFacet contains a property createdDateTime but does not contain any sense of duration by means of a duration attribute or observable:endTime.

As at least one forensic tool has been identified to contain a start, end, and duration, UCO should similarly support the concept of duration.

Requirements

Requirement 1

Add a new property usage observable:endTime to the observable:EventFacet with a cardinality of 0 -> 1. As duration requires units that may add additional complexity, an "end" concept would be sufficient.

Requirement 2

Add a new property usage observable:startTime to the observable:EventFacet with a cardinality of 0 -> 1.

Risk / Benefit analysis

Benefits

Allows the concept of an event that is more than a single moment in time. Such examples may include operating system boot or application update.

Risks

As this is adding a new property and not removing or changing any existing representation, the submitter is unaware of risks associated with this change.

Competencies demonstrated

Competency 1

A user is reviewing results of a forensic investigation and is attempting to correlate all events that occurred on a device at a given point in time.

Competency Question 1.1

Can UCO support the question: What are all of the discrete events that were occurring on a device at 01 JUN 22 @ 19:48:01 EST?

Result 1.1

Selecting all events where the specified time is between EventFacet.startTime and EventFacet.endTime.

Solution suggestion

Add new property as defined in requirement 1.

Coordination

  • Tracking in Jira ticket OC-245
  • Administrative review completed, proposal announced to Ontology Committees (OCs) on 2022-06-02
  • Requirements to be discussed in OC meeting, 2022-06-14
  • Requirements Review vote occurred, passing, on 2022-06-14
  • Requirements development phase completed.
  • Solution announced to OCs on 2022-06-14
  • Solutions Approval to be discussed in OC meeting, 2022-06-30
  • Solutions Approval vote occurred, passing, on 2022-06-30
  • Solutions development phase completed.
  • Implementation merged into develop
  • Milestone linked
  • Documentation logged in pending release page
@kchason kchason mentioned this issue Jun 4, 2022
7 tasks
@ajnelson-nist ajnelson-nist linked a pull request Jun 7, 2022 that will close this issue
7 tasks
ajnelson-nist added a commit to casework/CASE-Examples that referenced this issue Jun 7, 2022
No effects were observed on Make-managed files.

References:
* ucoProject/UCO#396

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 7, 2022
A follow-on patch will regenerate Make-managed files.

References:
* ucoProject/UCO#396

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 7, 2022
References:
* ucoProject/UCO#396

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

The review checklist on PR 399 has been completed. No impact was observed on SHACL validation results.

@ajnelson-nist
Copy link
Contributor

Something I just realized - there is a slight error in the description of this Issue. observable:endTime is not a new property. The association with observable:EventFacet is what this proposal is adding.

@ajnelson-nist
Copy link
Contributor

This proposal digs a bit into UCO's general need to order temporally bound objects. I don't oppose adding another specialized term to set an interval closing. However, UCO should review its handling of time instants versus time intervals.

The W3C Time Ontology provides a figure demonstrating relations between time periods. UCO could project some objects into the Time Ontology and realize a general timeline (and timeline consistency review mechanism), but the projection is somewhat specialized according to whichever classes happen to have beginning-of-interval and end-of-interval time property-pairs, or some lone non-interval time property. E.g. if we add observable:endTime as in this proposal, an EventFacet could project into the Time Ontology like so:

kb:event-1
  a observable:Event;
  core:hasFacet [
    a observable:EventFacet ;
    observable:createdDateTime "2022-01-02T03:04:56Z"^^xsd:dateTime ;
    observable:endTime "2022-01-02T03:04:57Z"^^xsd:dateTime ;
    drafting:hasInterval [
      a time:ProperInterval ;
      time:hasBeginning [
        a time:Instant ;
        rdfs:comment "(Lexical value matches observable:createdDateTime, but the more stringent datatype `xsd:dateTimeStamp` is required in the Time Ontology.)"@en ;
        time:inXSDDateTimeStamp  "2022-01-02T03:04:56Z"^^xsd:dateTimeStamp .
      ] ;
      time:hasEnd [
        a time:Instant ;
        rdfs:comment "(Matches observable:endTime, after considering the same lexical-datatype issue as in the beginning interval.)"@en ;
        time:inXSDDateTimeStamp  "2022-01-02T03:04:57Z"^^xsd:dateTimeStamp .
      ] ;
    ] ;
  ] ;
  .

Projection into the Time Ontology would help us answer a few questions:

  • Which of the UCO time properties that "Pair up" pertain to the beginning and ending of an interval? @kchason cited observable:createdDateTime. Would the new property :endTime pair with this?
  • Should time-bounding timestamps be properties in Facets, or directly on the object? EventFacet is an instance where the time interval is in a pair of Facet-housed properties, but Action and Relationship store the time on the object. This is another point where Facets are confusing.

Projection into the Time Ontology is out of scope of this proposal, but it does raise one immediately relevant question - why are we defining the time bounds of Events in a Facet?

@kchason
Copy link
Contributor Author

kchason commented Jun 13, 2022

I was starting on a second proposal to convert the usage of observable:observableCreatedTime to observable:startTime but it really only makes sense for this facet since the others are more discrete occurrences versus a potentially time-bound event such as those this proposal aims to support. But I do think it would make sense to change the usage in this particular instance so the pairing is a lot cleaner.

Regarding the divide between Facet and Object, I thought we've been containing most properties in the Facets so they were more portable. Especially since Action and Relationship tend to be "linking" objects whereas the Event is more of a discrete object.

@ajnelson-nist
Copy link
Contributor

From discussion on the OCs call this morning, this proposal expanded in scope to add startTime to pair with endTime, due to differing semantics between startTime and observableCreatedTime.

ajnelson-nist added a commit to kchason/UCO that referenced this issue Jun 14, 2022
References:
* ucoProject#396

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/CASE-Examples that referenced this issue Jun 14, 2022
No changes were observed in Make-managed files.

References:
* ucoProject/UCO#396

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 14, 2022
A follow-on patch will regenerate Make-managed files.

References:
* ucoProject/UCO#396

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 14, 2022
References:
* ucoProject/UCO#396

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

The review checklist on PR 399 has been completed. No impact was observed on SHACL validation results.

The review checklist has been completed again, incorporating the added startTime usage.

@sbarnum
Copy link
Contributor

sbarnum commented Jun 30, 2022

Competency 1 - Result 1.1 should say:
Selecting all events where the specified time is between EventFacet.startTime and EventFacet.endTime.

@ajnelson-nist ajnelson-nist added this to the UCO 0.10.0 milestone Jun 30, 2022
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jul 22, 2022
A follow-on patch will regenerate Make-managed files.

References:
* ucoProject/UCO#387
* ucoProject/UCO#389
* ucoProject/UCO#391
* ucoProject/UCO#396

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jul 22, 2022
References:
* ucoProject/UCO#387
* ucoProject/UCO#389
* ucoProject/UCO#391
* ucoProject/UCO#396

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 a pull request may close this issue.

3 participants