Migrando Consultas

No IBM® Rational Engineering Lifecycle Manager 4.0.3 e posterior, algumas representações de dados no índice de ciclo de vida foram alteradas. Essas mudanças podem requerer atualizações para suas consultas SPARQL, incluindo as consultas usadas nas visualizações. Esse tópico descreve as mudanças e explica como gravar consultas que funcionam em todas as versões.

Mudanças na Representação do Produto

A representação de dados foi alterada na versão 4.0.3 para ser mais compatível com a Plataforma de dados vinculados em desenvolvimento das maneiras a seguir:
  • O link entre os produtos e suas visualizações agora usa o link pd:view do produto com a visualização, em vez de um link pd_ext:isViewOf da visualização com o produto.
  • A sequência de títulos para o produto (pd:Item) e a parte (pd:Part) foi alterada para o tipo rdf:XMLLiteral a partir de uma sequência literal simples.
  • A versão anterior de um produto é agora indicada usando o link prov:wasRevisionOf, em vez de dcterms:replaces

Atualize suas consultas para usar ambos os formatos do link e para lançar o título a uma sequência antes de usá-lo ou procurar nele. É possível usar um caminho de propriedade SPARQL para corresponder várias alternativas. Portanto, é possível usar uma UNION de duas alternativas, ou um caminho de propriedade como prov:wasRevisionOf|dcterms:replaces, para corresponder ambos o 1.x e 4.0.3 e representações posteriores.

Nas definições do produto em que as informações da versão requerem a identificação de um gráfico específico, os caminhos de propriedade, como pd:view|^pd:isViewOf não funcionam, porque as duas alternativas estão em gráficos diferentes. Nesse caso, você deve usar um UNION.

Se você estiver consultando um produto com um título que inclui aspas, símbolos de e comercial, ou símbolos menor que, tais caracteres devem ser codificados em XML no 4.0.3 e na representação XMLLiteral posterior.

Por exemplo, a seguinte consulta mostra os produtos cujos títulos incluem os caracteres "auto&boat", a versão anterior e a os produtos filhos imediatos de cada um desses produtos:

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 }
}

Identificador para Produtos Alterados

O dcterms:identifier para um produto é agora uma longa sequência exclusiva. Se possível, use uma propriedade conhecida do produto em suas consultas. Caso contrário, atualize as consultas que usam o dcterms:identifier para usar o novo identificador.

Propriedades de Nova Dimensão para Ramificações do Produto

Dados do índice da versão 4.0.3 sobre as propriedades da dimensão para as ramificações do produto. Por exemplo, é possível aumentar a consulta anterior para mostrar as informações da dimensão (ramificação) para o produto pai:

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 .
}

Mudanças nos Dados do Usuário

Em todas as liberações anteriores, o índice representava um endereço de email de usuário com a codificação de URL incorreta. Por exemplo, a URI do endereço de email mailto:susan@example.com foi representada no índice como mailto:susan%40example.com. Esse defeito foi corrigido no Jazz 4.0.3, mas não na liberação do DOORS 9. Como um resultado, as consultas devem permitir ambos os formulários do endereço de email:

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")
}

Feedback