linked-usdl / usdl-core

Linked USDL core is a the foundation module for the Linked USDL family of vocabularies. It basically covers four essential aspects: i)service descriptions, ii) service offerings descriptions, iii) business entities involvement, and iv) service delivery communication channels and interaction points.
5 stars 1 forks source link

POST call with deferred Callbackobject & Mote description generally #51

Closed MGede closed 11 years ago

MGede commented 11 years ago

I am trying to implement a mote with a description built on the mote. This file consists of descriptions on how to access the services offered by the mote.

I have several question, but before take a short look on the N3 file itself. First of all, could you please give a feedback on the description, whether this is associated correctly.

 @prefix :          <http://frc.research.sap.com/semantic#> .
 @prefix ssn:       <http://purl.oclc.org/NET/ssnx/ssn#> .
 @prefix rdf:       <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
 @prefix rdfs:      <http://www.w3.org/2000/01/rdf-schema#> .
 @prefix rest:      <http://www.wsmo.org/ns/hrests#> .
 @prefix msm:       <http://cms-wg.sti2.org/ns/minimal-service-model#>.
 @prefix xsd:       <http://www.w3.org/2001/XMLSchema#> .
 @prefix dev:       <http://wot.ccsrfi.net/DeviceModel.owl#> .
 @prefix usdl-core: <http://www.linked-usdl.org/ns/usdl-core#> .

#   This is a file, consisting of descriptions of mote and how to adress the services on the mote.

    :Temperatur_service                     a usdl-core:Service;
        rdfs:comment                        "Central instance of the temperature service"^^xsd:string;
        usdl-core:exposes                   :IRIS_MOTE_02-00-00-00-27-F4-DC-E1 ;
        usdl-core:hasInteractionPoint       :Temperature_interaction .

    :Temperature_interaction        a usdl-core:InteractionPoint ;
        rdfs:comment                " "^^xsd:string ;
        usdl-core:hasTechnical      :TemperatureService .

    #-------------- 
    #Technical part

    :TemperatureService         a msm:Service ;
        rest:hasAddress         "http://192.168.1.74:8554/MOTE_RUNNER_SENSOR_AGENT/IRIS_MOTE_02-00-00-00-27-F4-DC-E1" ^^xsd:string ;
        msm:hasOperation        :getTemperature ;
        msm:hasOperation        :initializeCallbackObject .

#   :createCallbackObject       a msm:Operation ;
#       rdfs:label              "Create Callbackobject";
#       rest:hasMethod          "POST" ;
        #usdl:Conditions & rest:hasAddress

    :getTemperature             a msm:Operation ;
        rdfs:label              "GetTemperature"^^xsd:string ;
        rest:hasAddress         "/temperature" ;
        rest:hasMethod          "GET" .

    # ---------------------------
    # Mote and Sensor description

    ssn:SensingDevice       rdfs:subClassOf ssn:Device .

    :IRIS_MOTE_02-00-00-00-27-F4-DC-E1     a ssn:System;
        rdfs:comment            "A sensor network node. The data is for Iris mote "^^xsd:string ;
        ssn:hasSubSystem        :IRIS_MOTE_02-00-00-00-27-F4-DC-E1_temperaturesensor ;
        dev:hasDeviceID         "02-00-00-00-27-F4-DC-E1"^^xsd:string ;
        dev:hasDeviceName       "Iris Mote"^^xsd:string .

    :Temperaturesensor          a ssn:SensingDevice;
        rdfs:comment            "Temperature sensor description"^^xsd:string;
        ssn:observes            :Observed_attribute .

    :Temperature_attribute      a ssn:Property;
        rdfs:comment            "Sensor output, in this case current temperature"^^xsd:string;
        ssn:observedProperty    xsd:float ;
        rdfs:range              <http://purl.obolibrary.org/obo/UO_0000027> ;
        rdfs:range              <http://purl.oclc.org/NET/muo/ucum/unit/temperature/degree-Celsius> .

So the first question is, how should I describe a creation of a POST call with a deferred callbackobject in the payload? Didnt find any examples for that. I would need to have an address where to send the information back and and also the conditions, when to send it back. Usdl:conditions is currently not linked with msm:operation and rest:hasAddress is only describing the address for the rest call not the address for the callback.

:TemperatureService         a msm:Service ;
        rest:hasAddress         "http://192.168.1.74:8554/MOTE_RUNNER_SENSOR_AGENT/IRIS_MOTE_02-00-00-00-27-F4-DC-E1" ^^xsd:string ;
        msm:hasOperation        :getTemperature ;
        msm:hasOperation        :initializeCallbackObject .

    :createCallbackObject       a msm:Operation ;
        rdfs:label              "Create Callbackobject";
        rest:hasMethod          "POST" ;
        #usdl:Conditions & rest:hasAddress