[oslc-core] Shapeless query result example
Arthur Ryman
ryman at ca.ibm.com
Mon Aug 9 13:17:52 EDT 2010
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