Mettez à jour vos requêtes pour qu'elles utilisent les deux formes du lien et pour transtyper le titre en chaîne avant son utilisation ou sa recherche. Vous pouvez utiliser un chemin de propriété SPARQL pour faire correspondre plusieurs alternatives. Par conséquent, vous pouvez utiliser l'UNION de deux alternatives, ou un chemin de propriété tel que prov:wasRevisionOf|dcterms:replaces, pour faire correspondre les représentations 1.x et 4.0.3 et ultérieures.
Dans les définitions de produit dans lesquelles les informations de version requièrent l'identification d'un graphique spécifique, les chemins de propriété tels que pd:view|^pd:isViewOf ne fonctionnent pas car les deux alternatives se trouvent dans des graphiques différents. Dans ce cas, vous devez utiliser l'opérateur UNION.
Si vous demandez un produit dont le titre inclut des guillemets, une perluète ou des symboles inférieur à, ces caractères doivent être codés en XML dans la représentation XMLLiteral 4.0.3 et versions ultérieures.
Par exemple, la requête suivante affiche les produits dont le titre inclut les caractères "auto&boat", la version précédente, ainsi que les produits qui sont des enfants immédiats de chaque produit :
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 }
}
Désormais, la chaîne dcterms:identifier d'un produit est une chaîne unique longue. Si possible, utilisez une autre propriété connue du produit dans vos requêtes. Sinon, mettez à jour les requêtes qui utilisent dcterms:identifier en vue de l'utilisation du nouvel identificateur.
La version 4.0.3 indexe des données sur les propriétés de dimension des branches de produit. Par exemple, vous pouvez augmenter la requête précédente pour qu'elle affiche les informations de dimension (branche) pour le produit parent :
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 .
}
Dans toutes les éditions précédentes, l'index représentait l'adresse électronique d'un utilisateur avec un codage URL incorrect. Par exemple, l'URI de l'adresse électronique mailto:susan@example.com était représentée dans l'index sous la forme mailto:susan%40example.com. Cet incident a été corrigé dans Jazz 4.0.3, mais pas dans l'édition DOORS 9. Par conséquent, les requêtes doivent admettre les deux formes d'adresse électronique :
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")
}