Abfragen werden in der Abfragesprache SPARQL geschrieben. (SPARQL ist die Abfragesprache für Linked Lifecycle Data.) Um Abfragen völlig neu zu erstellen, müssen Sie daher mit der Abfragesprache SPARQL vertraut sein.
Den folgenden Schritten können Sie entnehmen, wie Sie drei benutzerdefinierte Abfragen erstellen und ausführen. Jede Abfrage ist mit Anmerkungen versehen, sodass Sie die Abfrage entsprechend Ihren Anforderungen anpassen können.
Im folgenden Beispiel wird gezeigt, wie eine Abfrage zu allen dem Benutzer Susan zugeordneten offenen Anforderungen zu technischen Änderungen erstellt wird.
Offene Anforderungen zu technischen Änderungen, die dem Benutzer Susan zugeordnet sind
# Name: Offene Anforderungen zu technischen Änderungen, die dem Benutzer Susan zugeordnet sind
# Beschreibung: Alle offenen Anforderungen zu technischen Änderungen anzeigen, die dem Benutzer Susan zugeordnet sind
# In dieser Abfrage verwendete Präfixe
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX oslc_cm: <http://open-services.net/ns/cm#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?cr ?title ?contrib
WHERE
{
# Nach allen Anforderungen zu technischen Änderungen suchen - In diesem Beispiel wird nach Arbeitselementen des Typs "Aufgabe" gesucht; hier eine Änderung entsprechend dem von Ihnen verwendeten Arbeitselementtyp vornehmen
?cr rdf:type oslc_cm:ChangeRequest ;
dcterms:type "Task"^^xsd:string ;
dcterms:title ?title ;
dcterms:contributor ?contrib .
# Die Namenszeichenfolge entsprechend dem gewünschten Benutzernamen ändern
FILTER regex(str(?contrib),"susan")
# Nach offenen Änderungsanforderungen suchen (dürfen nicht den Status "geschlossen", "behoben" oder "überprüft" haben)
# Kann so angepasst werden, dass jede beliebige Kombination von OSLC-CM-Statusprädikaten verwendet werden kann:
# oslc_cm:closed, oslc_cm:inprogress, oslc_cm:fixed, oslc_cm:approved, oslc_cm:reviewed und oslc_cm:verified
{
?cr oslc_cm:closed "false"^^xsd:boolean ;
oslc_cm:fixed "false"^^xsd:boolean .
}
# Beispiel: Mit folgender Alternative zur oben genannten Klausel könnte nach Änderungsanforderungen gesucht werden, die entweder den Status "in Bearbeitung" oder "nicht geschlossen" haben:
# {
# { ?cr oslc_cm:inprogress "true"^^xsd:boolean } UNION { ?cr oslc_cm:closed "false"^^xsd:boolean }
# }
}
Im folgenden Beispiel wird gezeigt, wie eine Abfrage zu fehlschlagenden, dem Benutzer selbst zugeordneten Testfällen erstellt wird.
Fehlschlagende Tests
# Name: Fehlschlagende Tests
# Beschreibung: Fehlschlagende, dem Benutzer selbst zugeordnete Testfälle
# In dieser Abfrage verwendete Präfixe
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX oslc_qm: <http://open-services.net/ns/qm#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?testcase ?title
WHERE
{
# Nach Ergebnissen fehlschlagender Tests und den dazugehörigen Testfällen suchen
?testResult rdf:type oslc_qm:TestResult ;
oslc_qm:status "com.ibm.rqm.execution.common.state.failed"^^xsd:string ;
oslc_qm:reportsOnTestCase ?testcase .
# Nur die dem Benutzer selbst zugeordneten Testfälle auswählen
# Die Namenszeichenfolge entsprechend dem gewünschten Benutzernamen ändern
?testcase dcterms:contributor ?user.
FILTER regex(str(?user), "tony")
# Nach den passenden Testfalltiteln suchen
?testcase dcterms:title ?title .
}
Im folgenden Beispiel wird gezeigt, wie eine Abfrage zu Artefakten erstellt wird, die durch eine Änderung in einer Änderungsanforderung beeinflusst werden.
Artefakte, die durch eine Änderung in einer Änderungsanforderung beeinflusst werden
# Beschreibung: Nach Artefakten suchen, die durch eine Änderung in einer Änderungsanforderung beeinflusst werden
# Folgt Links wie CR->tracks->REQ->[elaboratedBy->REQ | specifiedBy->REQ]->[verifiedBy->TC | elaboratedBy->ME]
# In dieser Abfrage verwendete Präfixe
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX oslc_cm: <http://open-services.net/ns/cm#>
PREFIX oslc_rm: <http://open-services.net/ns/rm#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?cr ?type ?title ?owner
WHERE
{
?cr a oslc_cm:ChangeRequest ;
dcterms:identifier ?id ;
(oslc_cm:tracksRequirement|oslc_rm:trackedBy|oslc_rm:elaboratedBy|oslc_rm:specifiedBy|oslc_rm:validatedBy)* ?uri .
?uri dcterms:title ?title
OPTIONAL
{
?uri rdf:type/rdfs:label ?type ;
}
OPTIONAL
{
# Über diesen Teil der Abfrage werden Benutzernamen entweder aus den URIs von JTS-Benutzern oder aus DOORS-FOAF-Einträgen berücksichtigt
# und es wird das Abrufen des DOORS-Benutzer-URI und des FOAF-Eintrags verhindert.
{
?uri dcterms:contributor/foaf:name ?owner
}
UNION
{
?uri dcterms:contributor ?owner
FILTER NOT EXISTS { ?owner foaf:name ?x }
}
}
}
# Hier entweder eine oder mehrere Arbeitselement-IDs angeben
# oder den kompletten VALUES-Bereich entfernen oder auf Kommentar setzen, um alle Arbeitselemente anzuzeigen
VALUES ?id
{
"626"^^xsd:string
"627"^^xsd:string
}