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 Core, FOAF 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.
|