照会のマイグレーション

IBM® Rational® Engineering Lifecycle Manager 4.0.3 以降で、ライフサイクル索引の一部のデータ表記が変更されました。これらの変更では、ビューで使用されている照会を含め、SPARQL 照会の更新が必要になる可能性があります。このトピックでは、これらの変更について説明し、すべてのバージョンで機能する照会の作成方法について説明します。

製品表記の変更

バージョン 4.0.3 では、進化する Linked Data Platform との互換性を高めるために、データ表記が以下のように変更されました。
  • 製品とそれらのビューの間のリンクでは、ビューから製品への pd_ext:isViewOf リンクではなく、製品からビューへの pd:view リンクが使用されるようになりました。
  • 製品 (pd:Item) とパート (pd:Part) のタイトル・ストリングは、シンプル・ストリング・リテラルから rdf:XMLLiteral 型に変更されました。
  • 製品の前のバージョンは、dcterms:replaces ではなく、リンク prov:wasRevisionOf を使用して示されるようになりました。

両方の形式のリンクを使用し、タイトルを使用したり検索したりする前に、ストリングにキャストするように照会を更新してください。複数の代替に一致させるために、SPARQL プロパティー・パスを使用することができます。したがって、1.x の表記と 4.0.3 以降の表記の両方に一致させるためには、2 つの代替の UNION を使用するか、prov:wasRevisionOf|dcterms:replaces などのプロパティー・パスを使用することができます。

バージョン情報で特定グラフの識別が必要な製品定義では、2 つの代替が、異なるグラフにあるため、pd:view|^pd:isViewOf などのプロパティー・パスは機能しません。この場合は、UNION を使用する必要があります。

引用符、アンパーサンド、またはより小記号を含むタイトルを持つ製品を照会する場合、これらの文字は、4.0.3 以降の XMLLiteral 表記では、XML エンコードにする必要があります。

例えば、次の照会は、タイトルに「auto&boat」という文字、前のバージョン、およびこれらの各製品の直接の子製品を含む製品を示しています。

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

変更された製品の ID

製品の dcterms:identifier は、長い固有ストリングになりました。可能な場合は、製品の別の既知のプロパティーを照会で使用してください。さもなければ、dcterms:identifier を使用する照会が新しい ID を使用するように更新してください。

製品ブランチの新規ディメンション・プロパティー

バージョン 4.0.3 では、製品ブランチのディメンション・プロパティーについてデータの索引付けが行われます。例えば、以下に示すように、親製品のディメンション (ブランチ) 情報を示すように前の照会を拡張することができます。

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

ユーザー・データの変更

以前のすべてのリリースでは、索引は、誤った URL エンコードでユーザーの E メール・アドレスを表記していました。 例えば、E メール・アドレス URI mailto:susan@example.com は、索引では mailto:susan%40example.com と表記されていました。この障害は、Jazz™ 4.0.3 で修正されましたが、 DOORS® 9 リリースでは修正されていません。 その結果、以下に示すように、照会では両方の形式の E メール・アドレスを許可する必要があります。

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

フィードバック