@prefix : <https://solid.ti.rw.fau.de/public/ns/robotArm#> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@base <https://solid.ti.rw.fau.de/public/ns/robotArm#> .

<https://solid.ti.rw.fau.de/public/ns/robotArm#> rdf:type owl:Ontology ;
                                                  dcterms:creator <https://dschraudner.solidcommunity.net/profile/card#me> ;
                                                  rdfs:comment "An Ontology to demonstrate how Extended Finite State machines can be used for RESTful interaction models."@en ;
                                                  rdfs:label "Robot Arm Ontology"@en ;
                                                  rdfs:seeAlso <https://solid.ti.rw.fau.de/public/2022/A_RESTful_Interaction_Model_for_Semantic_Digital_Twins.pdf> .

#################################################################
#    Annotation properties
#################################################################

###  http://purl.org/dc/terms/creator
dcterms:creator rdf:type owl:AnnotationProperty .


#################################################################
#    Object Properties
#################################################################

###  https://solid.ti.rw.fau.de/public/ns/robotArm#events
:events rdf:type owl:ObjectProperty ;
        rdfs:domain :RobotArm ;
        rdfs:range :EventContainer ;
        rdfs:label "Events"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#taskState
:taskState rdf:type owl:ObjectProperty ;
           rdfs:domain :Task ;
           rdfs:range :TaskState ;
           rdfs:label "Task State"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#tasks
:tasks rdf:type owl:ObjectProperty ;
       rdfs:domain :RobotArm ;
       rdfs:range :TaskContainer ;
       rdfs:label "Tasks"@en .


#################################################################
#    Data properties
#################################################################

###  https://solid.ti.rw.fau.de/public/ns/robotArm#closed
:closed rdf:type owl:DatatypeProperty ;
        rdfs:domain :RobotArm ;
        rdfs:range xsd:boolean ;
        rdfs:comment "Maps to variable \"closed\"."@en ;
        rdfs:label "Clamp closed"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#eventNumber
:eventNumber rdf:type owl:DatatypeProperty ;
             rdfs:domain :Event ;
             rdfs:range xsd:integer ;
             rdfs:label "Event Number"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#eventTime
:eventTime rdf:type owl:DatatypeProperty ;
           rdfs:domain :Event ;
           rdfs:range xsd:dateTimeStamp ;
           rdfs:label "Event Time"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#item
:item rdf:type owl:DatatypeProperty ;
      rdfs:domain :RobotArm ;
      rdfs:range xsd:boolean ;
      rdfs:comment "Maps to variable \"item\"."@en ;
      rdfs:label "Item at sensor"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#pos
:pos rdf:type owl:DatatypeProperty ;
     rdfs:domain :RobotArm ;
     rdfs:range [ rdf:type rdfs:Datatype ;
                  owl:oneOf [ rdf:type rdf:List ;
                              rdf:first 1 ;
                              rdf:rest [ rdf:type rdf:List ;
                                         rdf:first 2 ;
                                         rdf:rest [ rdf:type rdf:List ;
                                                    rdf:first 3 ;
                                                    rdf:rest rdf:nil
                                                  ]
                                       ]
                            ]
                ] ;
     rdfs:comment "Maps to variable \"pos\"."@en ;
     rdfs:label "Position"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#taskNumber
:taskNumber rdf:type owl:DatatypeProperty ;
            rdfs:domain :Task ;
            rdfs:range xsd:integer ;
            rdfs:label "Task Number"@en .


#################################################################
#    Classes
#################################################################

###  http://www.w3.org/ns/ldp#Container
ldp:Container rdf:type owl:Class .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#DeliveredItemEvent
:DeliveredItemEvent rdf:type owl:Class ;
                    rdfs:subClassOf :Event ;
                    rdfs:comment "Maps to output \"P\"."@en ;
                    rdfs:label "Delivered Item Event"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#Event
:Event rdf:type owl:Class ;
       rdfs:label "Event"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#EventContainer
:EventContainer rdf:type owl:Class ;
                rdfs:subClassOf ldp:Container ;
                rdfs:label "Event Container"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#MoveFrom1To2Task
:MoveFrom1To2Task rdf:type owl:Class ;
                  rdfs:subClassOf :MoveTask ;
                  rdfs:comment "Maps to input \"A\"."@en ;
                  rdfs:label "Move from position 1 to position 2 task"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#MoveFrom2To1Task
:MoveFrom2To1Task rdf:type owl:Class ;
                  rdfs:subClassOf :MoveTask ;
                  rdfs:comment "Maps to input \"C\"."@en ;
                  rdfs:label "Move from position 2 to position 1 task"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#MoveFrom2To3Task
:MoveFrom2To3Task rdf:type owl:Class ;
                  rdfs:subClassOf :MoveTask ;
                  rdfs:comment "Maps to input \"B\"."@en ;
                  rdfs:label "Move from position 2 to position 3 task"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#MoveFrom3To2Task
:MoveFrom3To2Task rdf:type owl:Class ;
                  rdfs:subClassOf :MoveTask ;
                  rdfs:comment "Maps to input \"D\"."@en ;
                  rdfs:label "Move from position 3 to position 2 task"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#MoveTask
:MoveTask rdf:type owl:Class ;
          rdfs:subClassOf :Task .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#RobotArm
:RobotArm rdf:type owl:Class ;
          rdfs:label "Robot Arm"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#Task
:Task rdf:type owl:Class ;
      rdfs:label "Task"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#TaskContainer
:TaskContainer rdf:type owl:Class ;
               rdfs:subClassOf ldp:Container ;
               rdfs:label "Task Container"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#TaskState
:TaskState rdf:type owl:Class ;
           owl:equivalentClass [ rdf:type owl:Class ;
                                 owl:oneOf ( :accepted
                                             :failed
                                             :running
                                             :successful
                                           )
                               ] .


#################################################################
#    Individuals
#################################################################

###  https://solid.ti.rw.fau.de/public/ns/robotArm#accepted
:accepted rdf:type owl:NamedIndividual ,
                   :TaskState ;
          rdfs:label "Task Accepted"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#failed
:failed rdf:type owl:NamedIndividual ,
                 :TaskState ;
        rdfs:label "Task Failed"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#running
:running rdf:type owl:NamedIndividual ,
                  :TaskState ;
         rdfs:label "Task Running"@en .


###  https://solid.ti.rw.fau.de/public/ns/robotArm#successful
:successful rdf:type owl:NamedIndividual ,
                     :TaskState ;
            rdfs:label "Task Successful"@en .


###  Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
