Queries are written in the SPARQL query language. (SPARQL is the query language for Linked Lifecycle Data.) Therefore, you must know the SPARQL query language to create queries from scratch.
The following steps show how to create and run three custom queries. Each query is annotated so that you can customize it for your use.
The following example shows how to query for all open engineering change requests assigned to Susan.
Open ECRs assigned to Susan
# Name: Open ECRs assigned to Susan
# Description: Show all open ECRs assigned to Susan
# Prefixes used in this query
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
{
# Find all ECRs - in this example, we find work items of type "Task"; change this to the type of work item you use
?cr rdf:type oslc_cm:ChangeRequest ;
dcterms:type "Task"^^xsd:string ;
dcterms:title ?title ;
dcterms:contributor ?contrib .
# Change the name string to match the user name you want
FILTER regex(str(?contrib),"susan")
# Find open CRs (those with status that is none of closed, fixed, or verified)
# You can adjust this to use any combination of the OSLC CM state predicates
# oslc_cm:closed, oslc_cm:inprogress, oslc_cm:fixed, oslc_cm:approved, oslc_cm:reviewed, and oslc_cm:verified
{
?cr oslc_cm:closed "false"^^xsd:boolean ;
oslc_cm:fixed "false"^^xsd:boolean .
}
# for example, the following alternative to the above clause would find CRs that are either in progress or not closed:
# {
# { ?cr oslc_cm:inprogress "true"^^xsd:boolean } UNION { ?cr oslc_cm:closed "false"^^xsd:boolean }
# }
}
The following example shows how to query for test cases that fail and are assigned to me.
Failing tests
# Name: Failing tests
# Descriptions: Testcases that fail and are assigned to me
# Prefixes used in this query
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
{
# Find failing test results, and their owning testcase
?testResult rdf:type oslc_qm:TestResult ;
oslc_qm:status "com.ibm.rqm.execution.common.state.failed"^^xsd:string ;
oslc_qm:reportsOnTestCase ?testcase .
# Select just the testcases assigned to me
# Change the name string to match the user name you want
?testcase dcterms:contributor ?user.
FILTER regex(str(?user), "tony")
# Find the matching testcase titles
?testcase dcterms:title ?title .
}
The following example shows how to query for artifacts impacted by a change to a change request.
Arfifacts impacted by change to CR
# Description: Find artifacts impacted by a change to a Change Request
# Follows links such as CR->tracks->REQ->[elaboratedBy->REQ | specifiedBy->REQ]->[verifiedBy->TC | elaboratedBy->ME]
# Prefixes used in this query
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
{
# This part of the query picks up user names from either JTS user URIs or from DOORS FOAF entries,
# and avoids getting the DOORS user URI as well as that FOAF entry
{
?uri dcterms:contributor/foaf:name ?owner
}
UNION
{
?uri dcterms:contributor ?owner
FILTER NOT EXISTS { ?owner foaf:name ?x }
}
}
}
# Either provide one or more work item ID numbers here,
# or remove or comment out the entire VALUES section to look at all work items
VALUES ?id
{
"626"^^xsd:string
"627"^^xsd:string
}