In section "7.2 oslc where" (
https://tools.oasis-open.org/version-control/browse/wsvn/oslc-core/trunk/specs/oslc-query.html#oslc.where), it is not clear what defines the set of properties that can be given in the oslc.where pattern.
Let's take the provided Example2 as a example, where cm:memberBug defines the membership property, and dcterms:identifier is used in the oslc.where query.
The example states "supposed bug reports have a dcterms:identifier" property....
But how do we know we are dealing with "bug reports"? I see 4 alternatives:
1. The oslc:resourceType property of the Query Capability refers to Bug.
2. The Query Capability "provides Resource Shapes that describe the property values that may be expected in the resources that are queryable via the query capability." (as stated under https://open-services.net/bin/view/Main/OslcCoreSpecification#Query_Capabilities)
This shape would have to be different from oslc:resourceShape property, which is to describe the baseQuery itself.
(See https://issues.oasis-open.org/browse/OSLCCORE-102 for discussion on query shapes)
3. The membership property cm:memberBug has a Range defined, that refers to Bug.
4. oslc.where can refer to any properties that don't even need to be part of the Bug resource.