OSLC Core properties used by all Configuration Management resources
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
OSLC Core: Common Properties |
|
|
|
|
|
|
rdf:type |
one-or-many |
unspecified |
Resource |
Reference |
n/a |
The resource type URIs. |
dcterms:contributor |
zero-or-many |
unspecified |
AnyResource |
Either |
any |
Contributor or contributors to resource (reference: Dublin Core). It is likely that the target resource will be an foaf:Person but that is not necessarily the case. |
dcterms:created |
zero-or-one |
True |
DateTime |
n/a |
n/a |
Timestamp of resource creation (reference: Dublin Core) |
dcterms:creator |
zero-or-many |
unspecified |
AnyResource |
Either |
any |
Creator or creators of resource (reference: Dublin Core). It is likely that the target resource will be an foaf:Person but that is not necessarily the case. |
dcterms:description |
zero-or-one |
unspecified |
XMLLiteral |
n/a |
n/a |
Descriptive text (reference: Dublin Core) about resource represented as rich text in XHTML content. SHOULD include only content that is valid and suitable inside an XHTML <div> element. |
dcterms:identifier |
exactly-one |
True |
String |
n/a |
n/a |
A unique identifier for a resource. Assigned by the service provider when a resource is created. Not necessarily intended for end-user display. |
dcterms:modified |
zero-or-one |
True |
DateTime |
n/a |
n/a |
Timestamp of latest resource modification (reference: Dublin Core) |
dcterms:subject |
zero-or-many |
unspecified |
String |
n/a |
n/a |
Tag or keyword for a resource. Each occurrence of a dc:subject property denotes an additional tag for the resource. |
dcterms:title |
exactly-one |
unspecified |
XMLLiteral |
n/a |
n/a |
Title (reference: Dublin Core) of the resource represented as rich text in XHTML content. |
W3C Provenance Properties |
|
|
|
|
|
|
prov:wasDerivedFrom , prov:wasRevisionOf |
zero-or-many |
unspecified |
Resource |
Either |
any |
Previous versions or revisions of this resource. |
prov:wasGeneratedBy |
zero-or-many |
unspecified |
Resource |
Either |
any |
A change set that generated this resource. It is likely that the target resource will be an oslc_config:ChangeSet but that is not necessarily the case. |
Concept resources and version resources
A GET on the URI of a concept resource will resolve that URI to an appropriate state of (version of) a concept resource for the appropriate configuration context (see later). The returned resource will contain RDF statements about both the version resource and the concept resource; most statements will use the concept resource as the subject, because it is the state of (properties of) the concept resource that are defined by a version resource.
We use the dcterms:isVersionOf
property to relate the version resource itself to its concept resource.
As an example, GET http://example.com/conceptResourceA in one configuration context might return:
:conceptResourceA-version23
dcterms:isVersionOf :conceptResourceA .
:conceptResourceA
a :someType ;
dcterms:title "Concept Resource A" ;
:color "blue" ;
dcterms:description "Concept resource A as it appears in the state with the URI :conceptResourceA-version23" .
while in a different configuration context it might return:
:conceptResourceA-version17
dcterms:isVersionOf :conceptResourceA .
:conceptResourceA
a :someType ;
dcterms:title "Concept Resource A" ;
:color "red" ;
dcterms:description "Concept resource A as it appears in the state with the URI :conceptResourceA-version17" .
TBD: while the Linked Data Platform indicates that every concept resource should define at least one rdf:type
, it is not clear if we always need to define a separate type for the version resource itself. This should be discussed with the Core workgroup.
Configuration
A configuration is a resource with any of the above-listed standard properties, plus the following:
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
rdf:type |
one-or-many |
unspecified |
Resource |
Reference |
any |
The resource type URIs, including at least one occurrence of with a value of oslc_config:Configuration. |
rdfs:member |
zero-or-one |
unspecified |
Resource |
AnyResource |
Either |
ldp:Aggregate | A Linked Data Platform aggregate for the members of the configuration. Determining the set of resources in a configuration may be an expensive operation, so the the configuration resource is not itself a Linked Data Platform aggregate. This allows a GET of the configuration resource itself to be a light-weight operation; clients needing the member list can perform a second GET on the linked LDPA resource. |
A configuration MAY be a versioned resource, in which case it has a dcterms:isVersionOf predicate identifying the concept resource. All configurations with the same object value for dcterms:isVersionOf are versions of the same concept resource - perhaps the same system or component.
Configurations MAY be members of other configurations.
Note that configurations do not have status, workflow, or lifecycle properties; instead, we expect other resources that define such status to link to configurations. These other resources might be Change Requests, or resources from some as-yet undefined OSLC Lifecycle or Process Domain. The entity commonly termed a baseline is a configuration linked from a resource with some appropriate status resource.
TBD:
* Dependencies (configurations on which this configuration depends)
* Baselines created from this configuration
* Baselines merged into this configuration
Configuration context
A client may request a specific configuration context in one of two ways.
- Adding an
X-OSLC-Configuration-Context
header, passing the URI of a configuration resource as the value:
GET /resources/conceptResourceA HTTP/1.1
X-OSLC-Configuration-Context: http://example.com/configurations/myConfiguration1
- Adding a query string
oslc_config.context
and the encoded configuration URI to the end of the request URI:
GET /resources/conceptResourceA?oslc_config.context=&3Chttp&3A//example.com/configurations/myConfiguration1&3E HTTP/1.1
Clients may also use version resource URIs, but are discouraged from persisting such URIs in links, since that reduces the flexibility permitted by configuration management.
Change set
A change set is a resource with any of the above-listed standard properties, plus the following:
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
rdf:type |
one-or-many |
unspecified |
Resource |
Reference |
any |
The resource type URIs, including at least one occurrence of with a value of oslc_config:ChangeSet. |
rdfs:member |
zero-or-one |
unspecified |
Resource |
AnyResource |
Either |
ldp:Aggregate | A Linked Data Platform aggregate for the members of the configuration. Determining the set of resources in a change set may be an expensive operation, so the the configuration resource is not itself a Linked Data Platform aggregate. This allows a GET of the configuration resource itself to be a light-weight operation; clients needing the member list can perform a second GET on the linked LDPA resource. |
oslc_config:requiredChangeSet |
zero-or-many |
unspecified |
Resource |
AnyResource |
any |
oslc_config:ChangeSet | A change set that this change set depends on. It is likely that the target resource will be an oslc_config:ChangeSet but that is not necessarily the case. |