@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/ServiceProviderCatalog-shape.ttl> .


<#ServiceProviderCatalog>  a oslc:ResourceShape ;
    dcterms:title "Service Provider Catalog" ;
    dcterms:description """An LDPC describing an OSLC server that offers one or more ServiceProvider LDPCs. Servers 
    	MAY also organize the ServiceProviders in one or more ServiceProviderCatalog LDPCs to enable OSLC clients to 
    	find ServiceProviders offered. The members of these catalogs may include other nested catalogs as well as
    	service providers.""" ;
    oslc:describes oslc:ServiceProviderCatalog ;
    oslc:property 
        <#dcterms-title>,
        <#dcterms-description>,
        <#dcterms-publisher>,
        <#oslc-domain>,
        <#oslc-serviceProvider>,
        <#oslc-serviceProviderCatalog>,
        <#oslc-oauthConfiguration>
.

<#dcterms-title> a oslc:Property ;
	oslc:name "title" ;
	oslc:propertyDefinition dcterms:title ;
	oslc:occurs oslc:Zero-or-one;
	dcterms:description "Title of this resource."^^rdf:XMLLiteral ;
	oslc:valueType rdf:XMLLiteral ;
	oslc:readOnly true
.

<#dcterms-description> a oslc:Property ;
	oslc:name "description" ;
	oslc:propertyDefinition dcterms:description ;
	oslc:occurs oslc:Zero-or-one;
	dcterms:description "Description of the services provided."^^rdf:XMLLiteral ;
	oslc:valueType rdf:XMLLiteral ;
	oslc:readOnly true
.

<#dcterms-publisher> a oslc:Property ;
	oslc:name "publisher" ;
	oslc:propertyDefinition dcterms:publisher ;
	oslc:range oslc:Publisher ;
	oslc:occurs oslc:Zero-or-one;
	dcterms:description "Describes the software product that provides the implementation."^^rdf:XMLLiteral ;
	oslc:valueType oslc:AnyResource ;
	oslc:representation oslc:Inline ;
	oslc:readOnly true
.

<#oslc-domain> a oslc:Property ;
	oslc:name "domain" ;
	oslc:propertyDefinition oslc:domain ;
	oslc:occurs oslc:Zero-or-many;
	dcterms:description "Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used."^^rdf:XMLLiteral ;
	oslc:valueType oslc:Resource ;
	oslc:representation oslc:Reference ;
	oslc:readOnly true
.

<#oslc-serviceProvider> a oslc:Property ;
	oslc:name "serviceProvider" ;
	oslc:propertyDefinition oslc:serviceProvider ;
	oslc:range oslc:ServiceProvider ;
	oslc:occurs oslc:Zero-or-many ;
	dcterms:description "A service provider LDPC offered by this server."^^rdf:XMLLiteral ;
	oslc:valueType oslc:AnyResource ;
	oslc:representation oslc:Either ;
	oslc:readOnly true
.

<#oslc-serviceProviderCatalog> a oslc:Property ;
	oslc:name "serviceProviderCatalog" ;
	oslc:propertyDefinition oslc:serviceProviderCatalog ;
	oslc:range oslc:ServiceProviderCatalog ;
	oslc:occurs oslc:Zero-or-many ;
	dcterms:description "Additional service provider catalog LDPCs used to organize services."^^rdf:XMLLiteral ;
	oslc:valueType oslc:AnyResource ;
	oslc:representation oslc:Either ;
	oslc:readOnly true
.

<#oslc-oauthConfiguration> a oslc:Property ;
	oslc:name "oauthConfiguration" ;
	oslc:propertyDefinition oslc:oauthConfiguration ;
	oslc:range oslc:OAuthConfiguration ;
	oslc:occurs oslc:Zero-or-many ;
	dcterms:description "Defines the three OAuth URIs required for a client to act as an OAuth consumer."^^rdf:XMLLiteral ;
	oslc:valueType oslc:AnyResource ;
	oslc:representation oslc:Inline ;
	oslc:readOnly true
.


