This wiki is locked. Future workgroup activity and specification development must take place at our new wiki. For more information, see this blog post about the new governance model and this post about changes to the website.

Predefined Query Example: Commented Resources with Keyword

In this example an Architecture Management service provider provides a pre-defined query to find all resources that have comments on them containing a keyword over a certain period of time. Since commenting is an implementation specific mechanism a server provided query is necessary to express this. This example specifies a simple resource shape resource for the query to capture the keyword and time frame parameters.

The service provider in this example includes the follow resource definition in it service provider document:

<rdf:RDF 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dcterms="http://purl.org/dc/terms" 
   xmlns:oslc="http://open-services.net/ns/core#"
   xmlns:oslc_am="http://open-services.net/ns/am#">

   <oslc:ServiceProvider rdf:about="http://example.com/am-provider/Project+X">

      <dcterms:title>Project X AM Provider</dcterms:title>
      <oslc:service>

         <oslc:Service>
            <oslc:domain rdf:resource="http://open-services.net/ns/am#" />
    
             <!--  other properties omitted for clarity  -->        
          
            <oslc_am:predefinedQuery>
               <oslc_am:PredefineQuery>
                     <dcterms:title>Commented Resources with Keyword</dcterms:title>
                     <oslc:label>Commented Resources with Keyword</oslc:label>
                     <dcterms:description>Returns all resources that have a comment made withing the 
                         specified date range with any of the specified keywords.</dcterms:description>
                     <oslc:queryUrl rdf:resource="https://example.com/am-provider/Project+X/query/keywordCommented" />
                     <oslc:resourceShape 
                        rdf:resource="https://example.com/am-provider/Project+X/query/shapes/keywordCommented" />
                     <oslc:usage rdf:resource="http://common.queries.com/usage/keywordCommented"/>
                  </oslc_am:PredefineQuery>
            </oslc_am:predefinedQuery>
            
         </oslc:Service>

      </oslc:service>
   
   </oslc:ServiceProvider> 
</rdf:RDF>

The resource shape resource:

<rdf:RDF 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"    
   xmlns:dcterms="http://purl.org/dc/terms/"    
   xmlns:ex="http://example.com/ns/"    
   xmlns:oslc="http://open-services.net/ns/core#" >

<oslc:ResourceShape
   rdf:about="https://example.com/am-provider/Project+X/query/shapes/keywordCommented">

     <dcterms:title>Keyword Commented Query Parameters</dcterms:title>
     <oslc:describes rdf:resource="http://example.com/ns/KeywordCommentedParameters" />

     <oslc:property>
         <oslc:Property>
             <dcterms:title>Start Date</dcterms:title>
             <dcterms:description>The earliest date of the comment's creation.</dcterms:description>
             <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one" />
             <oslc:propertyDefinition rdf:resource="http://example.com/ns/startDate" />
             <oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime" />
         </oslc:Property>
     </oslc:property>

     <oslc:property>
         <oslc:Property>
             <dcterms:title>End Date</dcterms:title>
             <dcterms:description>The latest date of the comment's creation.</dcterms:description>
             <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one" />
             <oslc:propertyDefinition rdf:resource="http://example.com/ns/endDate" />
             <oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime" />
         </oslc:Property>
     </oslc:property>

     <oslc:property>
         <oslc:Property>
             <dcterms:title>Keyword</dcterms:title>
             <dcterms:description>One or more keywords to search for in the comment text.</dcterms:description>
             <oslc:occurs rdf:resource="http://open-services.net/ns/core#One-or-many" />
             <oslc:propertyDefinition rdf:resource="http://example.com/ns/endDate" />
             <oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
         </oslc:Property>
     </oslc:property>

</oslc:ResourceShape>

</rdf:RDF> 

The client executes a POST (or in this case since there is no resource shape specified for the query parameters a GET) call on the queryUrl. There are two query parameters that specify the example prefix and to select only the title and priority values of the matched resources.

Request

POST https://example.com/am-provider/Project+X/query/keywordCommented?oslc.prefix=ex%3D%3Chttp%3A%2F%2Fexample.com%2Fns%2F%3E&oslc.select=dcterms%3Atitle%2Cex%3Apriority HTTP/1.1

Accept: application/rdf+xml
OSLC-Core-Version: 2.0
Content-Type: application/rdf+xml

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:ex="http://example.com/ns/">

   <ex:KeywordCommentedParameters>
      <ex:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
         2012-05-01T00:00:00:000Z
      </ex:startDate>
      <ex:endDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
         2012-05-31T00:00:00:000Z
      </ex:endDate>
      <ex:keyword>Deferred</ex:keyword>
      <ex:keyword>Backlog</ex:keyword>
   </ex:KeywordCommentedParameters>

</rdf:RDF>

Response

HTTP/1.1 200 OK

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dcterms="http://purl.org/dc/terms/"
   xmlns:oslc="http://open-services.net/ns/core#" xmlns:oslc_am="http://open-services.net/ns/am#">

   <oslc:ResponseInfo
      rdf:about="https://example.com/am-provider/Project+X/query/keywordCommented?oslc.prefix=ex%3D%3Chttp%3A%2F%2Fexample.com%2Fns%2F%3E&oslc.select=dcterms%3Atitle%2Cex%3Apriority">
      <dcterms:title>Resources Commented with Keyword</dcterms:title>
      <oslc:totalCount>4</oslc:totalCount>
   </oslc:ResponseInfo>

   <rdf:Description
      rdf:about="https://example.com/am-provider/Project+X/query/keywordCommented">

      <rdfs:member rdf:about="http://example.com/resources/res42" />
      <rdfs:member rdf:about="http://example.com/resources/res123" />
      <rdfs:member rdf:about="http://example.com/resources/res456" />
      <rdfs:member rdf:about="http://example.com/resources/res89" />

   </rdf:Description>

   <oslc_am:Resource rdf:about="http://example.com/resources/res42">
      <dcterms:title>transactions</dcterms:title>
      <ex:priority>high</ex:priority>
   </oslc_am:Resource>

   <oslc_am:Resource rdf:about="http://example.com/resources/res123">
      <dcterms:title>Overview Diagram</dcterms:title>
      <ex:priority>medium</ex:priority>
   </oslc_am:Resource>

   <oslc_am:Resource rdf:about="http://example.com/resources/res456">
      <dcterms:title>Structural View</dcterms:title>
      <ex:priority>high</ex:priority>
   </oslc_am:Resource>

   <oslc_am:Resource rdf:about="http://example.com/resources/res89">
      <dcterms:title>Log Component</dcterms:title>
      <ex:priority>low</ex:priority>
   </oslc_am:Resource>

</rdf:RDF>
Edit | Attach | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 14 Aug 2012 - 19:12:44 - JimConallen
 
This site is powered by the TWiki collaboration platform Copyright � by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our Terms of Use
Ideas, requests, problems regarding this site? Send feedback