# Copyright 2024 OASIS Open # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # RDF constraints document for OSLC Configuration Management @prefix dcterms: . @prefix foaf: . @prefix ldp: . @prefix oslc: . @prefix oslc_auto: . @prefix oslc_config: . @prefix prov: . @prefix rdf: . @prefix rdfs: . @prefix xsd: . @prefix : . : a oslc:ResourceShapeConstraints ; rdfs:label "Resource Shapes for OSLC Configuration Management" ; dcterms:title "Resource Shapes for OSLC Configuration Management" ; dcterms:description "Shapes for resources defined by OSLC Configuration Management."^^rdf:XMLLiteral ; dcterms:publisher ; dcterms:source ; dcterms:isPartOf ; dcterms:hasVersion "PSD" ; dcterms:license ; dcterms:issued "2024-10-24"^^ ; dcterms:dateCopyrighted "2012-2024" . # ============================ Common property definitions, shared between 2 or more shapes ============================ :acceptedBy a oslc:Property ; oslc:name "acceptedBy" ; oslc:propertyDefinition oslc_config:acceptedBy ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:range rdfs:Class ; oslc:valueType oslc:Resource ; dcterms:description """A type of configuration that accepts this configuration as a contribution. {{A configuration with no value for `oslc_config:acceptedBy` MUST NOT be used as a contribution to any other configuration}} - that is, it can only be a root of a configuration hierarchy (or a stand-alone configuration if there is also no value for `oslc_config:accepts`). Such configurations should be rare."""^^rdf:XMLLiteral . :accepts a oslc:Property ; oslc:name "accepts" ; oslc:propertyDefinition oslc_config:accepts ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A type of configuration that is acceptable as a contribution to this stream. A configuration with no value for this predicate accepts no contributions - that is, it can only be a leaf in a configuration hierarchy."""^^rdf:XMLLiteral . :archived a oslc:Property ; oslc:name "archived" ; oslc:occurs oslc:Zero-or-one ; oslc:propertyDefinition oslc:archived ; oslc:valueType xsd:boolean ; dcterms:description "Indicates whether the subject has been marked as archived, no longer an active resource."^^rdf:XMLLiteral . :branch a oslc:Property ; oslc:name "branch" ; oslc:propertyDefinition oslc_config:branch ; oslc:occurs oslc:Zero-or-one ; oslc:readOnly false ; oslc:representation oslc:Either ; oslc:valueType oslc:Resource ; dcterms:description "An indicator of the intended purpose of the configuration."^^rdf:XMLLiteral . :component a oslc:Property ; oslc:name "component" ; oslc:propertyDefinition oslc_config:component ; oslc:occurs oslc:Exactly-one ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Component ; dcterms:description """The component of which this is a configuration, and from which the configuration selects versions of resources in the component. The component is an invariant relating the different configurations of the same 'thing'."""^^rdf:XMLLiteral . :contributor a oslc:Property ; oslc:name "contributor" ; oslc:propertyDefinition dcterms:contributor ; oslc:occurs oslc:Zero-or-many ; oslc:valueType oslc:AnyResource ; oslc:representation oslc:Either ; oslc:range foaf:Person, foaf:Agent ; dcterms:description """Contributor or contributors to the resource. The link target is usually a `foaf:Person` or `foaf:Agent`, but could be any type."""^^rdf:XMLLiteral . :created a oslc:Property ; oslc:name "created" ; oslc:propertyDefinition dcterms:created ; oslc:occurs oslc:Zero-or-one ; oslc:valueType xsd:dateTime ; oslc:readOnly true ; dcterms:description "Timestamp of resource creation. {{Each resource SHOULD have one instance of the `dcterms:created` property}}."^^rdf:XMLLiteral . :creator a oslc:Property ; oslc:name "creator" ; oslc:propertyDefinition dcterms:creator ; oslc:occurs oslc:Zero-or-many ; oslc:valueType oslc:AnyResource ; oslc:representation oslc:Either ; oslc:range foaf:Person, foaf:Agent ; oslc:readOnly true ; dcterms:description """Creator or creators of the resource. The link target is usually a `foaf:Person` or `foaf:Agent`, but could be any type."""^^rdf:XMLLiteral . :description a oslc:Property ; oslc:name "description" ; oslc:propertyDefinition dcterms:description ; oslc:occurs oslc:Zero-or-one ; oslc:valueType rdf:XMLLiteral ; oslc:readOnly false ; dcterms:description """Descriptive text about the resource, represented as rich text in XHTML content."""^^rdf:XMLLiteral . :identifier a oslc:Property ; oslc:name "identifier" ; oslc:propertyDefinition dcterms:identifier ; oslc:occurs oslc:Zero-or-one; oslc:valueType xsd:string ; oslc:readOnly true ; dcterms:description "A unique identifier for this resource."^^rdf:XMLLiteral . :instanceShape a oslc:Property ; oslc:name "instanceShape" ; oslc:propertyDefinition oslc:instanceShape ; oslc:occurs oslc:Zero-or-one ; oslc:valueType oslc:Resource ; oslc:representation oslc:Either ; oslc:range oslc:ResourceShape ; oslc:readOnly true ; dcterms:description """The URI of a Resource Shape that describes the possible properties, occurrence, value types, allowed values and labels. This shape information is useful in displaying the subject resource as well as guiding clients in performing modifications. Instance shapes may be specific to the authenticated user associated with the request that retrieved the resource, the current state of the resource, and other factors, so {{instance shapes SHOULD NOT be cached}}."""^^rdf:XMLLiteral . :modified a oslc:Property ; oslc:name "modified" ; oslc:propertyDefinition dcterms:modified ; oslc:occurs oslc:Zero-or-one ; oslc:valueType xsd:dateTime ; oslc:readOnly true ; dcterms:description "Timestamp of latest resource modification. {{Each resource SHOULD have one instance of the `dcterms:modified` property}}."^^rdf:XMLLiteral . :modifiedBy a oslc:Property ; oslc:name "modifiedBy" ; oslc:propertyDefinition oslc:modifiedBy ; oslc:occurs oslc:Zero-or-many ; oslc:valueType oslc:AnyResource ; oslc:representation oslc:Either ; oslc:range foaf:Person, foaf:Agent ; oslc:readOnly true ; dcterms:description """The entity that most recently modified the subject resource. The link target is usually a `foaf:Person` or `foaf:Agent`, but could be any type."""^^rdf:XMLLiteral . :release a oslc:Property ; oslc:name "release" ; oslc:propertyDefinition oslc:release ; oslc:occurs oslc:Zero-or-many ; oslc:valueType oslc:Resource ; oslc:representation oslc:Reference ; oslc:readOnly false ; dcterms:description "A link to a resource indicating a target release for the artifacts selected by this configuration."^^rdf:XMLLiteral . :serviceProvider a oslc:Property ; oslc:name "serviceProvider" ; oslc:propertyDefinition oslc:serviceProvider ; oslc:occurs oslc:Zero-or-many ; oslc:valueType oslc:Resource ; oslc:representation oslc:Reference ; oslc:range oslc:ServiceProvider ; oslc:readOnly true ; dcterms:description """A link to the resource's OSLC Service Provider. If the subject resource is available from an application that implements multiple domain specifications, there can be multiple values for this property."""^^rdf:XMLLiteral . :shortId a oslc:Property ; oslc:name "shortId" ; oslc:propertyDefinition oslc:shortId ; oslc:occurs oslc:Zero-or-one ; oslc:valueType xsd:string ; dcterms:description "A short and human-readable identifier for the resource, such as a number."^^rdf:XMLLiteral . :shortTitle a oslc:Property ; oslc:name "shortTitle" ; oslc:propertyDefinition oslc:shortTitle ; oslc:occurs oslc:Zero-or-one ; oslc:valueType rdf:XMLLiteral ; dcterms:description """A short title for the resource, represented as rich text in XHTML content."""^^rdf:XMLLiteral . :subject a oslc:Property ; oslc:name "subject" ; oslc:propertyDefinition dcterms:subject ; oslc:occurs oslc:Zero-or-many ; oslc:valueType xsd:string ; oslc:readOnly false; dcterms:description """Tag or keyword for a resource. Each occurrence of a `dcterms:subject` property denotes an additional tag for the resource."""^^rdf:XMLLiteral . :title a oslc:Property ; oslc:name "title" ; oslc:propertyDefinition dcterms:title ; oslc:occurs oslc:Zero-or-one ; oslc:valueType rdf:XMLLiteral ; oslc:readOnly false ; dcterms:description "Title of the resource, represented as rich text in XHTML content."^^rdf:XMLLiteral . :wasDerivedFrom a oslc:Property ; oslc:name "wasDerivedFrom" ; oslc:propertyDefinition prov:wasDerivedFrom ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Configuration ; dcterms:description """A stream or baseline from which this stream was first copied. This property can be absent for streams created as new empty streams. Multiple instances of this property imply the stream was initially formed from a merge from one or more baselines. {{The `prov:wasDerivedFrom` property is undefined for baselines; it MAY be absent, or it MAY have the same value as `oslc_config:baselineOfStream`}}. If this property is present on multiple change sets overriding the same base configuration, it implies a partial ordering of those change sets, identifying change sets derived from earlier change sets on the same base. {{Servers SHOULD treat this property as read-only after initial creation}}."""^^rdf:XMLLiteral . # ============================ Component shape ============================ :ComponentShape a oslc:ResourceShape ; oslc:describes oslc_config:Component ; dcterms:title "The shape of a component." ; dcterms:description """A set of versioned resources; a configuration selects zero, one, or (very rarely) more than one version of these resources. {{A component itself MAY be a versioned resource}}, indicated by the RDF type `oslc_config:VersionResource` on its versions, but need not be versioned; the semantics of versioned components are not defined by this specification. Typically, components themselves are not nested - that is, typically none of the members of an `oslc_config:Component` container are themselves of type `oslc_config:Component`; any required structure and hierarchy is realized through configurations, or through the structures within the configuration items themselves (e.g., versioned folders or directories)."""^^rdf:XMLLiteral ; oslc:property # Property definitions unique to Component [ #type a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{A Component MUST have a resource type of `oslc_config:Component`}}. {{A component MAY be a Linked Data Platform Container, containing the concept resources associated with this component}}. {{The members of such an `oslc_config:Component` container MUST NOT be of type `oslc_config:Configuration`}}; sub-configurations are given in the `oslc_config:contributions` property. No meaning is assigned to a member of type `oslc_config:Component`; neither client nor server is obligated to perform any recursion through nested Components. {{Servers MAY treat the `rdf:type` property for a component as read-only."""^^rdf:XMLLiteral ] , [ #configurations a oslc:Property ; oslc:name "configurations" ; oslc:propertyDefinition oslc_config:configurations ; oslc:occurs oslc:Exactly-one ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range ldp:Container ; dcterms:description """The Linked Data Platform Container that contains all the configurations (both streams and baselines) of this component. {{The `oslc_config:configurations` property on a component is read-only; servers MAY also treat the referenced container as read-only}}. If it is not read-only, {{the container MAY have an `oslc:resourceShape` property referencing a resource shape that describes the container}}. {{If a container resource shape is specified, the shape SHOULD have a property describing the membership of the container with a `oslc:valueShape` referencing a resource shape that describes the shapes of streams and baselines that may be created}}."""^^rdf:XMLLiteral ] , # Properties shared with other shapes :archived , :contributor , :created , :creator , :description , :identifier , :instanceShape , :modified , :modifiedBy , :serviceProvider , :shortId , :shortTitle , :subject , :title . # ============================ Baseline shape ============================ :BaselineShape a oslc:ResourceShape ; oslc:describes oslc_config:Baseline ; dcterms:title "The shape of a baseline. {{Properties of a baseline defined in this specification MUST be read-only unless stated otherwise}}." ; oslc:property # Property definitions unique to Baseline [ #type a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{A baseline MUST have at least the resource type `oslc_config:Baseline`}}. Clients can infer a resource type of `oslc_config:Configuration`, but there is no requirement for servers to materialize this triple in the RDF representation. {{Other types MAY be added, including types that are used in `oslc_config:accepts` and `oslc_config:acceptedBy` properties}} to define which matching configurations may be added as contributions to this configuration, or to which this configuration may be added as a contribution. {{Servers MAY treat the `rdf:type` property of a baseline as read-only}}."""^^rdf:XMLLiteral ] , [ #baselineOfStream a oslc:Property ; oslc:name "baselineOfStream" ; oslc:propertyDefinition oslc_config:baselineOfStream ; oslc:occurs oslc:Exactly-one ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Configuration ; dcterms:description """Indicates the stream of which this is a baseline. Note that the referenced resource might no longer exist (streams are mutable so can be deleted), but this property remains valuable to relate all baselines of the same stream."""^^rdf:XMLLiteral ] , [ #branch a oslc:Property ; oslc:name "branch" ; oslc:propertyDefinition oslc_config:branch ; oslc:occurs oslc:Zero-or-one ; oslc:readOnly true ; oslc:representation oslc:Either ; oslc:valueType oslc:Resource ; dcterms:description "An indicator of the intended purpose of the baseline."^^rdf:XMLLiteral ] , [ #committer a oslc:Property ; oslc:name "committer" ; oslc:propertyDefinition oslc_config:committer ; oslc:occurs oslc:Zero-or-many ; oslc:representation oslc:Either ; oslc:valueType oslc:AnyResource ; oslc:range foaf:Person, foaf:Agent ; oslc:readOnly true ; dcterms:description """The entity that committed this configuration as a baseline. The link target is usually a `foaf:Person` or `foaf:Agent`, but could be any type."""^^rdf:XMLLiteral ] , [ #committed a oslc:Property ; oslc:name "committed" ; oslc:propertyDefinition oslc_config:committed ; oslc:occurs oslc:Zero-or-one ; oslc:valueType xsd:dateTime ; oslc:readOnly true ; dcterms:description "Date and time this configuration was committed as a baseline."^^rdf:XMLLiteral ] , [ #contribution a oslc:Property ; oslc:name "contribution" ; oslc:propertyDefinition oslc_config:contribution ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Inline ; oslc:valueType oslc:AnyResource ; oslc:valueShape :ContributionShape ; oslc:range oslc_config:Contribution ; dcterms:description """A contribution to this baseline. The set of resource versions identified by this baseline is the union of the set determined by the `oslc_config:selections` resources and each of the sets of resource versions identified by the contributed baselines. {{The target MUST be of type `oslc_config:Contribution`}}. {{Contribution resources MUST be returned inline with the baseline resource}}. {{In the set of Contribution resources for a single parent baseline, there MUST be only one Contribution resource for a given contributed baseline}}."""^^rdf:XMLLiteral ] , [ #contributor a oslc:Property ; oslc:name "contributor" ; oslc:propertyDefinition dcterms:contributor ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Either ; oslc:valueType oslc:AnyResource ; oslc:range foaf:Person, foaf:Agent ; dcterms:description """Contributor or contributors to the resource. The link target is usually a `foaf:Person` or `foaf:Agent`, but could be any type."""^^rdf:XMLLiteral ] , [ #description a oslc:Property ; oslc:name "description" ; oslc:propertyDefinition dcterms:description ; oslc:occurs oslc:Zero-or-one ; oslc:valueType rdf:XMLLiteral ; dcterms:description """Descriptive text about the resource, represented as rich text in XHTML content. {{The description of a baseline MAY be modifiable}}."""^^rdf:XMLLiteral ] , [ #previousBaseline a oslc:Property ; oslc:name "previousBaseline" ; oslc:propertyDefinition oslc_config:previousBaseline ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Baseline ; dcterms:description """A reference to the immediately preceding baseline of the same stream. Multiple instances of this property imply the stream was merged from one or more baselines before this baseline was taken. {{This property MAY be updated by the server to refer to earlier baselines when intermediate baselines are deleted}}."""^^rdf:XMLLiteral ] , [ #selections a oslc:Property ; oslc:name "selections" ; oslc:propertyDefinition oslc_config:selections ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Selections ; dcterms:description """A reference to a resource identifying immutable versions of the resources (configuration items) in the configuration. The set of version resources identified is the union of the sets in all the selections resources. Since selections properties are not ordered, there is no defined meaning to a selection that appears in two or more different selections properties; {{servers MAY treat such multiple occurrences of selections as an error}}."""^^rdf:XMLLiteral ] , [ #streams a oslc:Property ; oslc:name "streams" ; oslc:propertyDefinition oslc_config:streams ; oslc:occurs oslc:Exactly-one ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range ldp:Container ; dcterms:description """The Linked Data Platform Container that contains all the streams derived from this baseline. A new stream derived from this baseline is created by a POST to this container; {{a `previousBaseline` property of the new stream MUST be set to refer to this baseline}}. Note that the `streams` property itself is immutable, but the container referenced by the property is not. {{The container MAY have an `oslc:resourceShape` property referencing a resource shape that describes the container}}. {{If a container resource shape is specified, it should have a property describing the membership of the container with a ``oslc:valueShape`` referencing a resource shape that describes the shapes of streams that may be created}}."""^^rdf:XMLLiteral ] , [ #subject (tag) a oslc:Property ; oslc:name "subject" ; oslc:propertyDefinition dcterms:subject ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly false; oslc:valueType xsd:string ; dcterms:description """Tag or keyword for a resource. Each occurrence of a `dcterms:subject` property denotes an additional tag for the resource. {{Tags on baselines MUST be modifiable}}."""^^rdf:XMLLiteral ] , [ #title a oslc:Property ; oslc:name "title" ; oslc:propertyDefinition dcterms:title ; oslc:occurs oslc:Zero-or-one ; oslc:readOnly false; oslc:valueType rdf:XMLLiteral ; dcterms:description """Title of the resource, represented as rich text in XHTML content. {{The title of a baseline SHOULD be modifiable}}."""^^rdf:XMLLiteral ] , # Properties shared with other shapes :acceptedBy , :archived , :component , :created , :creator , :identifier , :instanceShape , :modified , :modifiedBy , :release , :serviceProvider , :shortId , :shortTitle , :wasDerivedFrom . # ============================ Stream shape ============================ :StreamShape a oslc:ResourceShape ; oslc:describes oslc_config:Stream ; dcterms:title "The shape of a stream." ; oslc:property # Property definitions unique to Stream [ #type a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{A stream MUST have at least the resource type `oslc_config:Stream`}}. Clients can infer a resource type of `oslc_config:Configuration`, but there is no requirement for servers to materialize this triple in the RDF representation. {{Other types MAY be added, including types that are used in `oslc_config:accepts` and `oslc_config:acceptedBy` properties to define which matching configurations may be added as contributions to this configuration, or to which this configuration may be added as a contribution}}. {{Servers MAY treat this property as read-only}}."""^^rdf:XMLLiteral ] , [ #baselines a oslc:Property ; oslc:name "baselines" ; oslc:propertyDefinition oslc_config:baselines ; oslc:occurs oslc:Exactly-one ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range ldp:Container ; dcterms:description """The Linked Data Platform Container that contains all the baselines of this stream. A new baseline of this stream is created by a POST to this container. Note that the `baselines` property itself is immutable, but the container referenced by the property is not. {{The container MAY have an `oslc:resourceShape` property referencing a resource shape that describes the container}}. {{If a container resource shape is specified, it SHOULD have a property describing the membership of the container with a `oslc:valueShape` referencing a resource shape that describes the additional properties that may be specified for baselines}}."""^^rdf:XMLLiteral ] , [ #previousBaseline a oslc:Property ; oslc:name "previousBaseline" ; oslc:propertyDefinition oslc_config:previousBaseline ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Baseline ; dcterms:description """A reference to the immediately preceding baseline of this stream. Multiple instances of this property imply the stream was merged from one or more baselines, and no baseline of the merged result has yet been taken. If the property is absent, no baseline of this stream has been taken."""^^rdf:XMLLiteral ] , [ #selections a oslc:Property ; oslc:name "selections" ; oslc:propertyDefinition oslc_config:selections ; oslc:occurs oslc:Zero-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Selections ; dcterms:description """A reference to a resource identifying versions of the resources (configuration items) in the configuration. The set of version resources identified is the union of the sets in all the selections resources. Since selections properties are not ordered, there is no defined meaning to a selection that appears in two or more different selections properties; {{servers MAY treat such multiple occurrences of selections as an error}}. {{Servers MAY treat this property as read-only}}."""^^rdf:XMLLiteral ] , [ #contribution a oslc:Property ; oslc:name "contribution" ; oslc:propertyDefinition oslc_config:contribution ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly false ; oslc:representation oslc:Inline ; oslc:valueType oslc:AnyResource ; oslc:valueShape :ContributionShape ; oslc:range oslc_config:Contribution ; dcterms:description """A contribution to this configuration. The set of resource versions identified by this configuration is the union of the set determined by the `oslc_config:selections` resources and each of the sets of resource versions identified by the contributed configurations. A user can request an update to a configuration to change the set of contributions; {{servers MAY deny such requests if any added contributions do not match this configuration}}. {{The target MUST be of type `oslc_config:Contribution`}}. {{Contribution resources MUST be returned inline with the configuration resource}}. In the set of Contribution resources for a single parent configuration, {{there MUST be only one Contribution resource for a given contributed configuration}}."""^^rdf:XMLLiteral ] , # Properties shared with other shapes :acceptedBy , :accepts , :archived , :branch , :component , :contributor , :created , :creator , :description , :identifier , :instanceShape , :modified , :modifiedBy , :release , :serviceProvider , :shortId , :shortTitle , :subject , :title , :wasDerivedFrom . # ============================ Contribution shape ============================ :ContributionShape a oslc:ResourceShape ; oslc:describes oslc_config:Contribution ; dcterms:title "A contribution to a configuration." ; oslc:property # Properties that are unique to Contribution [ #type a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. Clients can infer a resource type of `oslc_config:Contribution`, but there is no requirement for servers to materialize this triple in the RDF representation."""^^rdf:XMLLiteral ] , [ #configuration a oslc:Property ; oslc:name "configuration" ; oslc:propertyDefinition oslc_config:configuration ; oslc:occurs oslc:Exactly-one ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Configuration ; dcterms:description """The contributed configuration. This property is read-only for contributions to a baseline, and modifiable for contributions to a stream. {{On a PUT or POST of a Stream resource and its Contributions, this contributed configuration SHOULD be unique amongst the set of configurations contributed to a given parent configuration}}. {{a server MAY collapse multiple contributions for the same configuration to a single contribution}}. During such a reduction of multiple Contribution resources to a single Contribution resource, this specification does not define the contributionOrder value in the merged result."""^^rdf:XMLLiteral ] , [ #contributionOrder a oslc:Property ; oslc:name "contributionOrder" ; oslc:propertyDefinition oslc_config:contributionOrder ; oslc:occurs oslc:Exactly-one ; oslc:valueType xsd:string ; dcterms:description """An indication of the order of the contribution, relative to other contributions. Contributions are sorted lexicographically on the Unicode code points of this value to resolve component skew. To ensure predictable sorting regardless of implementation and locale, {{the `oslc_config:contributionOrder` string SHOULD be restricted to ASCII characters}}. {{Servers MUST support at least 64 characters in this string}}. This property is read-only for contributions to a baseline, and modifiable for contributions to a stream."""^^rdf:XMLLiteral ] , [ #overrides a oslc:Property ; oslc:name "overrides" ; oslc:propertyDefinition oslc_config:overrides ; oslc:occurs oslc:Exactly-one ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Configuration ; dcterms:description "A reference to a configuration overridden by the configuration of this contribution."^^rdf:XMLLiteral ] , # Properties shared with other shapes :modified . # ============================ Selections shape ============================ :SelectionsShape a oslc:ResourceShape ; oslc:describes oslc_config:Selections ; dcterms:title "The resources selected by a configuration." ; oslc:property # All properties are unique to this shape [ #type a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{A Selections resource MUST have at least the resource type `oslc_config:Selections`}}. {{Selections resources MAY also have the type `oslc_config:UnboundSelections`}}."""^^rdf:XMLLiteral ] , [ #selects a oslc:Property ; oslc:name "selects" ; oslc:propertyDefinition oslc_config:selects ; oslc:occurs oslc:Zero-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; dcterms:description """{{If the selection type is not `oslc_config:UnboundSelections`, the target resource MUST be a version resource}}. If the selection type is `oslc_config:UnboundSelections`, the target is a concept URI for a concept resource that should be in the configuration, but for which no version is determined by this selection. Unbound selections can be bound to specific versions by mechanisms not defined by this specification (such as effectivity parameters, variability parameters, etc.), or may be left unbound, in which case the configuration may represent an incomplete or abstract view of a system. {{Selected resources MUST NOT be of type `oslc_config:Configuration`}}; sub-configurations are given in the `oslc_config:contributions` property. No meaning is assigned to a selected resource of type `oslc_config:Component`. {{This property is read-only for selections of a baseline, but MAY be modifiable for selections of a stream}}."""^^rdf:XMLLiteral ] . # ============================ ChangeSet shape ============================ :ChangeSetShape a oslc:ResourceShape ; oslc:describes oslc_config:ChangeSet ; dcterms:title "The shape of a ChangeSet." ; dcterms:description """A ChangeSet is a mutable configuration (a type of stream) that replaces, or identifies a set of changes from, the configuration identified by the `oslc_config:overrides` property. That overridden configuration may be either a stream or a baseline, but a change set itself may not be a baseline. {{Servers MAY refuse to construct a baseline of a change set configuration}}. This specification does not define the meaning of one change set overriding another change set; {{servers MAY treat this as an error}}. If this change set has any contributions, those contributions completely replace the contributions to the overridden configuration when using this change set configuration as a context for resolving versions, or any configuration that contains this change set as a contribution; if this change set has no contributions, any contributions to the overridden configuration are handled normally. Selections in the change set may add to, replace, or remove from, the selections in the overridden configuration, as defined in ChangeSet Selections."""^^rdf:XMLLiteral ; oslc:property [ a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{A change set configuration MUST have at least the resource type `oslc_config:ChangeSet`}}. Clients may infer a resource type of `oslc_config:Configuration`, but there is no requirement for servers to materialize this triple in the RDF representation. Other types may be added, including types that are used in `oslc_config:accepts` properties to define which matching configurations to which this configuration may be added as a contribution. {{Servers MAY treat this property as read-only}}."""^^rdf:XMLLiteral ] , [ #selections a oslc:Property ; oslc:name "selections" ; oslc:propertyDefinition oslc_config:selections ; oslc:occurs oslc:Zero-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:ChangeSetSelections ; dcterms:description """A reference to a resource identifying versions of the resources (configuration items) in the configuration; these selections override, reduce, or extend the selections in the configuration identified by the `oslc_config:overrides` property. {{Servers MAY treat this property as read-only}}."""^^rdf:XMLLiteral ] , [ #overrides a oslc:Property ; oslc:name "overrides" ; oslc:propertyDefinition oslc_config:overrides ; oslc:occurs oslc:Exactly-one ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Configuration ; dcterms:description "A reference to a configuration modified or overridden by this change set configuration."^^rdf:XMLLiteral ] , [ #contribution a oslc:Property ; oslc:name "contribution" ; oslc:propertyDefinition oslc_config:contribution ; oslc:occurs oslc:Zero-or-many ; oslc:representation oslc:Inline ; oslc:valueType oslc:AnyResource ; oslc:valueShape :ContributionShape ; oslc:range oslc_config:Contribution ; dcterms:description """A contribution to this change set configuration. {{Servers MAY support contributions to change sets}}, and if so, this property behaves just as that for streams."""^^rdf:XMLLiteral ] , :acceptedBy , :accepts , :archived , :branch , :component , :contributor , :created , :creator , :description , :identifier , :instanceShape , :modified , :modifiedBy , :release , :serviceProvider , :shortId , :shortTitle , :subject , :title . :CSelectionsShape a oslc:ResourceShape ; oslc:describes oslc_config:ChangeSetSelections ; dcterms:title "The resources selected by a change set." ; oslc:property # All properties are unique to this shape [ #type a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{A change set Selections resource MUST have at least the resource type `oslc_config:Selections`}}. {{Change set selections resources MAY also have the types `oslc_config:ChangeSetSelections`, `oslc_config:UnboundSelections`, `oslc_config:Removals`, or `oslc_config:RemoveAll`}}."""^^rdf:XMLLiteral ] , [ #selects a oslc:Property ; oslc:name "selects" ; oslc:propertyDefinition oslc_config:selects ; oslc:occurs oslc:Zero-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; dcterms:description """A selected version resource. {{Selected resources MUST NOT be of type `oslc_config:Configuration`}}; sub-configurations are given in the `oslc_config:contributions` property. No meaning is assigned to a selected resource of type `oslc_config:Component`. {{This property MAY be modifiable for selections of a change set}}. If the subject has the type `oslc_config:RemoveAll`, all selections in the overriden configuration are to be ignored; all selections are in this and other `oslc_selects` properties of the change set. Any target concept or version resources (depending on the presence or absence of the type `oslc_config:UnboundSelections`) indicated in this selection resource are selected in this configuration. Otherwise, if the subject has the type `oslc_config:Removals`, the indicated target concepts or versions are explicitly removed from the set of versions selected by the configuration overridden by this configuration. Otherwise, if the subject has only the type `oslc_config:Selections`, the indicated target concept or version resources are selected by this configuration; a change set selection overrides (replaces) the concepts or versions selected by a matching concept resource in the overridden configuration's selection, and adds additional selections for concept resources that are not mentioned in the overridden configuration's selection. Since selections properties are not ordered, there is no defined meaning to a selection that appears in two or more different selections properties of any types, or to a change set that include both a `oslc_config:RemoveAll` and a `oslc_config:Removals` selection; {{servers MAY treat occurrences of potentially conflicting selections as an error}}."""^^rdf:XMLLiteral ] . :ChangeSetDeliveryShape a oslc:ResourceShape ; oslc:describes oslc_config:ChangeSetDelivery ; dcterms:title "The shape of a ChangeSetDelivery." ; dcterms:description """A ChangeSetDelivery is a resource representing the delivery of a single change set to a single target stream."""^^rdf:XMLLiteral ; oslc:property [ a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{A change set delivery MUST have at least the resource type `oslc_config:ChangeSetDelivery`}}. Clients may infer a resource type of `oslc_config:ChangeSetDelivery`, but there is no requirement for servers to materialize this triple in the RDF representation. ."""^^rdf:XMLLiteral ] , [ a oslc:Property ; oslc:name "sourceConfiguration" ; oslc:propertyDefinition oslc_config:sourceConfiguration ; oslc:occurs oslc:Exactly-one ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:ChangeSet ; dcterms:description """A reference to a resource identifying the change set that was delivered. This cannot be modified after creation."""^^rdf:XMLLiteral ] , [ a oslc:Property ; oslc:name "targetStream" ; oslc:propertyDefinition oslc_config:targetStream ; oslc:occurs oslc:Exactly-one ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Configuration ; dcterms:description """A reference to a resource identifying the stream to which the change set was delivered. This cannot be modified after creation."""^^rdf:XMLLiteral ] , :created , :creator , :description , :identifier , :instanceShape , :modified , :modifiedBy , :shortId , :shortTitle , :subject , :title . :ChangeSetDeliveryConflictShape a oslc:ResourceShape ; oslc:describes oslc:Error ; dcterms:title "The shape of a ChangeSetDeliveryConflict." ; dcterms:description """A ChangeSetDeliveryConflict is a resource representing a conflict error in the delivery of a single change set to a single target stream."""^^rdf:XMLLiteral ; oslc:property [ a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{A change set delivery conflict MUST have at least the resource type `oslc_config:ChangeSetDeliveryConflict`}}. Clients may infer a resource type of `oslc_config:ChangeSetDeliveryConflict`, but there is no requirement for servers to materialize this triple in the RDF representation. ."""^^rdf:XMLLiteral ] , [ a oslc:Property ; oslc:name "sourceVersionResource" ; oslc:propertyDefinition oslc_config:sourceVersionResource ; oslc:occurs oslc:Exactly-one ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:VersionResource ; dcterms:description """The version resource in the source configuration that is in conflict."""^^rdf:XMLLiteral ] , [ a oslc:Property ; oslc:name "targetVersionResource" ; oslc:propertyDefinition oslc_config:targetVersionResource ; oslc:occurs oslc:Exactly-one ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:VersionResource ; dcterms:description """The version resource in the target stream that is in conflict."""^^rdf:XMLLiteral ] . # ============================ Activity shape ============================ :ActivityShape a oslc:ResourceShape ; oslc:describes oslc_config:Activity ; dcterms:title "The shape of an activity." ; dcterms:description "An activity is a read-only resource representing a long-running operation, such as recursive baseline or stream creation."^^rdf:XMLLiteral ; oslc:property # Property definitions unique to Activity [ #type a oslc:Property ; oslc:name "type" ; oslc:propertyDefinition rdf:type ; oslc:occurs oslc:One-or-many ; oslc:readOnly true ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description "A resource type URI. {{An Activity MUST have a resource type of `oslc_config:Activity`, and MAY have other types}}."^^rdf:XMLLiteral ] , [ #modified a oslc:Property ; oslc:name "modified" ; oslc:propertyDefinition dcterms:modified ; oslc:occurs oslc:Zero-or-one ; oslc:readOnly true ; oslc:valueType xsd:dateTime ; dcterms:description """Timestamp of the last change of status. If this property is missing, the time of creation can be taken to be the same as the last change of status."""^^rdf:XMLLiteral ] , [ #progress a oslc:Property ; oslc:name "progress" ; oslc:propertyDefinition oslc_auto:progress ; oslc:occurs oslc:Zero-or-one ; oslc:readOnly true ; oslc:valueType xsd:integer ; dcterms:description "The percentage (0-100) of completion, if known."^^rdf:XMLLiteral ] , [ #progressMessage a oslc:Property ; oslc:name "progressMessage" ; oslc:propertyDefinition oslc_config:progressMessage ; # should really be in the Automation namespace oslc:occurs oslc:Zero-or-one ; oslc:readOnly true ; oslc:valueType rdf:XMLLiteral ; dcterms:description """Descriptive text about the progress of the activity, represented as rich text in XHTML content."""^^rdf:XMLLiteral ] , [ #references a oslc:Property ; oslc:name "references" ; oslc:propertyDefinition dcterms:references ; oslc:occurs oslc:Zero-or-one ; oslc:readOnly true ; oslc:valueType oslc:AnyResource ; oslc:representation oslc:Either ; dcterms:description """A reference to a resource providing more details about the progress or result of the activity. For successful or partially successful operations, {{the `dcterms:references` property MUST be present, providing a link to the primary resource created or affected by the operation}}. For completely unsuccessful activities, this property may be missing. {{For activities still in progress, this MAY be a reference to a resource providing further information; which MAY be provided inline}}."""^^rdf:XMLLiteral ] , [ #state a oslc:Property ; oslc:name "state" ; oslc:propertyDefinition oslc_auto:state ; oslc:occurs oslc:Exactly-one ; oslc:readOnly true ; oslc:valueType oslc:Resource ; oslc:representation oslc:Reference ; oslc:allowedValue oslc_auto:canceled , oslc_auto:canceling , oslc_auto:complete , oslc_auto:inProgress , oslc_auto:new , oslc_auto:queued ; dcterms:description "The state of the activity, as defined by OSLC Automation states."^^rdf:XMLLiteral ] , [ #title a oslc:Property ; oslc:name "title" ; oslc:propertyDefinition dcterms:title ; oslc:occurs oslc:Exactly-one ; oslc:readOnly true ; oslc:valueType rdf:XMLLiteral ; dcterms:description "A name for the activity, or current phase of the activity."^^rdf:XMLLiteral ] , [ #verdict a oslc:Property ; oslc:name "verdict" ; oslc:propertyDefinition oslc_auto:verdict ; oslc:occurs oslc:Exactly-one ; oslc:readOnly true ; oslc:valueType oslc:Resource ; oslc:representation oslc:Reference ; oslc:allowedValue oslc_auto:error , oslc_auto:fail , oslc_auto:passed , oslc_auto:unavailable , oslc_auto:warning ; dcterms:description "The result of the activity, as defined by OSLC Automation verdicts."^^rdf:XMLLiteral ] , [ #error a oslc:Property ; oslc:name "error" ; oslc:propertyDefinition oslc:error ; oslc:occurs oslc:Zero-or-many ; oslc:readOnly true ; oslc:valueType oslc:AnyResource ; oslc:range oslc:Error ; oslc:representation oslc:Either ; dcterms:description """A warning or error issued by the activity. {{Instances of this property MAY appear at any time during the execution of the activity, or MAY be returned only after the activity is complete}}."""^^rdf:XMLLiteral ] , :created , :creator . # ============================ Version Resource shapes ============================ :VersionResourceShape a oslc:ResourceShape ; oslc:describes oslc_config:VersionResource ; dcterms:title """{{The shape of a versioned resource: all versioned resources MUST match this shape}}. {{Versioned resources SHOULD match other shapes appropriate for their types - that is, they MAY have additional properties and property constraints beyond those defined here}}.""" ; oslc:property # Properties with the version resource URI as the subject (and unique to this shape) [ #type a oslc:Property ; oslc:name "type" ; oslc:occurs oslc:One-or-many ; oslc:propertyDefinition rdf:type ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range rdfs:Class ; dcterms:description """A resource type URI. {{One of the type properties MUST have the version resource URI as the subject, and MUST have a resource type of `oslc_config:VersionResource`}}. {{Other types for the concept resource of which this is a version SHOULD use the concept resource URI as the subject}}."""^^rdf:XMLLiteral ] , [ #isVersionOf a oslc:Property ; oslc:name "isVersionOf" ; oslc:occurs oslc:Exactly-one ; oslc:propertyDefinition dcterms:isVersionOf ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; dcterms:description "The concept resource of which this resource is a version. {{The subject of this property MUST be the version resource URI}}."^^rdf:XMLLiteral ] , # Properties with the concept resource URI as the subject, and definitions unique to this shape [ #committed a oslc:Property ; oslc:name "committed" ; oslc:propertyDefinition oslc_config:committed ; oslc:occurs oslc:Zero-or-one ; oslc:valueType xsd:dateTime ; oslc:readOnly true ; dcterms:description "Date and time this version resource was checked in. Absent for mutable (checked out) versions."^^rdf:XMLLiteral ] , [ #committer a oslc:Property ; oslc:name "committer" ; oslc:propertyDefinition oslc_config:committer ; oslc:occurs oslc:Zero-or-many ; oslc:representation oslc:Either ; oslc:valueType oslc:AnyResource ; oslc:range foaf:Person, foaf:Agent ; oslc:readOnly true ; dcterms:description "The entity that checked in this version."^^rdf:XMLLiteral ] , [ #component a oslc:Property ; oslc:name "component" ; oslc:propertyDefinition oslc_config:component ; oslc:occurs oslc:Zero-or-one ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; oslc:range oslc_config:Component ; dcterms:description """The component to which this version belongs. {{Configuration Management servers SHOULD indicate the owning component for each version resource using either this property, or using the membership relationship from the component LDPC}}."""^^rdf:XMLLiteral ] , [ #subject (tag) a oslc:Property ; oslc:name "subject" ; oslc:occurs oslc:Zero-or-many ; oslc:propertyDefinition dcterms:subject ; oslc:valueType xsd:string ; dcterms:description """Tag or keyword for a resource. Each occurrence of a `dcterms:subject` property denotes an additional tag for the resource. {{Tags on versioned resources SHOULD be modifiable even if the resource is otherwise immutable (checked in)}}."""^^rdf:XMLLiteral ] , [ #versionId a oslc:Property ; oslc:name "versionId" ; oslc:occurs oslc:Zero-or-many ; oslc:propertyDefinition oslc_config:versionId ; oslc:valueType xsd:string ; dcterms:description """A short human-readable identifier for the version of a resource. {{All versioned resources SHOULD have this property; where the property is present, this identifier MUST be unique amongst all currently existing versions of the same concept resource. The subject of this property SHOULD be the concept resource URI}}."""^^rdf:XMLLiteral ] , [ #wasDerivedFrom a oslc:Property ; oslc:name "wasDerivedFrom" ; oslc:occurs oslc:Zero-or-many ; oslc:propertyDefinition prov:wasDerivedFrom ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; dcterms:description """A resource from which this version was derived. This is likely to reference a different concept resource; use of `prov:wasRevisionOf` is recommended to indicate an earlier version of the same concept resource. {{The subject of each instance of this property MUST be the concept resource URI; the object can be a version resource URI, or a concept resource URI (possibly for a non-versioned resource)}}."""^^rdf:XMLLiteral ] , [ #wasRevisionOf a oslc:Property ; oslc:name "wasRevisionOf" ; oslc:occurs oslc:Zero-or-many ; oslc:propertyDefinition prov:wasRevisionOf ; oslc:representation oslc:Reference ; oslc:valueType oslc:Resource ; dcterms:description """A resource from which this version was derived. This is likely to reference an earlier version of the same concept resource; use of `prov:wasDerivedFrom` is recommended to indicate an earlier version of a different concept resource. {{The subject of each instance of this property MUST be the concept resource URI; the object is likely to be a version resource URI}}."""^^rdf:XMLLiteral ] , # Properties with the concept resource URI as the subject, and definitions shared with other shapes :archived , :contributor , :created , :creator , :description , :identifier , :instanceShape , :modified , :modifiedBy , :serviceProvider , :shortId , :shortTitle , :title .