OSLC Core 3.0 Discovery defines QueryCapability and oslc:queryBase: The base URI to use for queries. Queries are invoked via HTTP GET on a query URI formed by appending a key=value pair to the base URI, as described in Query Capabilities section. But there is no Query Capabilities section in the Discovery document that describes what the results of such a GET would be, or addresses the OSLC Core 2.0 use of rdfs:member vs. ldp:contains.
https://web.archive.org/web/20151031160403/http://open-services.net/bin/view/Main/OSLCCoreSpecRDFXMLExamples#Specifying_the_shape_of_a_query provides examples that use rdfs:member. However, that documernt does not appear to be referenced by the specification.
The use of lpd:contains is preferable because it is consistent with other LDPCs, some of which are, in essence, query-based containers without support for oslc.where. However, rdfs:member appears to be the current query 2.0 usage, albeit not described in the OSLC Query 2.0 specification itself.
Specify both via Query Resource Shape. In the Service resource in the definition of the Query Capability, add an oslc:resourceShape property-value to specify a complete Resource Shape that defines the shape of the query. The shape should specify both a resource type to be used for the results, and a member property to be used to represent individual query results. This will enable people and query builders to discover query-able fields and the shape specifies the form that will be returned.
However, although a resource shape can have more than one oslc:describes, that results in the referenced oslc properties applying to all those types. One way to avoiid that is to have a queryCapability reference two resource shjapes, one for the returned members, the other for the container. However, OSLC Core 2.0 specified oslc:Zero-or-one for the oslc:resourceShape of a query capability.