Abfragen migrieren

In IBM® Rational Engineering Lifecycle Manager 4.0.3 und höher haben sich einige Datendarstellungen im Lebenszyklusindex geändert. Aufgrund dieser Änderungen können Aktualisierungen der SPARQL-Abfragen erforderlich sein, einschließlich der in Ansichten verwendeten Abfragen. In diesem Artikel werden die Änderungen beschrieben und es wird erläutert, wie Abfragen geschrieben werden, die in allen Versionen verwendet werden können.

Änderungen der Produktdarstellung

Die Datendarstellung wurde in Version 4.0.3 so geändert, dass sie auf folgende Weise besser mit der zukünftigen verknüpften Datenplattform kompatibel ist:
  • Für die Verknüpfung zwischen Produkten und deren Ansichten wird nun der Link pd:view vom Produkt zur Ansicht und nicht ein Link des Typs pd_ext:isViewOf von der Ansicht zum Produkt verwendet.
  • Die Titelzeichenfolge für das Produkt (pd:Item) und Teil (pd:Part) wurde von einem einfachen Zeichenfolgeliteral in den Typ rdf:XMLLiteral geändert.
  • Die Vorgängerversion eines Produkts wird nun mithilfe des Links prov:wasRevisionOf anstelle von dcterms:replaces angezeigt.

Aktualisieren Sie die Abfragen, damit beide Formen des Links verwendet werden und der Titel in eine Zeichenfolge umgesetzt wird, bevor dieser verwendet oder danach gesucht wird. Sie können einen SPARQL-Eigenschaftenpfad für mehrere Alternativen verwenden. Somit können Sie UNION für zwei Alternativen oder einen Eigenschaftenpfad wie prov:wasRevisionOf|dcterms:replaces verwenden, um die 1.x- und 4.0.3-Darstellungen sowie Darstellungen späterer Versionen einzubeziehen.

Bei Produktdefinitionen, bei denen Sie für Versionsinformationen einen bestimmten Graph angeben müssen, können Eigenschaftenpfade wie pd:view|^pd:isViewOf nicht verwendet werden, da sich die beiden Alternativen in verschiedenen Graphs befinden. In diesem Fall müssen Sie UNION verwenden.

Wenn Sie eine Abfrage für ein Produkt durchführen, dessen Titel Anführungszeichen, Et-Zeichen oder Kleiner-als-Zeichen enthält, müssen diese Zeichen in der XMLLiteral-Darstellung der Version 4.0.3 oder einer späteren Version XML-codiert werden.

Beispiel: Die folgende Abfrage zeigt Produkte, deren Titel die Zeichen "auto&boat", die Vorgängerversion und die unmittelbar untergeordneten Produkte jedes dieser Produkte enthält:

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

Geänderte ID für Produkte

Die ID dcterms:identifier für ein Produkt ist nun eine lange eindeutige Zeichenfolge. Verwenden Sie nach Möglichkeit eine andere bekannte Eigenschaft des Produkts in den Abfragen. Andernfalls aktualisieren Sie Abfragen, die dcterms:identifier verwenden so, dass die neue ID verwendet wird.

Neue Dimensionseigenschaften für Produktverzweigungen

Mit Version 4.0.3 werden Daten zu den Dimensionseigenschaften für Produktverzweigungen indexiert. Sie können z. B. die vorherige Abfrage so erweitern, dass die Dimensionsinformationen (Verzweigungsinformationen) für das übergeordnete Produkt angezeigt werden:

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

Änderungen der Benutzerdaten

In allen früheren Releases wurde im Index die E-Mail-Adresse eines Benutzers mit fehlerhafter URL-Codierung dargestellt. Beispielsweise wurde der E-Mail-Adressen-URI mailto:susan@example.com im Index als mailto:susan%40example.com dargestellt. Dieser Fehler wurde in Jazz 4.0.3, jedoch nicht im Release DOORS 9 behoben. Daher müssen bei Abfragen beide Formen der E-Mail-Adresse möglich sein:

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