Re: Shapes, Individuals, and Classes - OSLC Motivations

On 11/13/2014 4:46, Arthur Ryman wrote:
> Irene,
>
> Your analysis of the graphs involved is correct,

Good to see some basic alignment. Also good to see specific URLs to play 
with. Now the details...

> Graph 1 is the OSLC RDFS vocabulary document. You navigate to this by
> deferencing the type URI, e.g. oslc_cm:ChangeRequest = <
> http://open-services.net/ns/cm#ChangeRequest>
>
> Graph 2 is the OSLC Resource Shape for CM. This is linked from the spec.
> Its URI is
> http://open-services.net/pub/Main/CmSpecificationV2Shapes/oslccm-change-request-shape.xml

I looked at the triples produced by derefencing ...#ChangeRequest and see

<http://open-services.net/ns/cm#ChangeRequest>
         a                 rdfs:Class , owl:Ontology ;
         rdfs:comment      "The CM Change Request resource" ;
         rdfs:isDefinedBy  <http://open-services.net/ns/cm#> ;
         rdfs:label        "ChangeRequest" ;
         rdfs:seeAlso 
<http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest> 
;
         rdfs:subClassOf   rdfs:Resource ;
         owl:versionInfo   "owl:Ontology added by TopBraid"^^xsd:string .

Which looks like it uses rdfs:seeAlso to point at an HTML document. I 
don't understand how it points to the .xml file that you mention. So I 
guess there is no formal link and the rdfs:seeAlso is just an 
informative link to humans?


> Graphs 3 and 4 are combined into a Resource Shape and are hosted by the
> tool that implements and extends OSLC. The OSLC Core spec defines a
> discovery mechanism that lets you find a variety of information, including
> the shapes. Basically, the tool provides a resource that contains links to
> a variety of metadata resources, e.g. http://mytool.example.com/services.
> See [1].

Looking at the discovery mechanism my first reaction is that this is 
fairly specific to your architecture. Am I wrong here, and do you 
suggest the WG also specifies such a mechanism as part of the W3C standard?

>
> Graph 5 is an instance of a CM resource hosted by the tool, e.g.
> http://mytool.example.com/resource/42
>
> Now suppose you want to create a new instance of a CM resource. This is
> done by POSTing an RDF representation to a URL (a creation factory). You
> can discover the URL of the creation factory by looking at the service
> provider metadata resource http://mytool.example.com/services, which also
> links to the shape (via oslc:resourceShape).
>
> In your proposal, how do you discover the shape of the resource?

 From your Figure 2, I can see that CreationFactory takes both a Shape 
(oslc:resourceShape) and an rdf:type (oslc:resourceType) as its 
arguments. Would it work if you substitute resourceShape with the URL of 
a graph? That graph would extend the globally shared class definition, e.g.

oslc_cm:ChangeRequest
     oslc:property [
         ... any new property for this application
     ] .

... and owl:imports the default definition of ex:ChangeRequest to 
inherit the global constraints. The creation factory would operate on 
the union of those graphs (its imports closure). (We can of course use 
another property than owl:imports, if that's a problem).


>
> I believe the difference is that:
> 1) instead of oslc:ResourceShape resources, you are proposing that the
> constraints be put in an OWL/SPIN file that has the RDF type URI
> oslc_cm:ChangeRequest, as a subject node.

Yes, as above.

> 2) instead of oslc:resourceShape, you are proposing to use owl:import (or
> maybe another property less specific to OWL)

Yes, you could use oslc:shapeGraph to point at the snippet above.

Please let us know if this would be a viable compromise for your use cases.

Thanks
Holger

Received on Thursday, 13 November 2014 00:52:24 UTC