instanceShape 和 resourceShape 有什么区别?

What is the difference between instanceShape and resourceShape?

instanceShape 和 resourceShape 在 OSLC 2.0 规范方面有什么区别?

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.

所以我的理解是资源描述了属性是什么,但是 isntanceShape 只是资源形状的 URL?

TL;DR: oslc:instanceShape links 到当前资源的资源形状,并且 oslc:resourceShape link s 到可以在该上下文中创建或查询的资源的资源形状。


oslc:实例形状

oslc:instanceShape(RDF 属性 或 "predicate")用于 link 到当前资源形状 "that describes the possible properties, occurrence, value types, allowed values and labels" 资源。也就是说,如果您有这样的 link (aka 'triple')

<http://example.com/resources/1> oslc:instanceShape <http://example.com/shapes/A>

那么就是说可以通过请求http://example.com/shapes/A获取的资源形状描述了URI http://example.com/resources/1标识的资源的形状。 (您可能会在对该资源的 URI http://example.com/resources/1 的请求的响应中看到此 link)。

oslc:instanceShape 与 "Resource Shape"

所以如果你问"what is the difference between oslc:instanceShape and the phrase 'Resource Shape'?",答案是oslc:instanceShape是用来link到"Resource Shape"的property/predicate。

oslc:resourceShape

不过,还有一个property/predicate叫oslc:resourceShape,你说了。这用于从 "Creation Factory" 或 "Query Capability" 资源中 link 来描述工厂或功能处理的资源的 'shape'。也就是说,它 link 是资源形状 "that describes the possible properties, occurrence, value types, allowed values and labels" 可以在该上下文中创建或查询的资源

oslc:instanceShape 与 oslc:resourceShape

理论上,创造工厂可以同时拥有这两个link,例如:

<http://example.com/types/1/factory> rdf:type oslc:CreationFactory.
<http://example.com/types/1/factory> oslc:resourceShape <http://example.com/types/1/shape>.
<http://example.com/types/1/factory> oslc:instanceShape <http://example.com/factoryShape>.

请求 http://example.com/types/1/shape 将 return 描述创建工厂 http://example.com/types/1/factory 可以创建的 'shape' 资源的资源形状,并且请求 http://example.com/factoryShape将 return 描述可以出现在创建工厂资源本身上的属性的形状。 (但是,创建工厂资源不太可能具有 instanceShape link,因为它的属性已由 OSLC 规范明确定义,而且我想不出任何情况下客户端会需要向用户显示或修改它们。)

结论:oslc:instanceShapelinks为当前资源的资源形状,oslc:resourceShapelinks为当前资源的资源形状可以在该上下文中创建或查询的资源。


旁白:oslc:resourceShape 对比 oslc:ResourceShape

稍稍撇开:oslc:resourceShapeoslc:ResourceShape 不同:oslc:resourceShape 是 属性 到 link 的资源形状,而 oslc:ResourceShape 是用于 Resource Shape 资源本身的 rdf:type 的值。

来源

resource table for the CreationFactory type表示,对​​于oslc:resourceShape属性:"A Creation Factory MAY provide Resource Shapes that describe shapes of resources that may be created".

OSLC 规范似乎没有明确描述 oslc:instanceShape 的不同之处,但 the submission of OSLC Resource Shapes to the W3C 说:"The oslc:instanceShape property is used to link any described resource with a shape resource that describes its contents".