Обновите запросы для использования обеих форм ссылок, а также для преобразования типа заголовка к строке для его применения или поиска. С помощью пути свойства SPARQL можно сопоставлять несколько вариантов. Поэтому можно использовать UNION двух вариантов или путь свойства, такой как prov:wasRevisionOf|dcterms:replaces, для соответствия презентациям и 1.x, и 4.0.3 или более поздней.
В определениях продукта, в которых в информации о версии требуется указать конкретный граф, пути свойств, такие как pd:view|^pd:isViewOf, не работают, так как существует два варианта в различных графах. В этом случае необходимо использовать UNION.
При запросе продукта с заголовком, включающим кавычки, амперсанды или символы меньше, эти символы должны быть представлением в кодировке XML в XMLLiteral 4.0.3 или позднее.
Этот запрос выводит продукты, чьи названия содержат символы "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 }
}
dcterms:identifier для продукта - это теперь длинная уникальная строка. По возможности используйте в запросах другое известное свойство. В противном случае измените запросы, использующие dcterms:identifier, для использования нового идентификатора.
Версия 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. Например URI адреса электронной почты mailto:susan@example.com был представлен в индексе как mailto:susan%40example.com. Этот дефект был исправлен в выпуске Jazz 4.0.3, но не был исправлен в выпуске DOORS 9. В результате запросы должны допускать обе формы адреса электронной почты:
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")
}