@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#> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .

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

<#CreationFactory>  a oslc:ResourceShape ;
    dcterms:title "Creation Factory" ;
    dcterms:description "A Creation Factory describes a capability for creating resources, including an LDPC capable of creating and containing new resources via HTTP POST." ;
    oslc:describes oslc:CreationFactory ;
    oslc:property
        <#dcterms-title>,
        <#oslc-label>,
        <#oslc-creation>,
        <#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-creation> a oslc:Property ;
	oslc:name "creation" ;
	oslc:propertyDefinition oslc:creation ;
	oslc:range ldp:Container ;
	oslc:occurs oslc:Exactly-one;
	dcterms:description "To create a new resource via the factory, post it to this URI."^^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-many;
	dcterms:description "A Creation Factory MAY provide Resource Shapes that describe shapes of resources that may be created."^^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 of the resource that will be created using this creation factory. 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 resource. If a resource has multiple uses, 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
.


