OSLC2 ResourceShapes describes oslc:valueType constraints on properties to allow domains to specify how object resource URIs should be represented in an RDF resource representation (or document). For object values, oslc:valueType has three possible values:
1. oslc:Resource - the representation is a URI reference to some external resource
2. oslc:LocalResource - the representation is a blank node in the containing document
3. oslc:AnyResource - the representation can be a blank node or URI reference
This property is related to the oslc:representation property which constrains how a resource is represented in an RDF document. This property only applies to object resources and has three possible values:
1. oslc:Inline - the resource must be contained inside the resource representation
2. oslc:Reference - the resource must be in a separate, external resource representation
3. oslc:Either - the resource can be inline or external
The combination of oslc:valueType and oslc:representation leads to some representations that do not make sense: LocalResource/Reference, LocalResource/Either, AnyResource/Reference.
In OSLC2, the notion of inlining a resource in a document, and the use of blank nodes to identify such resources were coupled. However, this is unnecessary. A resource that can be accessed separately by its own URI could still be included inline in the representation of some related resource. And resources that cannot be accessed separately could have fragment URIs relative to the document base. So it is unnecessary to couple blank nodes with inline representations, or for OSLC to specify any constraints on the URI representation within a document. Servers should be free to provide the inlined resource representations with either blank nodes or local URIs.
Proposal: The OSLC Core TC has already approved a motion to replace all instances of oslc:LocalResource with oslc:AnyResource to provide server flexibility in using blank nodes vs. local or global URIs for inlined resources. In order to enforce this best practice, the Core vocabulary property oslc:LocalResource should be marked as vs:term_status "archaic".
|