ucoProject / UCO

This repository is for development of the Unified Cyber Ontology.
Apache License 2.0
73 stars 34 forks source link

Are the classes `Event` and `Action` disjoint? #563

Closed ajnelson-nist closed 7 months ago

ajnelson-nist commented 7 months ago

During discussion on #541 , we had considered whether Action is strictly a subclass of the new class Event. A result of the discussion was, no, Action does not specialize Event, because they have different annotative properties that would look out of place on one another.

We did not take this further and ask the other side: Are they disjoint classes?

Do we have an example available of an Action that is also an Event? Or, should we supplement #541 before cutting UCO 1.3.0, that the two classes are disjoint?

@plbt5 , I'm interested in your input especially with respect to the endurants-vs-perdurants proposal; and @sbarnum , I'm interested in your input w.r.t. the generally-spelled "context" property. If Action and Event are disjoint, what are examples of:

  1. Linking an Action to an Event;
  2. Linking an Event to an Action?

If we don't decide this now, a disjointedness assertion would have to wait for a SEMVER-major UCO release.

Requirements

Requirement 1

Events and Actions are disjoint classes, and must be encoded as such.

Risk / Benefit analysis

Benefits

Risks

Competencies demonstrated

Competency 1

Competency Question 1.1

What events are also actions?

Result 1.1

This query will always return no results.

Competency Question 1.2

How do events and actions relate?

Result 1.2

This parthood (mereology) discussion is delegated to other issues, e.g. #544 and #565.

541 had suggested that one or more actions can be the context of an event using the core:eventContext property; though, note that eventContext can be any UcoObject.

541 also suggested that an event can be a result of an action. #565 is inspecting some details about that mechanism.

Solution suggestion

Note: The initial spelling of the SHACL constraint uses a wrapping, anonymous sh:NodeShape to mitigate an issue an application could run into if they imported UCO twice. The technical rationale for that design pattern is documented in this commit log.

Coordination

sbarnum commented 7 months ago

Yes. Action and Event are disjoint. No Action is ever an Event and no Event is ever an Action.

An Event can consist of one of more Actions potentially with temporal relationships between them. All such context (Actions, Relationships, etc.) for the Event would be contained in the eventContext property.

plbt5 commented 7 months ago

The specific question here is: What is the essential element that separates the Event from the Action, as in, essentially belongs to one but definitely doesn't belong to the other. Having answered that, is there yet another element that applies vice versa?

From the perdurant/endurant perspective, we consider both uco:Event and uco:Action subclasses perdurants. That implies that they both unfold over time. When we consider them disjoint, then their distinction should be sought in either two aspects: do they

  1. unfold differently, i.e., are they composed of distinct proper parts;
  2. have different types of endurants as their participants.

Let's look at their definitions.

From this I'd conclude the following distinctions:

Note:

  1. uco:bringsAbout would be a new property.
  2. uco-action:result requires verification against its current declarations.

I'm not sufficiently involved to decide whether situation and result are required as UCO concepts. But that is beside the point of the question.

ajnelson-nist commented 7 months ago

@plbt5 - uco-action:result is already defined.

If you mean "Situation" as in the gUFO sense - UCO doesn't currently have that, and that will be a challenging discussion to have. I think it's worth having, because IIRC gufo:Situations are one way to handle role enactments, and I believe someone is brewing a UCO proposal to revise how uco-role:Role currently behaves.

plbt5 commented 7 months ago

@ajnelson-nist - I've updated the examples with uco-action: result, as well added two Notes. Regarding the "Situation", I do mean this to apply in the gUFO sense; however, neither "Situation" nor "Result" are required to be defined.

ajnelson-nist commented 7 months ago

Thank you, @sbarnum and @plbt5 , this looks like enough to me to fast-track an additional change on top of #541 .

ajnelson-nist commented 7 months ago

This question has been updated to become a fast-tracked proposal, with the implementation to be voted on in the November 28th OCs call.