Resource Description Framework (RDF) representation

This topics describes the RDF representation that must be used to import a product tree into Rational® Engineering Lifecycle Manager.

RDF format

A migration file consists of RDF content in one of the following W3C standard RDF serialization formats:
  • RDFD/XML
  • Turtle
  • JSON
  • N-3
  • N-Triple

Namespaces

The following namespaces are used to import products:
@prefix dcterms: <http://purl.org/dc/terms/> . 
@prefix pd_ext: <http://jazz.net/ns/pd/extensions#> .

Outermost statements

The RDF content must include one or more statements of the form:
<subjectUri> pd_ext:product <resourceUri>

The subjectUri is of no particular relevance. It might be the URI of some external tools provider, or some manufactured URI. Each resourceUri represents a product version.

Product node RDF representation

Each product resource must use the RDF vocabulary that is shown in the following tables. Predicates cannot contain spaces.

Table 1. Product statements
Predicate Occurs Range Description
dcterms:identifier 1.. 1 String A unique opaque string that identifies the resource.
dcterms:title 1.. 1 String A title string for the product node.
pd_ext:conceptIdentifier 1.. 1 String A unique opaque string that denotes the concept resource for this versioned product node. All versions of the concept resource must use the same concept identifier value.
pd_ext:snapshotName 0.. 1 String An optional snapshot name. If not specified, a default name is used.
pd_ext:property 0.. * Resource A custom property that uses local Rational Engineering Lifecycle Manager conventions. The resource is typically a blank node. See table 2 for more details.
dcterms:references 0.. * Resource Links to other artifacts without link properties. Links are typically absolute URIs to related artifacts including, but not limited to, work items, requirements, model elements, and test cases.
pd_ext:link 0.. * Resource Link to a resource, typically a blank node that defines a link to an artifact with optional link properties. See table 3 for more details.
Table 2. Custom property statements
Predicate Occurs Range Description
dcterms:title 1.. 1 String The name of the custom property. This name is displayed as a label for the custom property.
rdf:value 1.. 1 String The value of the custom property. Currently only plain strings are supported.
Table 3. Links with properties
Predicate Occurs Range Description
dcterms:references 1.. 1 Resource Link to another artifact without link properties, typically an absolute URI to a related artifact such as a work item, requirement, model element, or test case.
dcterms:title 0.. 1 String or XML literal The title or name for the link.
dcterms:description 0.. 1 String or XML literal A description of the link.
dcterms:isVersionOf 0.. 1 Resource Link to the concept resource for the artifact, such as when the linked artifact is versioned.
Table 4. Dimensions
Predicate Occurs Range Description
dcterms:title 1.. 1 String The name of the dimension.
pd_ext:shared 0.. 1 Xsd:boolean Whether the dimension is shared (true) or product-local (false).
rdf:value 1.. 1 String The dimension value.
pd_ext:predecessorIdentifier 0.. 1 String

A unique opaque string that might identify a history predecessor by its identifier. The predecessor can be defined:

  • As a resource in the same import RDF file.
  • By a previous migration.

This property can be ignored if it violates product definition business logic constraints. For example, if the predecessor is on the same branch and is not the latest version, new versions appear after the latest version.

If a product node is not defined in this RDF content or by an earlier migration, the node is reported as invalid data.

The referenced product resource must have the same item GUID as this resource. In other words, both this product and its predecessor must be versions of the same concept resource.

If pd_ext:predecessorIdentifier is not specified when there are multiple versions of the same concept resource, the historical order between different versions in the import data is left undefined.

If a historical circularity is defined, the resulting historical order is undefined.

If import data is not valid (as in these cases), a message is reported to the user and import stops immediately. An import completes only when there are no such errors.

pd_ext:childIdentifier 0.. * String A unique opaque string specifying the identifier of a child resource. The child resource might be defined:
  • As a resource in the same import RDF file
  • By a previous migration
If a product node is not defined in this RDF content or defined by an earlier migration, the data is reported as invalid.

Feedback