- From: Maxime Lefrançois <maxime.lefrancois@emse.fr>
- Date: Wed, 27 Sep 2017 12:36:45 +0000
- To: Rob Atkinson <rob@metalinkage.com.au>, SDW WG Public List <public-sdw-wg@w3.org>
- Message-ID: <CALsPASVXdo-brLFgU4b8rQRTOKBftU+pWtXLC0fsdnzuMipT-w@mail.gmail.com>
Hi Rob, Sorry for the late reply, Actually my previous mail was intended to be sent to the WoT WG mailing list, my mistake. Anyways, I was unaware of the Data Exchange WG. It looks very interesting and its partly overlaps what I was hoping to push forward in the WoT WG, I will try to get involved soon. The starting point for my question is the current Things Description ontology that is designed in the WoT group to model properties/events/actions interaction patterns that things can offer; at what URI such interactions can be requested by user agents; the kind of input the user agent has to send; the kind of output it will receive (or it will be able to fetch afterwards). My answers to you comments inline: Note that he Data Exchange WG is currently gathering Use Case and > Requirements for description and mechanisms of content negotiation by > 'profile" and finer grained semantics of data descriptions (e.g. - but not > limited to - schemas). > I will encourage the WoT WG to propose some UC with respect to this So what is your Use Case for actually modelling this, vs the information > resource URLs being discovered at run-time via content-negotiation and > redirects? > The way the TD ontology is currently modeled, an interaction pattern can be linked to zero or more Links (specifying a URI and a mediatype), some input DataSchema and some output DataSchema. I am uncomfortable with the way the Links and the DataSchema descriptions are decoupled, as (for example): - there may be multiple representations (say: profile) of the same input resource and output resource, potentially having different media types for the same application profile, or the same media type but different application profiles. - the request may need to be sent at a different URI than where the output will be located (e.g., HTTP return code 201 created with header Location: xxx), > do you have multiple schema objects or really one schema and a parallel > content-negotiation problem - i.e. get me the schema using JSON vs get me > the XSD? > Thats's the big question, here are the two main options I see: Option 1. a td:InteractionPattern is linked to at most one DataSchema for the input. - The DataSchema is a resource (abstract) that has one or more representations (JSON Schema, ShEx expression, SHACL shape), each having a specific type. The type potentially includes a media-type (application/json, text/turtle, text/turtle), a language, a character encoding, a "profile". - An "input" for this interaction pattern is a typed octet stream the user agent sends to the device. This typed octet stream must validate against one of the representations of the DataSchema, meaning.: 1. its type must be compatible with that of the specific DataSchema representation 2. it validates against the DataSchema representation (a JSON doc against a JSON Schema; a Turtle doc against a ShEx or SHACL definition, etc.) Option 2: a td:InteractionPattern is linked to one or more possible DataSchema for the input. Each instance of a DataSchema has a certain type (as above), and only one representation (JSON Schema, ShEx, SHACL), - A valid 'input" for this interaction pattern is a typed octet stream that validates against one of the DataSchemas, as defined in option 1. > And how do you handle, for example, the device providing lightweight > information and more detailed graphs - with for example a calibration > history? > Isn't that a perfect use case for profiles ? In DXWG we are interested in how you might define an "interoperability > profile" of a RDFS schema that might constrain/require for example that > json and XML are available. You can express this with dct:hasFormat > possibly - using SHACL to require that these formats are in fact present in > a desciption? > > I am following this looking at how the OGC might support publication of > interoperability profiles of its standards in a consistent way. > I see. Also, I would like to encourage to include a reference to some RDF Lifting mechanism along with the dct:hasFormat, allowing users to generate some RDF from the raw typed octet stream. (there may be multiple RDF Lifting mechanisms depending on the intended profile). Best, Maxime > > Rob Atkinson > > > > On Fri, 22 Sep 2017 at 17:26 Maxime Lefrançois <maxime.lefrancois@emse.fr> > wrote: > >> Dear all, >> >> The decoupling between Link and its mediatype, and inputData/outputData, >> makes me having some trouble trying to model the following situation: >> >> Suppose a device exposes the same information in xml or json, using >> content-negotiation, at http://192.168.0.10/property >> - the xml version has a canonical URL http://192.168.0.10/property.xml (see >> also Content-Location) >> - the json version has a canonical URL http://192.168.0.10/property.json >> >> >> I'd like to model this situation with a single device, a single >> td:Property, three td:Link, and only two td:DataSchema objects. >> >> How do you suggest to manage this ? >> >> Best, >> Maxime Lefrançois >> >
Received on Wednesday, 27 September 2017 12:37:53 UTC