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

<http://web.resource.org/cc/License> a rdfs:Class .

lifecycle:TaskGroup a rdfs:Class ;
  rdfs:label "Task Group"@en ;
  rdfs:comment "Represents a collection of tasks grouped together for convenience"@en .

lifecycle:next a rdf:Property ;
  rdfs:label "next"@en ;
  rdfs:comment "provides a simple ordering relationship to allow tasks to be ordered in user interfaces." ;
  rdfs:range xsd:string .

lifecycle:task a rdf:Property ;
  rdfs:label "task"@en ;
  rdfs:comment "A task related to this transition." ;
  rdfs:range lifecycle:Task .

rdf:Resource a rdfs:Class .

lifecycle:state a rdf:Property ;
  rdfs:label "state"@en ;
  rdfs:comment "The state property relates any resource with the state that it is currently in." ;
  rdfs:domain rdf:Resource ;
  rdfs:range lifecycle:State .

<http://purl.org/dc/dcmitype/Text> a rdfs:Class .

lifecycle:State a rdfs:Class ;
  rdfs:label "State"@en ;
  rdfs:comment "A state describes one possible state that a resource can be in at a given time. Resources may be in one state in a given lifecycle at any given time, states are considered mutually exclusive within a lifecycle."@en .

lifecycle:stateOf a rdf:Property ;
  rdfs:label "state of"@en ;
  rdfs:comment "The 'state of' property is the inverse of the state property, relating a state to all of the resources currently in that state." ;
  rdfs:domain lifecycle:State ;
  rdfs:range rdf:Resource .

lifecycle:possibleTransition a rdf:Property ;
  rdfs:label "possible transition"@en ;
  rdfs:comment "When in a state there may be many possible transitions." ;
  rdfs:domain lifecycle:State ;
  rdfs:range lifecycle:Transition .

lifecycle:Action a rdfs:Class ;
  rdfs:label "Action"@en ;
  rdfs:comment "Represents an instance of a task taking place against a given resource"@en .

lifecycle:resource a rdf:Property ;
  rdfs:label "resource"@en ;
  rdfs:comment "The resource on which the action being taken. This is a resource that is being processed through a lifecycle." ;
  rdfs:domain lifecycle:Action ;
  rdfs:range rdf:Resource .

lifecycle:taskProgress a rdf:Property ;
  rdfs:label "task progress"@en ;
  rdfs:comment "The current progress on this task. Some resources are defined in this ontology for this, but you are free to define your own." ;
  rdfs:domain lifecycle:Action ;
  rdfs:range lifecycle:TaskProgress .

lifecycle:completed a rdf:Property ;
  rdfs:label "completed"@en ;
  rdfs:comment "This uses a boolean to represent if an action has been completed. This is a simple alternative to the taskProgress property." ;
  rdfs:domain lifecycle:Action ;
  rdfs:range xsd:boolean .

lifecycle:Task a rdfs:Class ;
  rdfs:label "Task"@en ;
  rdfs:comment "Represents a task in a workflow"@en .

lifecycle:mandatory a rdf:Property ;
  rdfs:label "mandatory"@en ;
  rdfs:comment "Sepcifies if a task is mandatory or optional." ;
  rdfs:domain lifecycle:Task ;
  rdfs:range xsd:boolean .

lifecycle:Transition a rdfs:Class ;
  rdfs:label "Transition"@en ;
  rdfs:comment "A transition describes the way in which a resource moves from one state to another state and may also describe the tasks required to make that transition."@en .

lifecycle:resultingState a rdf:Property ;
  rdfs:label "resulting state"@en ;
  rdfs:comment "Once a transition is completed the state of the resource should change to the state specified as the resulting state." ;
  rdfs:domain lifecycle:Transition ;
  rdfs:range lifecycle:State .

lifecycle:taskGroup a rdf:Property ;
  rdfs:label "task group"@en ;
  rdfs:comment "A task group related to this transition." ;
  rdfs:domain lifecycle:Transition ;
  rdfs:range lifecycle:TaskGroup .

lifecycle:Lifecycle a rdfs:Class ;
  rdfs:label "Lifecycle"@en ;
  rdfs:comment "A lifecycle is a series of states connected by allowable transitions. It may be used to describe the lifecycle of business objects or equally the lifecycle of a butterfly."@en .

lifecycle:possibleState a rdf:Property ;
  rdfs:label "possible state"@en ;
  rdfs:comment "The possible state property is used to identify the states that occur within a given lifecycle and are thus the possible states of a resource going through that lifecycle." ;
  rdfs:domain lifecycle:Lifecycle ;
  rdfs:range lifecycle:State .

lifecycle:TaskProgress a rdfs:Class .

lifecycle:Completed a lifecycle:TaskProgress ;
  rdfs:label "Completed"@en ;
  rdfs:comment "Represents that an individual task has been completed."@en .

lifecycle:OnHold a lifecycle:TaskProgress ;
  rdfs:label "On Hold"@en ;
  rdfs:comment "Represents that an individual task has been placed on hold."@en .

lifecycle:Started a lifecycle:TaskProgress ;
  rdfs:label "Started"@en ;
  rdfs:comment "Represents that an individual task has been started."@en .
