[oslc-core] Shapeless query result example

Dave snoopdave at gmail.com
Tue Aug 10 11:28:05 EDT 2010


Here's my first attempt to write up example query result shapes, based
on Arthur's feedback, in Appendix B:

   http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixB#Specifying_the_shape_of_a_query

Please review and comment on the list and/or tomorrow at the Core
workgroup meeting.

Thanks,
- Dave




On Tue, Aug 10, 2010 at 9:46 AM, Dave <snoopdave at gmail.com> wrote:
> Thanks, Arthur. I had forgotten about rdfs:member. I'll get this form,
> and some discussion of cases into Appendix B so that we can discuss
> tomorrow at the workgroup meeting.
>
> - Dave
>
>
> PS. here are the same results in Turtle format via Jena:
>
> @prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix oslc:    <http://open-services.net/ns/core#> .
> @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix oslc_blog:  <http://open-services.net/ns/bogus/blogs#> .
> @prefix dcterms:  <http://purl.org/dc/terms/> .
>
> <http://example.com/query>
>      rdfs:member <http://example.com/blogs/comment/3> ,
> <http://example.com/blogs/comment/1> ,
> <http://example.com/blogs/comment/5> ,
> <http://example.com/blogs/comment/4> ,
> <http://example.com/blogs/comment/2> .
>
> <http://example.com/blogs/comment/3>
>      rdf:type oslc_blog:Comment ;
>      dcterms:title "Comment #3" .
>
> <http://example.com/query?oslc.where=rdf:type=oslc_blog:Comment&oslc.select=dcterms:title>
>      rdf:type oslc:ResponseInfo ;
>      dcterms:title "Blog Service Query Results" .
>
> <http://example.com/blogs/comment/1>
>      rdf:type oslc_blog:Comment ;
>      dcterms:title "Comment #1" .
>
> <http://example.com/blogs/comment/5>
>      rdf:type oslc_blog:Comment ;
>      dcterms:title "Comment #5" .
>
> <http://example.com/blogs/comment/4>
>      rdf:type oslc_blog:Comment ;
>      dcterms:title "Comment #4" .
>
> <http://example.com/blogs/comment/2>
>      rdf:type oslc_blog:Comment ;
>      dcterms:title "Comment #2" .
>
>
>
>
> On Mon, Aug 9, 2010 at 1:17 PM, Arthur Ryman <ryman at ca.ibm.com> wrote:
>> Dave,
>>
>> There are two cases to consider when no ResourceShape is given for a Query
>> Capability:
>> 1. The query capability has a type and a membership property. - In this
>> case the result should use the type and membership property.
>> 2. The query capability does not have a type or specific membership
>> property. - In this case use the rdf:Description node element and the
>> rdfs:member property.[1]
>>
>> In general, the query result contains two top level subject nodes. The
>> first is the ResponseInfo whose subject is the full query URI. The second
>> is the query base URI which contains as members the set of resources that
>> satisfy the query.
>>
>> The example below omits the query base URI subject and and its membership
>> properties. The idea is that the query base represents a collection of
>> resources, and that the query lets you filter this collection for some
>> subset of the resources. You specify the filter conditions in the
>> oslc.where clause. The members of the collection are defined by one or
>> more multi-valued membership properties whose subject is the query base
>> URI, and whose objects are the members. A service may define some
>> domain-specific membership properties, or it may use the generic
>> membership property, rdfs:member. In either case, the query result should
>> include the membership properties.
>>
>> In your example below, it looks like you are using your Blog example, and
>> you are filtering the collection for a set of comment resources. I assume
>> the comment resources have rdf:type=oslc_blog:Comment However, if the
>> members had no type, they too would use the rdf:Description node element.
>>
>> For example, suppose you want to get all the oslc_blog:Comment resources
>> and their titles. Use the following query:
>>
>> http://example.com/query?oslc.where=rdf:type=oslc_blog:Comment&oslc.select=dcterms:title
>>
>> The result is:
>>
>> <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_blog="
>> http://open-services.net/ns/bogus/blogs#">
>>
>>        <oslc:ResponseInfo
>>                rdf:about="
>> http://example.com/query?oslc.where=rdf:type=oslc_blog:Comment&oslc.select=dcterms:title
>> ">
>>                <dcterms:title>Blog Service Query Results</dcterms:title>
>>        </oslc:ResponseInfo>
>>
>>        <rdf:Description rdf:about="http://example.com/query">
>>
>>                <rdfs:member>
>>                        <oslc_blog:Comment rdf:about="
>> http://example.com/blogs/comment/5">
>>                                <!-- Comment property values, etc. -->
>>                                <dcterms:title>Comment #5</dcterms:title>
>>                        </oslc_blog:Comment>
>>                </rdfs:member>
>>
>>                <rdfs:member>
>>                        <oslc_blog:Comment rdf:about="
>> http://example.com/blogs/comment/4">
>>                                <!-- Comment property values, etc. -->
>>                                <dcterms:title>Comment #4</dcterms:title>
>>                        </oslc_blog:Comment>
>>                </rdfs:member>
>>
>>                <rdfs:member>
>>                        <oslc_blog:Comment rdf:about="
>> http://example.com/blogs/comment/2">
>>                                <!-- Comment property values, etc. -->
>>                                <dcterms:title>Comment #2</dcterms:title>
>>                        </oslc_blog:Comment>
>>                </rdfs:member>
>>
>>                <rdfs:member>
>>                        <oslc_blog:Comment rdf:about="
>> http://example.com/blogs/comment/1">
>>                                <!-- Comment property values, etc. -->
>>                                <dcterms:title>Comment #1</dcterms:title>
>>                        </oslc_blog:Comment>
>>                </rdfs:member>
>>
>>                <rdfs:member>
>>                        <oslc_blog:Comment rdf:about="
>> http://example.com/blogs/comment/3">
>>                                <!-- Comment property values, etc. -->
>>                                <dcterms:title>Comment #3</dcterms:title>
>>                        </oslc_blog:Comment>
>>                </rdfs:member>
>>
>>                <!-- etc. etc. -->
>>
>>        </rdf:Description>
>>
>> </rdf:RDF>
>>
>>
>> [1] http://www.w3.org/TR/rdf-schema/#ch_member
>>
>> Regards,
>> ___________________________________________________________________________
>>
>> Arthur Ryman, PhD, DE
>>
>>
>> Chief Architect, Project and Portfolio Management
>>
>> IBM Software, Rational
>>
>> Markham, ON, Canada | Office: 905-413-3077, Cell: 416-939-5063
>> Twitter | Facebook | YouTube
>>
>>
>>
>>
>>
>>
>>
>> From:
>> Dave <snoopdave at gmail.com>
>> To:
>> oslc-core <oslc-core at open-services.net>
>> Date:
>> 08/09/2010 08:35 PM
>> Subject:
>> [oslc-core] Shapeless query result example
>> Sent by:
>> oslc-core-bounces at open-services.net
>>
>>
>>
>> We talked about the need for an example that shows what a query
>> resource would look like if there were no Resource Shape provided by
>> the Query Capability. Arthur suggested that we do not need to define a
>> query result type or a member property, and could simply return
>> triples about the result URIs plus an oslc:ResponseInfo resource (if
>> needed).
>>
>> Here's an example of that form, which fits in with the examples in
>> Appendix B and validates: http://tinyurl.com/26tetbv
>>
>> 1:
>> 2: <rdf:RDF
>> 3:    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>> 4:    xmlns:dcterms="http://purl.org/dc/terms/"
>> 5:    xmlns:oslc="http://open-services.net/ns/core#"
>> 6:    xmlns:oslc_blog="http://open-services.net/ns/bogus/blogs#">
>> 7:
>> 8:     <oslc:ResponseInfo
>> rdf:about="http://example.com/query?oslc.from [...] entry/1>">
>> 9:         <dcterms:title>Blog Service Query Results for term
>> [remote]</dcterms:title>
>> 10:     </oslc:ResponseInfo>
>> 11:
>> 12:
>> 13:     <rdf:Description rdf:about="http://example.com/blogs/comment/5">
>> 14:         <!-- Comment propery values, etc. -->
>> 15:         <dcterms:title>Comment #5</dcterms:title>
>> 16:     </rdf:Description>
>> 17:
>> 18:     <rdf:Description rdf:about="http://example.com/blogs/comment/4">
>> 19:         <!-- Comment propery values, etc. -->
>> 20:         <dcterms:title>Comment #4</dcterms:title>
>> 21:     </rdf:Description>
>> 22:
>> 23:     <rdf:Description rdf:about="http://example.com/blogs/comment/2">
>> 24:               <!-- Comment propery values, etc. -->
>> 25:         <dcterms:title>Comment #2</dcterms:title>
>> 26:     </rdf:Description>
>> 27:
>> 28:     <rdf:Description rdf:about="http://example.com/blogs/comment/1">
>> 29:               <!-- Comment propery values, etc. -->
>> 30:         <dcterms:title>Comment #1</dcterms:title>
>> 31:     </rdf:Description>
>> 32:
>> 33:     <rdf:Description rdf:about="http://example.com/blogs/comment/3">
>> 34:         <!-- Comment propery values, etc. -->
>> 35:         <dcterms:title>Comment #3</dcterms:title>
>> 36:     </rdf:Description>
>> 37:
>> 38:        <!-- etc. etc. -->
>> 39:
>> 40: </rdf:RDF>
>>
>>
>> Look correct? Any objections to or concerns about adding this to Appendix
>> B?
>>
>> Thanks,
>> Dave
>>
>> _______________________________________________
>> Oslc-Core mailing list
>> Oslc-Core at open-services.net
>> http://open-services.net/mailman/listinfo/oslc-core_open-services.net
>>
>>
>>
>>
>




More information about the Oslc-Core mailing list