PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX san: <http://www.irit.fr/recherches/MELODI/ontologies/SAN#>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

san:Acting a sh:NodeShape ;
  rdfs:comment "Acting is the process that results in an action on the physical world, might it be a motion, a display, the emission of a sound..." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass san:Acting .

<http://qudt.org/schema/qudt#QuantityKind> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://qudt.org/schema/qudt#QuantityKind> .

san:ActuationValue a sh:NodeShape ;
  rdfs:comment "Value of the command sent to an actuator" ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:minCount 1 ;
    sh:path <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#isParametrizedBy> ;
    sh:order 0
  ] , [
    sh:name "has date time" ;
    sh:description "Relationship between an event (DUL:Region) and a point in time." ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:path san:hasDateTime ;
    sh:class <http://www.w3.org/2006/time#Instant> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 1
  ] ;
  sh:targetClass san:ActuationValue .

<http://purl.org/vocommons/voaf#Vocabulary> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://purl.org/vocommons/voaf#Vocabulary> .

<http://purl.oclc.org/NET/ssnx/ssn#Input> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://purl.oclc.org/NET/ssnx/ssn#Input> .

<http://delicias.dia.fi.upm.es/ontologies/ObjectWithStates.owl#Object> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://delicias.dia.fi.upm.es/ontologies/ObjectWithStates.owl#Object> .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Method> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Method> .

san:ActuatingProperty a sh:NodeShape ;
  rdfs:comment "A characteristic of an Actuator that gives information about the Actuations it is able to perform." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#hasValue> ;
    sh:order 0
  ] , [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#isPropertyOf> ;
    sh:order 1
  ] ;
  sh:targetClass san:ActuatingProperty .

san:Actuator a sh:NodeShape ;
  rdfs:comment "An actuator is an entity which is able to act upon the physical world. Whether it is a light bulb or a servomotor, an actuator receives inputs represented by Actuations and produces an effect on the world." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:name "has actuation capability" ;
    sh:description "Relation between an Actuator and an ActuatingCapability, describing the actuating properties of an actuator." ;
    sh:minCount 1 ;
    sh:path san:hasActuatingCapability ;
    sh:class san:ActuatingCapability ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 0
  ] , [
    sh:name "acts on" ;
    sh:description "Relationship between an entity that acts upon a quantity or another entity" ;
    sh:minCount 1 ;
    sh:path san:actsOn ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 1
  ] , [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#implements> ;
    sh:order 2
  ] , [
    sh:name "receives actuation" ;
    sh:description "Relationship between an actuator and an Actuation it received in order to modify its action." ;
    sh:path san:receivedActuation ;
    sh:class san:Actuation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 3
  ] , [
    sh:name "has effect" ;
    sh:description "Relationship between an Actuator and the effect that it induces. The Effect will be linked to a physical property that the actuator impacts" ;
    sh:minCount 1 ;
    sh:path san:hasEffect ;
    sh:class san:Effect ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 4
  ] ;
  sh:targetClass san:Actuator .

<http://www.w3.org/2006/time#Instant> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.w3.org/2006/time#Instant> .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Object> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Object> .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#InformationObject> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#InformationObject> .

san:ActuatingCapability a sh:NodeShape ;
  rdfs:comment "Represents actuation properties such as precision, latency, power consumption, and the environmental conditions in which these actuation can take place normally." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#forProperty> ;
    sh:order 0
  ] , [
    sh:name "has actuation property" ;
    sh:description "Relation from an actuation capability to an actuation property." ;
    sh:minCount 1 ;
    sh:path san:hasActuatingProperty ;
    sh:class san:ActuatingProperty ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 1
  ] , [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#isPropertyOf> ;
    sh:order 2
  ] ;
  sh:targetClass san:ActuatingCapability .

<http://www.ontologydesignpatterns.org/cp/owl/situation.owl#Situation> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/cp/owl/situation.owl#Situation> .

san:ActuatorInput a sh:NodeShape ;
  rdfs:comment "An actuator input is a piece of information provided to an actuator describing its expected behaviour, and it is described by an Actuation Value" ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#hasValue> ;
    sh:order 0
  ] , [
    sh:name "is consumed by" ;
    sh:description "Describes a relation between a consumer and a consumee" ;
    sh:minCount 1 ;
    sh:path san:isConsumedBy ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 1
  ] ;
  sh:targetClass san:ActuatorInput .

san:ActuatingRange a sh:NodeShape ;
  rdfs:comment "Range of commands that the actuator can receive and transduce into the physical world without damage to itself or security issues to its surrounding environment." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#hasValue> ;
    sh:order 0
  ] , [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#isPropertyOf> ;
    sh:order 1
  ] ;
  sh:targetClass san:ActuatingRange .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Event> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Event> .

san:ActuatingDevice a sh:NodeShape ;
  rdfs:comment "A device that implements actuating" ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:name "has actuation capability" ;
    sh:description "Relation between an Actuator and an ActuatingCapability, describing the actuating properties of an actuator." ;
    sh:minCount 1 ;
    sh:path san:hasActuatingCapability ;
    sh:class san:ActuatingCapability ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 0
  ] , [
    sh:name "acts on" ;
    sh:description "Relationship between an entity that acts upon a quantity or another entity" ;
    sh:minCount 1 ;
    sh:path san:actsOn ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 1
  ] , [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#implements> ;
    sh:order 2
  ] , [
    sh:name "receives actuation" ;
    sh:description "Relationship between an actuator and an Actuation it received in order to modify its action." ;
    sh:path san:receivedActuation ;
    sh:class san:Actuation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 3
  ] , [
    sh:name "has effect" ;
    sh:description "Relationship between an Actuator and the effect that it induces. The Effect will be linked to a physical property that the actuator impacts" ;
    sh:minCount 1 ;
    sh:path san:hasEffect ;
    sh:class san:Effect ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 4
  ] ;
  sh:targetClass san:ActuatingDevice .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#PhysicalObject> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#PhysicalObject> .

<http://purl.oclc.org/NET/ssnx/ssn#Device> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://purl.oclc.org/NET/ssnx/ssn#Device> .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Region> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:name "has date time" ;
    sh:description "Relationship between an event (DUL:Region) and a point in time." ;
    sh:path san:hasDateTime ;
    sh:class <http://www.w3.org/2006/time#Instant> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 0
  ] ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Region> .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:name "acts on" ;
    sh:description "Relationship between an entity that acts upon a quantity or another entity" ;
    sh:path san:actsOn ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 0
  ] , [
    sh:name "is acted upon by" ;
    sh:description "Relation between an entity that is acted upen by another acting entity" ;
    sh:path san:isActedUponBy ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 1
  ] , [
    sh:name "controlled by" ;
    sh:description "Describes the relationship between a controlledentity and a controller  one. The controlled entity can be a situation (state of a system, property of an environment), a device, a piece of software..." ;
    sh:path san:controlledBy ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 2
  ] , [
    sh:name "is consumed by" ;
    sh:description "Describes a relation between a consumer and a consumee" ;
    sh:path san:isConsumedBy ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 3
  ] , [
    sh:name "is controller" ;
    sh:description "An entity is controller of another one when it has influence on its decision process or evolution in time." ;
    sh:path san:isController ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 4
  ] , [
    sh:name "consumes" ;
    sh:description "Relation between an consumer entity and a consumee entity. Consumption can be destructive, transformative or neutral for the consumed entity." ;
    sh:path san:consumes ;
    sh:class <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 5
  ] ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Entity> .

san:ActuatingTime a sh:NodeShape ;
  rdfs:comment "Time between the moment when the actuator receives an actuation command and the actual actuation." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#hasValue> ;
    sh:order 0
  ] , [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#isPropertyOf> ;
    sh:order 1
  ] ;
  sh:targetClass san:ActuatingTime .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Quality> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Quality> .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Amount> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Amount> .

san:Situation a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass san:Situation .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Process> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Process> .

san:ActuatorOutput a sh:NodeShape ;
  rdfs:comment "Behaviour of an actuator after it has been given an input. To stick to its definition, an actuator output must have an effect on the physical world." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass san:ActuatorOutput .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Agent> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Agent> .

san:Actuation a sh:NodeShape ;
  rdfs:comment "An Actuation is the abstract representation of the command that will be translated into Effect by the Actuator (cf http://ontologydesignpatterns.org/wiki/Submissions:Actuation-Actuator-Effect for more information)." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:name "actuation results" ;
    sh:description "Relation between an actuation and an actuator input, its result. Implements the ODP Effect-Actuator-Observation" ;
    sh:path san:actuationResults ;
    sh:class san:ActuatorInput ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 0
  ] , [
    sh:minCount 1 ;
    sh:path <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#includesEvent> ;
    sh:order 1
  ] , [
    sh:name "is actuation sent" ;
    sh:description "Relationship between an actuation that was sent and the actuator that received it" ;
    sh:minCount 1 ;
    sh:path san:wasActuationSent ;
    sh:class san:Actuator ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 2
  ] , [
    sh:name "impacted property" ;
    sh:description "Property on which an Actuation has an impact" ;
    sh:path san:impactedProperty ;
    sh:class <http://purl.oclc.org/NET/ssnx/ssn#Property> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 3
  ] , [
    sh:name "actuation method used" ;
    sh:description "Process involved in the Actuation" ;
    sh:path san:actuationMethodUsed ;
    sh:class san:Acting ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 4
  ] ;
  sh:targetClass san:Actuation .

<http://qudt.org/schema/qudt#Unit> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://qudt.org/schema/qudt#Unit> .

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#UnitOfMeasure> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#UnitOfMeasure> .

<http://purl.oclc.org/NET/ssnx/ssn#Process> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://purl.oclc.org/NET/ssnx/ssn#Process> .

<https://w3id.org/linkml/Any> a sh:NodeShape ;
  rdfs:comment "An unconstrained type or object" ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <https://w3id.org/linkml/Any> .

<http://purl.oclc.org/NET/ssnx/ssn#Property> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:minCount 1 ;
    sh:path <http://purl.oclc.org/NET/ssnx/ssn#isPropertyOf> ;
    sh:order 0
  ] ;
  sh:targetClass <http://purl.oclc.org/NET/ssnx/ssn#Property> .

san:Effect a sh:NodeShape ;
  rdfs:comment "Concept bound to the definition of an actuator as an agent havong an effect on the physical world. Therefore, an effect is any kind of physical modification induced by an actuator." ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:property [
    sh:name "impacts" ;
    sh:description "Relationship between an effect and the property it impacts. Used in the Effect-Actuator-Actuation design pattern to describe the link between an actuator and the physical property it acts upon." ;
    sh:minCount 1 ;
    sh:path san:impacts ;
    sh:class <http://purl.oclc.org/NET/ssnx/ssn#Property> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:order 0
  ] ;
  sh:targetClass san:Effect .

<http://purl.oclc.org/NET/ssnx/ssn#FeatureOfInterest> a sh:NodeShape ;
  sh:closed false ;
  sh:ignoredProperties ( rdf:type ) ;
  sh:targetClass <http://purl.oclc.org/NET/ssnx/ssn#FeatureOfInterest> .
