@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix oslc: <http://open-services.net/ns/core#> .

@base <http://open-services.net/ns/core/shapes/3.0/QueryCapability-shape.ttl> .


<#QueryCapability>  a oslc:ResourceShape ;
    dcterms:title "Query Capability" ;
    dcterms:description "A Query Capability describes a query capability, capable of querying resources via HTTP GET or POST." ;
    oslc:describes oslc:QueryCapability ;
    oslc:property
        <#dcterms-title>,
        <#oslc-label>,
        <#oslc-queryBase>,
        <#oslc-resourceShape>,
        <#oslc-resourceType>,
        <#oslc-usage>
.

<#dcterms-title> a oslc:Property ;
	oslc:name "title" ;
	oslc:propertyDefinition dcterms:title ;
	oslc:occurs oslc:Exactly-one;
	dcterms:description "Title string that could be used for display."^^rdf:XMLLiteral ;
	oslc:valueType rdf:XMLLiteral ;
	oslc:readOnly true
.

<#oslc-label> a oslc:Property;
	oslc:name "label" ;
	oslc:propertyDefinition oslc:label ;
	oslc:occurs oslc:Zero-or-one;
	dcterms:description "Very short label for use in menu items."^^rdf:XMLLiteral ;
	oslc:valueType <http://www.w3.org/2001/XMLSchema#string> ;
	oslc:readOnly true
.

<#oslc-queryBase> a oslc:Property ;
	oslc:name "queryBase" ;
	oslc:propertyDefinition oslc:queryBase ;
	oslc:occurs oslc:Exactly-one;
	dcterms:description "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."^^rdf:XMLLiteral ;
	oslc:valueType oslc:Resource ;
	oslc:representation oslc:Reference ;
	oslc:readOnly true
.

<#oslc-resourceShape> a oslc:Property ;
	oslc:name "resourceShape" ;
	oslc:propertyDefinition oslc:resourceShape ;
	oslc:range oslc:ResourceShape ;
	oslc:occurs oslc:Zero-or-one;
	dcterms:description "The Query Capability SHOULD provide a Resource Shape that describes the query base URI."^^rdf:XMLLiteral ;
	oslc:valueType oslc:Resource ;
	oslc:representation oslc:Reference ;
	oslc:readOnly true
.

<#oslc-resourceType> a oslc:Property ;
	oslc:name "resourceType" ;
	oslc:propertyDefinition oslc:resourceType ;
	oslc:range rdfs:Class ;
	oslc:occurs oslc:Zero-or-many;
	dcterms:description "The expected resource type URI that will be returned with this query capability. These would be the URIs found in the result resource's rdf:type property."^^rdf:XMLLiteral ;
	oslc:valueType oslc:Resource ;
	oslc:representation oslc:Reference ;
	oslc:readOnly true
.

<#oslc-usage> a oslc:Property ;
	oslc:name "usage" ;
	oslc:propertyDefinition oslc:usage ;
	oslc:occurs oslc:Zero-or-many;
	dcterms:description "An identifier URI for the domain specified usage of this query capability. If a service provides multiple query capabilities, it may designate the primary or default one that should be used with a property value of oslc:default."^^rdf:XMLLiteral ;
	oslc:valueType oslc:Resource ;
	oslc:representation oslc:Reference ;
	oslc:readOnly true
.


