HistoryViewLinks to this page Revision from: 2013 May 14 | 07:27 am
This is the revision from 2013 May 14 at 07:27 amView the current live version of the article.

OSLC Core properties used by all Configuration Management resources

Prefixed Name Occurs Read-only Value-type Representation Description
OSLC Core: Common Properties
rdf:type one-or-many unspecified Resource Reference The resource type URIs.
dcterms:contributor zero-or-many unspecified Resource Either 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 Timestamp of resource creation (reference: Dublin Core)
dcterms:creator zero-or-many unspecified Resource Either 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 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 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 Timestamp of latest resource modification (reference: Dublin Core)
dcterms:subject zero-or-many unspecified String n/a Tag or keyword for a resource. Each occurrence of a dcterms:subject property denotes an additional tag for the resource.
dcterms:title exactly-one unspecified XMLLiteral 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 Previous versions or revisions of this resource.
prov:wasGeneratedBy zero-or-many unspecified Resource Either A change set or similar activity 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 Item

Resources of any type may appear as configuration items - resource that appear as members of configurations or change sets. Configuration items MAY have any of the common properties shown above, and MAY have any other properties. Configuration items that represent versions of a concept resource MUST have the dcterms:isVersionOf property referencing that concept resource.

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 Description
rdf:type one-or-many unspecified Resource Reference The resource type URIs. A configuration MUST have a resource type of oslc_config:Configuration, and SHOULD have a resource type of ldp:Container or one of its subclasses. The Linked Data Platform container or aggregate is used to indicate the configuration items that are members of (contents of) the configuration. TBD pending W3C review of non-member property retrieval: Note that determining the set of resources in a configuration may be an expensive operation, so clients needing only the non-member properties are advised to GET the related resource formed by appending the query string "non_member_properties".

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. TBD: this might be how global configurations are represented at OSLC: as configurations of configurations, but with a possible restriction that the member configurations may not contain overlapping resource sets, and may not allow version skew. That is, a provider is permitted to restrict global configurations such that no two configuration members of a single parent global configuration may select a version of the same concept resource, and hence the global configuration selects only a single version of any given concept resource.

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 structures commonly known as streams and baselines are represented by configurations linked from a resource with appropriate status values.

TBD:

  • Dependencies (configurations on which this configuration depends)
  • Dimension values for labeling

Configuration context

A client may request a specific configuration context in one of four ways. TBD: we need to simplify this.

  • When performing a GET on a concept URI, add 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

  • When performing a GET on a concept URI, add 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

  • When performing a GET on a configuration URI, add an X-OSLC-Concept-Resource header, passing the URI of a concept resource as the value:

    GET /configurations/myConfiguration1 HTTP/1.1
    X-OSLC-Concept-Resource: http://example.com/resources/conceptResourceA

  • When performing a GET on a configuration URI, add a query string oslc_config.concept_resource and the encoded concept resource URI to the end of the request URI:

    GET /configurations/myConfiguration1?oslc_config.concept_resource=&3Chttp&3A//example.com/resources/conceptResourceA&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 Description
rdf:type one-or-many unspecified Resource Reference The resource type URIs. A change set MUST have a resource type of oslc_config:ChangeSet, and SHOULD have a resource type of ldp:Container or one of its subclasses. The Linked Data Platform container or aggregate is used to indicate the configuration items that are members of (contents of) the change set. It is likely that these membership links use version resource URIs. TBD pending W3C review of non-member property retrieval: Note that determining the set of resources in a change set may be an expensive operation, so clients needing only the non-member properties are advised to GET the related resource formed by appending the query string "non_member_properties".
oslc_config:requiredChangeSet zero-or-many unspecified Resource any 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.