# The pattern's own illustration, the temperature of a stove, with a second kitchen object
# beside it. Each physical object carries the smart-home properties a sensing process can
# take an interest in. Note that the fridge DOOR would not appear here: the pattern says a
# part of an object is modelled as a part, and only its measurable states as properties.
# The pattern then divides such objects into SmartObjects, which are observed, and
# NodeHolders, which merely carry the sensors.

@prefix dul: <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix smarthomegeometry: <http://ecareathome-ontology.mpi.aass.oru.se/patterns/SmartHome_Geometry.owl#> .
@prefix smarthomeobject: <http://ecareathome-ontology.mpi.aass.oru.se/patterns/SmartHome_Object.owl#> .
@prefix smarthomeproperty: <http://ecareathome-ontology.mpi.aass.oru.se/patterns/SmartHome_Property.owl#> .
@prefix ssn: <http://purl.oclc.org/NET/ssnx/ssn#> .
@prefix ex: <https://w3id.org/ontoboard/example/smarthome-object#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ex:Stove a owl:NamedIndividual , dul:PhysicalObject ;
    rdfs:label "the four-ring electric stove in the kitchen of flat 3B" ;
    ssn:hasProperty ex:StoveTemperature .

ex:StoveTemperature a owl:NamedIndividual , smarthomeproperty:SmartHomeProperty ;
    rdfs:label "the temperature of the stove" .

ex:Fridge a owl:NamedIndividual , dul:PhysicalObject ;
    rdfs:label "the fridge in the kitchen of flat 3B" ;
    ssn:hasProperty ex:FridgeDoorOpenState .

ex:FridgeDoorOpenState a owl:NamedIndividual , smarthomeproperty:SmartHomeProperty ;
    rdfs:label "whether the fridge door is standing open" .

# Only one direction of the inverse pair is asserted: hasProperty, not isPropertyOf. A reasoner adds the other.
