OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

oslc-core message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [oslc-core] Fwd: [lyo-dev] [oslc-core] Checking compliance of a resource with multiple resource shapes

A typical example of where multiple shapes can apply to a single type of resource is found in the shapes for creation factories, query capabilities, and instance shapes. A shape on a creation factory can indicate the properties required to create a new instance of a class using that factory, where a shape on a query capability may indicate a potentially wider set of properties you might see on previously existing resources of that type, and the shape on an instance may indicate the properties allowed in the current state of that instance and/or required to progress to the next state in the lifecycle. Creation factories and query capabilities have oslc:usage properties that help define the context in which they can be used, and hence the contexts in which those shapes are applicable.

Unfortunately, at least in my mind, there is no good way for a client to determine the intended meaning of multiple instance shapes on a single resource. The 2.0 specs and related notes do not say much at all about this. The 3.0 specs are explicitly vague! They say:

If more than one shape applies to a resource then that resource shouldsatisfy all the constraints defined by all the shapes (AND semantics). However, the specification for a service description maydefine alternate semantics. For example, a service mayrequire that the resource satisfy the constraints defined by at least one of the shapes (OR semantics).

However, there is no defined way for a service to tell a client which semantics are intended.

I do think we could improve this. For example, perhaps a resource shape should have an optional oslc:usage property that help define the context in which they are applicable, and perhaps a service should have some defined way to describe the meaning of multiple instance shapes with the same or no usage.


From:        "Jim Amsden" <jamsden@us.ibm.com>
To:        Andrii Berezovskyi <andriib@kth.se>
Cc:        "OASIS OSLC Core TC Discussion List (oslc-core@lists.oasis-open.org)" <oslc-core@lists.oasis-open.org>
Date:        07/26/2017 12:46 PM
Subject:        Re: [oslc-core] Fwd: [lyo-dev] [oslc-core] Checking compliance of a resource with multiple resource shapes
Sent by:        <oslc-core@lists.oasis-open.org>

This is a common misinterpretation of what ResourceShapes mean. A ResourceShape does not define the structure of an OWL Class, rather it constrains property assertions involving that class in a context.

The reason a resource can have more than one instance shape is because the resource could be used in different contexts, each requiring different constraints. If there is more than one instance shape in the same context, and they are conflicting, the this would be considered a validation (but not structural) error or warning, depending on the context and how the application is using the resources.

OSLC domain vocabularies are intentionally under-specified: there are no domain and range or other assertions about the properties. The intention was to keep the vocabularies minimal, simple, flexible, and easily constrained for different purposes using ResourceShapes.

There are however common ResourceShape usage patterns that are in fact intended to constrain the "shape" of an OWL class so that it adheres to a specific structure for persistence, marshalling to static structured classes in programming languages, building queries, etc.

Jim Amsden, Senior Technical Staff Member

OSLC and Linked Lifecycle Data


Andrii Berezovskyi <andriib@kth.se>
"OASIS OSLC Core TC Discussion List (oslc-core@lists.oasis-open.org)" <oslc-core@lists.oasis-open.org>
07/26/2017 11:22 AM
[oslc-core] Fwd: [lyo-dev] [oslc-core] Checking compliance of a resource with multiple resource shapes
Sent by:        

Forwarding it here as somebody might be able to provide better feedback.


(sent from my phone)

---------- Forwarded message ----------
From: "Leonid Mokrushin" <
Date: Wed, Jul 26, 2017 at 5:02 PM +0200
Subject: [lyo-dev] [oslc-core] Checking compliance of a resource with multiple resource shapes
To: "Lyo project developer discussions" <


I just had a discussion with Andrew regarding how to correctly interpret a following situation:

* An OSLC resource is allowed to have multiple oslc:instanceShape properties (see
* Imagine there are two resource shapes associated with a resource (using oslc:instanceShape) that describe the same property (let's say dcterms:title).

1) If these two descriptions are identical, I don't see any problem.

2) But, what if these two descriptions contradict each other? Let's say one declares that cardinality of dcterms:title should be oslc:Zero-or-one and another - oslc:One-or-many.

Shall an implementation consider 1) to be an OK and 2) to be an error, or both to be an error, or some other interpretation should be applied?

/Leo[attachment "ATT00001.txt" deleted by Jim Amsden/Raleigh/IBM]

To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail.  Follow this link to all your TCs in OASIS at:


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]