Guideline: Specifying URIs for Custom Properties, Links, and Enumerated Values
This guideline explains the importance and use of providing URIs for custom properties and links.
Main Description

Note: most tool users do not need to be concerned about this topic. It is of interest primarily to those users who define artifact types, attribute types and attribute definitions.

Rational applications such as RTC, DNG, and GCM, allow the user to define custom properties, links, and sets of enumerated values that may be used on artifacts that they manage, such as work items, requirements, and global configurations. The data for such artifacts is expressed in the Resource Description Framework (RDF, W3C RDF 1.1 Primer), and indexed by an Indexable Linked Data Provider so that data across all of the participating tools can be queried and reported.

In order to be able to query across tools and project areas, data representing the same logical notion must always be represented either in the same way, or in some equivalent form. For example, if a property denoting a product manager is used across tools and project areas in the same way, then querying and reporting on artifacts for a product manager is much easier if there is an agreed consistent way to represent that in the RDF for artifacts. Linked Data Best Practices describes best practices for RDF representation that make it easier to query data across tools and project areas.

The mechanism used to enable the system to know that a property is the same across all tools and project areas is to associate a Uniform Resource Identifier (URI) with the definition of each property. Best Practice: Enable Users to Specify URIs for Custom Attributes and Values describes the desirability of allowing users to define a URI that can be used as the RDF predicate to represent a property or link value. There are public RDF vocabularies such as Dublin CoreFOAF Vocabulary, and Open Services for Lifecycle Collaboration Core 2.0  that define standard representations for common items of data. If a piece of data is not adequately described by a standard RDF vocabulary, users should define their own vocabulary and RDF predicates so they may be used consistently across tools and project areas.

A similar issue concerns enumerated values. For example, you might have a property representing color, and with a set of enumerated values, each representing a specific color. Each specific color should be represented by a URI as described in Best Practice: Use URIs to Represent Enumerated Values. If the artifacts across tools support defining a color property, and a specific color such as “red” means the same thing across those artifacts, then using the same URI to represent that color makes it much easier to query across the tools for “red” artifacts. This is particularly important for reporting from the lifeycycle index via Report Builder or RELM.

The type system administration User Interfaces in GCM and RM provide an opportunity for the administrator to define URIs. If the administrator does not set a URI on a property, then the system will define a URI that is unique to the project area. This makes reporting across project areas more difficult.

Note that URIs on type system elements are also used in the DOORS 9 to DOORS NG migration and in ReqIF scenarios, again to make it clear where type definitions are being reused. Well-chosen URIs also make it marginally easier to write custom SPARQL queries.

Thus as part of planning and implementing reuse, it is a best practice to be intentional in defining and reusing URIs in the type system.