What is the difference between instanceShape and resourceShape in terms of OSLC 2.0 Specification?
oslc:instanceShape - The URI of a Resource Shape that describes the possible properties, occurrence, value types, allowed values and labels. This shape information is useful in displaying the subject resource as well as guiding clients in performing modifications. Instance shapes may be specific to the authenticated user associated with the request that retrieved the resource, the current state of the resource and other factors and thus should not be cached.
Resource Shape - meet this need by providing a machine-readable definition of one or more OSLC resource types or instances. An OSLC Creation Factory MAY provide one or more Resource Shapes so that you know what properties are allowed and required to create resources.
So the my understanding is that resource describes the what the properties are,but isntanceShape is just the URL to the resource shape?
TL;DR:
oslc:instanceShape
links to a resource shape for the current resource, andoslc:resourceShape
links to a resource shape for the resources that can be created or queried in that context.oslc:instanceShape
oslc:instanceShape
(an RDF property or "predicate") is used to link to a Resource Shape "that describes the possible properties, occurrence, value types, allowed values and labels" of the current resource. That is, if you have a link (aka 'triple') like this:then that is stating that the resource shape that can be retrived by requesting
http://example.com/shapes/A
describes the shape of the resource identified by the URIhttp://example.com/resources/1
. (You would probably see this link in the response to a request on that resource's URIhttp://example.com/resources/1
).oslc:instanceShape vs "Resource Shape"
So if you are asking "what is the difference between
oslc:instanceShape
and the phrase 'Resource Shape'?", the answer is thatoslc:instanceShape
is the property/predicate that is used to link to a "Resource Shape".oslc:resourceShape
However, there is also another property/predicate called
oslc:resourceShape
, which you mention. This is used to link from a "Creation Factory" or "Query Capability" resource to describe the 'shape' of the resources that the factory or capability deals with. That is, it links to a Resource Shape "that describes the possible properties, occurrence, value types, allowed values and labels" of the resources that can be created or queried in that context.oslc:instanceShape vs oslc:resourceShape
In theory, it would be possible for a creation factory to have both of these links, e.g.:
Where requesting
http://example.com/types/1/shape
would return a resource shape that describes the 'shape' of resources that the creation factoryhttp://example.com/types/1/factory
can create, and requestinghttp://example.com/factoryShape
would return a shape that describes the properties that can appear on the creation factory resource itself. (However, it is quite unlikely that a creation factory resource would have aninstanceShape
link, as its properties are well-defined by the OSLC specification and I can't think of any cases where the client would either need to display these to a user or modify them.)Conclusion:
oslc:instanceShape
links to a resource shape for the current resource, andoslc:resourceShape
links to a resource shape for the resources that can be created or queried in that context.Aside: oslc:resourceShape vs oslc:ResourceShape
Slight aside:
oslc:resourceShape
andoslc:ResourceShape
are different:oslc:resourceShape
is a property to link to a resource shape, andoslc:ResourceShape
is a value to use for therdf:type
on Resource Shape resources themselves.Source
The resource table for the CreationFactory type says, for the
oslc:resourceShape
property: "A Creation Factory MAY provide Resource Shapes that describe shapes of resources that may be created".The OSLC specs don't seem to include a clear description of how
oslc:instanceShape
is different, but the submission of OSLC Resource Shapes to the W3C says: "The oslc:instanceShape property is used to link any described resource with a shape resource that describes its contents".