Migración de consultas

En IBM® Rational Engineering Lifecycle Manager 4.0.3 y posterior, algunas representaciones de datos en el índice de ciclo de vida han cambiado. Estos cambios pueden requerir actualizaciones de sus consultas SPARQL, incluyendo las consultas utilizadas en las vistas. En este tema se describen los cambios y se explica cómo escribir consultas que funcionen en todas las versiones.

Cambios efectuados en la representación del producto

La representación de los datos ha cambiado en la versión 4.0.3 para que sea más compatible con la evolución de la Plataforma de datos enlazados de las maneras siguientes:
  • El enlace entre los productos y sus vistas ahora utiliza el enlace pd:view del producto a la vista, en lugar de un enlace pd_ext:isViewOf de la vista al producto.
  • La serie de título para el producto (pd:Item) y la parte (pd:Part) ha cambiado por el tipo de rdf:XMLLiteral a partir de un literal de serie simple.
  • La versión anterior de un producto está indicada mediante el enlace prov:wasRevisionOf en lugar de dcterms:sustituye

Actualice las consultas para utilizar las dos formas del enlace, y para convertir el título en una serie antes de usarla o de buscar en él. Puede utilizar una vía de propiedad SPARQL para que coincida con varias alternativas. Por lo tanto, puede utilizar UNION de dos alternativas, o una vía de acceso de propiedades como prov:wasRevisionOf|dcterms:replaces para que coincida con las representaciones de 1.x y 4.0.3 y posteriores.

En las definiciones de producto donde la información de versión requiera que identifique un gráfico específico, las vías de propiedad como pd:view|^pd:isViewOf no funcionan porque las dos alternativas están en distintos gráficos. En este caso debe usar un UNION.

Si está realizando consultas para un producto con un título que incluye comillas, ampersands o el símbolo menos, esos caracteres deben ser XML codificados en la representación XMLLiteral 4.0.3 y posteriores.

Por ejemplo, la consulta siguiente muestra los productos cuyo título incluye los caracteres "auto&boat", la versión anterior y los productos hijo inmediatos de cada uno de estos productos:

PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX pd: <http://jazz.net/ns/pd#>
PREFIX pd_ext: <http://jazz.net/ns/pd/extensions#>

SELECT ?parentVersion ?predecessor ?childVersion
WHERE
{
   GRAPH ?parentVersion
   {
      ?parent a pd:Item ;
         dcterms:title ?title .
      OPTIONAL { ?parent prov:wasRevisionOf|dcterms:replaces ?predecessor }
   }
   FILTER regex(str(?title),".*auto(&|&)boat.*","","i")
   {
      { GRAPH ?parentVersion { ?parent pd:view ?view } }
      UNION
      { ?view pd:isViewOf ?parentVersion }
   }
   OPTIONAL { ?view dcterms:hasPart/pd_ext:binding ?childVersion }
}

Se ha cambiado el identificador de productos

dcterms:identifier para un producto es ahora una serie exclusiva larga. Si es posible, utilice una propiedad conocida diferente del producto en las consultas. De lo contrario, actualice las consultas que utilicen dcterms:identifier para utilizar el nuevo identificador.

Nuevas propiedades de dimensiones para ramas de producto

La versión 4.0.3 indexa datos sobre propiedades de dimensión de las ramas del producto. Por ejemplo, puede aumentar la consulta anterior para mostrar información de la dimensión (rama) para el producto padre:

PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX pd: <http://jazz.net/ns/pd#>
PREFIX pd_ext: <http://jazz.net/ns/pd/extensions#>

SELECT ?parentVersion ?dtitle ?dvalue ?predecessor ?childVersion
WHERE
{
   GRAPH ?parentVersion
   {
      ?parent a pd:Item ;
         dcterms:title ?title .
      OPTIONAL { ?parent prov:wasRevisionOf|dcterms:replaces ?predecessor }
      OPTIONAL { ?parent pd_ext:dimensions ?bn }
   }
   FILTER regex(str(?title),".*auto(&|&)boat.*","i")
   {
      { GRAPH ?parentVersion { ?parent pd:view ?view } }
      UNION
      { ?view pd:isViewOf ?parentVersion }
   }
   OPTIONAL { ?view dcterms:hasPart/pd_ext:binding ?childVersion }
   ?bn ?dimension ?dvalue .
   ?dimension dcterms:title ?dtitle .
}

Cambios en los datos de usuario

En todas las versiones anteriores, el índice representa un usuario de dirección de correo electrónico con codificación URL incorrecta. Por ejemplo, la dirección de correo electrónico URI mailto:susan@example.com se representan en el índice como mailto:susan%40example.com. Este defecto se ha arreglado en la versión 4.0.3 de Jazz, pero no en el release 9 de DOORS. Como resultado, las consultas deben permitir ambas formas de la dirección de correo electrónico:

PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX oslc_cm: <http://open-services.net/ns/cm#>

SELECT ?cr ?title ?contribMbox
WHERE {
  ?cr a oslc_cm:ChangeRequest ;
    dcterms:type "Task"^^xsd:string ;
    dcterms:title ?title ;
    dcterms:contributor/foaf:mbox ?contribMbox .
  FILTER regex(str(?contribMbox),"susan(@|%40)example.com")
}

Comentarios