[oslc-core] Question on query access to link properties

Ian Green1 ian.green at uk.ibm.com
Tue Aug 31 16:53:28 EDT 2010


Thanks for your reply Arthur.  Jim had told me that my guess at the syntax 
was wrong.  I'm not sure that I was making a proposal - perhaps I was. But 
thanks for your authoritative and illuminating reply.

There are a few of things here:

        - appealing to the rdf:Statement representation in order to 
express queries over link properties is not obvious to consumers of 
abbreviated RDF/XML resource representations. (But we can explain that 
one.)
        - it is even less obvious to consumers of the proposed JSON 
representation of link properties. (We could choose a different 
representation, that used rdf:Statement etc.)
        - There is a mismatch between query over rdf:Statement and 
oslc_rm:Requirement.  As a consumer, I'd like to be able to find 
requirements, not reified links.  As a consumer, I'm not sure I care about 
reified links.  (I know that Jim and others have worked hard trying to 
make progress on link properties without succumbing to the pressure to 
make links into resources...)

For the current V2 specs, I'm not aware of a need to query over link 
properties.  Should/Could we (safely) consider postponing a consideration 
of query over link properties?

best wishes,
    -ian

ian.green at uk.ibm.com (Ian Green1/UK/IBM at IBMGB)
Chief Software Architect, Requirements Definition and Management
IBM Rational

Arthur Ryman <ryman at ca.ibm.com> wrote on 31/08/2010 20:49:02:

> [image removed] 
> 
> Re: [oslc-core] Question on query access to link properties
> 
> Arthur Ryman 
> 
> to:
> 
> Dave, Ian Green1
> 
> 31/08/2010 20:49
> 
> Cc:
> 
> oslc-core
> 
> Dave, Ian,
> 
> In RDF/XML, when rdf:ID is used on a property element, it reifies the 
> statement [1] which results in 4 additional triples (rdf:Statement, 
> rdf:subject, rdf:predicate, rdf:object) being added to the graph [2]. 
> Turtle does not provide this kind of abbreviation, so you have to assert 

> the additional 4 triples (the so-called reification quad). Similarly for 

> other RDF representation formats.
> 
> Your example RM resource is:
> 
> <RDF>
>  <Requirement rdf:about="http://doors.example.com/object/77">
>    <implementedBy rdf:resource="http://rtc.example.com/workitem/99"
>                             rdf:ID="link1" />
>  </Requirement>
>  <Description rdf:about="link1">
>    <title>WorkItem 99: cache result sets for 5 minutes</title>
>    <acme:justifiedBy rdf:resource="http://doors.example.com/module/44"/>
>  </Description>
> </RDF>
> 
> This is an abbreviation for the following triples:
> 
> <http://doors.example.com/object/77> rdf:type oslc_rm:Requirement .
> <http://doors.example.com/object/77> oslc_rm:implementedBy <
> http://rtc.example.com/workitem/99> .
> 
> #link1 rdf:type rdf:Statement .
> #link1 rdf:subject <http://doors.example.com/object/77> .
> #link1 rdf:predicate oslc_rm:implementedBy  .
> #link1 rdf:object <http://rtc.example.com/workitem/99> .
> 
> #link1 :title "WorkItem 99: cache result sets for 5 minutes" .
> #link1 acme:justifiedBy <http://doors.example.com/module/44> .
> 
> OSLC query only supports matching tree patterns. Therefore you can't get 

> the result you want by filtering the Requirements collection. You CAN 
get 
> the desired result by filtering the Statement collection, i.e. in order 
to 
> support this type of query, the service needs to provide a Query 
> capability that contains all the reified Statement resources. 
> 
> Suppose you have a Statement collection and you are looking for all 
> Requirements that are implemented and justified. The WHERE clause is:
> 
> oslc_where=rdf:subject{rdf:type=oslc_rm:Requirement} and 
> rdf:predicate=oslc_rm:implemented and acme:justifiedBy!=<>
> 
> Note that in your example below you used the wildcard to match"any 
value", 
> but that isn't in the spec. Instead, we can test that the property has a 

> non-empty URI. Are you proposing that we allow wildcard on the RHS of 
> tests?
> 
> [1] http://www.w3.org/TR/REC-rdf-syntax/#section-Syntax-reifying
> [2] http://www.w3.org/TR/REC-rdf-syntax/#section-Reification
> 
> 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:
> Arthur Ryman/Toronto/IBM at IBMCA
> Cc:
> Ian Green1 <ian.green at uk.ibm.com>
> Date:
> 08/31/2010 02:32 PM
> Subject:
> Re: [oslc-core] Question on query access to link properties
> 
> 
> 
> Hi Arthur,
> 
> One of our action items from last week's meeting was to try to get
> your RDF/SPARQL wisdom on this question (below). If you have a chance
> before the OSLC Core meeting tomorrow, please give this one some
> thought.
> 
> Thanks,
> Dave
> 
> 
> On Wed, Aug 25, 2010 at 6:05 PM, Ian Green1 <ian.green at uk.ibm.com> 
wrote:
> >
> > At today's core meeting we discussed properties on links.  Properties 
on
> > links are expressed in the RDF model by reified triples.   Here's an
> > example RM resource:
> >
> > <RDF>
> >  <Requirement rdf:about="http://doors.example.com/object/77">
> >    <implementedBy rdf:resource="http://rtc.example.com/workitem/99"
> >                             rdf:ID="link1" />
> >  </Requirement>
> >  <Description rdf:about="link1">
> >    <title>WorkItem 99: cache result sets for 5 minutes</title>
> >    <acme:justifiedBy rdf:resource="http://doors.example.com/module/44
"/>
> >  </Description>
> > </RDF>
> >
> >
> > The intent here is that there is an implementation relationship 
between
> > requirement 77 and workitem 99, and that relation has a couple of
> > properties, title and justifiedBy.
> >
> > Question.  This came up on the call but we wanted to hear Arthur's 
view 
> in
> > particular on querying over link properties.  Such properties need to 
be
> > accessible to query.  Let's say I was looking for all resources having 

> an
> > implementedBy link with a justification. Would this be expressed as
> >
> > oslc.where=implementedBy=*{acme:justifiedBy=*}
> >
> > Or is there a problem with this - for example, is it ambiguous?
> >
> > Another worry was that since the RDF/XML above is just one of the ways 

> in
> > which the RDF model can be presented, would/should OSLC Query support 
> those
> > additional "surface" representations?  (For example, OSLC query 
> involving
> > rdf:subject, predicate, and object.  I tried to write such an OSLC 
query
> > but gave up - is it possible?)
> >
> > The feeing on the call was that there ought to be a single recommended 

> way
> > (perhaps the only way) of accessing link properties in a query which 
was
> > reflective of the intuition that most folk would have, given the above
> > RDF/XML, or JSON representations.
> >
> >
> >
> >
> > _______________________________________________
> > Oslc-Core mailing list
> > Oslc-Core at open-services.net
> > http://open-services.net/mailman/listinfo/oslc-core_open-services.net
> >
> 
> 
> 
> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU










More information about the Oslc-Core mailing list