PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sao: <https://w3id.org/sao#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

<https://w3id.org/ep-plan#Plan> a rdfs:Class .

<https://w3id.org/ep-plan#Entity> a rdfs:Class .

sao:hasAccountableAgent a rdf:Property ;
  rdfs:label "has accountable agent" ;
  rdfs:comment "Inverse of is accountable for" ;
  rdfs:domain <https://w3id.org/ep-plan#Entity> ;
  rdfs:range sao:AccountableAgent .

<https://w3id.org/ep-plan#MultiVariable> a rdfs:Class .

sao:AccountableResult a rdfs:Class ;
  rdfs:label "Accountable Result" ;
  rdfs:comment "An output variable which is produced by an Accountable Action, for example,  a decision made by a human or a specification produced by a team. The variable is part of the accountability plan and has a corresponding InformationRealization collection in the execution trace." ;
  rdfs:subClassOf <https://w3id.org/ep-plan#MultiVariable> .

sao:relatesToAccountableObject a rdf:Property ;
  rdfs:label "relates to accountable object" ;
  rdfs:comment "A relation which describes the information described by an accountable result relates to an accountable object." ;
  rdfs:domain sao:AccountableResult ;
  rdfs:range sao:AccountableObject .

<https://w3id.org/ep-plan#hasCorrespondingEntity> a rdf:Property ;
  rdfs:range sao:InformationRealization .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

<https://w3id.org/ep-plan#EntityCollection> a rdfs:Class .

sao:AccountableObject a rdfs:Class ;
  rdfs:label "Accountable Object" ;
  rdfs:comment "An accountable object models an abstract representation of a thing that should be documented for accountability. This may reference the whole system, its logical part, or associated process.  For example, a larger system may be described as a group of sub-systems or a single system may be broken down into a number of layers/components (e.g., a decision logic layer)." .

sao:impacts a rdf:Property ;
  rdfs:label "impacts" ;
  rdfs:comment "A relation which describes that an accountable object have some effect on the system's accountability." ;
  rdfs:domain sao:AccountableObject ;
  rdfs:range sao:System .

sao:hasRelatedAccountableResult a rdf:Property ;
  rdfs:label "has related accountable result" ;
  rdfs:domain sao:AccountableObject ;
  rdfs:range sao:AccountableResult .

sao:AccountabilityPlan a rdfs:Class ;
  rdfs:label "Accountability Plan" ;
  rdfs:comment "A plan which describes a specification of the information that should be collected, so as to support accountability of systems." ;
  rdfs:subClassOf <https://w3id.org/ep-plan#Plan> .

sao:specifiedForSystem a rdf:Property ;
  rdfs:label "specified for system" ;
  rdfs:comment "A relation that links the accountability plan to the system it was specified for." ;
  rdfs:domain sao:AccountabilityPlan ;
  rdfs:range sao:System .

sao:AccountableAction a rdfs:Class ;
  rdfs:label "Accountable Action" ;
  rdfs:comment "A planned step which is deemed to be important for accountability purposes and produces AccountableResult." ;
  rdfs:subClassOf <https://w3id.org/ep-plan#MultiStep> .

sao:InformationElement a rdfs:Class ;
  rdfs:label "Information Element" ;
  rdfs:comment "A member of the collection of type Information Realization. Information Realizations may have multiple Information Elements.  Information Element describes in more detail a specific type of information contained by the Information Realization collection." ;
  rdfs:subClassOf <https://w3id.org/ep-plan#Entity> .

sao:InformationRealization a rdfs:Class ;
  rdfs:label "Information Realization" ;
  rdfs:comment "A collection of pieces of information (InformationElements) which corresponds to a variable of type  AccountableResult. The collection represents the actual piece of provenance information documenting a specific AccountableResult during a single plan execution." ;
  rdfs:subClassOf <https://w3id.org/ep-plan#EntityCollection> .

<https://w3id.org/ep-plan#correspondsToVariable> a rdf:Property ;
  rdfs:range sao:AccountableResult .

<http://www.w3.org/ns/prov#hadMember> a rdf:Property ;
  rdfs:range sao:InformationElement .

sao:System a rdfs:Class ;
  rdfs:label "System" ;
  rdfs:comment "A system that the collected accountability information is about." ;
  rdfs:subClassOf sao:AccountableObject .

sao:isImpactedBy a rdf:Property ;
  rdfs:label "is impacted by" ;
  rdfs:comment "Inverse of impacts." ;
  rdfs:domain sao:System ;
  rdfs:range sao:AccountableObject .

sao:hasSpecifiedAccountabiltyPlan a rdf:Property ;
  rdfs:label "has specified accountability plan" ;
  rdfs:comment "Inverse of specified for system." ;
  rdfs:domain sao:System ;
  rdfs:range sao:AccountabilityPlan .

sao:AccountableAgent a rdfs:Class ;
  rdfs:label "Accountable Agent" ;
  rdfs:comment "An agent (typically a human)  that can be held accountable for his/her actions." ;
  rdfs:subClassOf sao:InformationElement , <https://w3id.org/ep-plan#Agent> .

sao:isAccountableFor a rdf:Property ;
  rdfs:label "is accountable for" ;
  rdfs:comment "A relation that links accountable agents to entities they are accountable for." ;
  rdfs:domain sao:AccountableAgent ;
  rdfs:range <https://w3id.org/ep-plan#Entity> .

<https://w3id.org/ep-plan#MultiStep> a rdfs:Class .

<https://w3id.org/ep-plan#Agent> a rdfs:Class .
