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 <[email protected]> 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 <[email protected]> > To: > oslc-core <[email protected]> > Date: > 08/09/2010 08:35 PM > Subject: > [oslc-core] Shapeless query result example > Sent by: > [email protected] > > > > 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 > [email protected] > http://open-services.net/mailman/listinfo/oslc-core_open-services.net > > > >
