[oslc-core] Comment on ResourceShape resources

Arthur Ryman ryman at ca.ibm.com
Mon May 31 17:03:11 EDT 2010


Dave,

Thx. You are correct and the fact that rdf:predicate is not appropriate 
was noted many months ago when we defined the Shape resource.

RDFS is also not very appropriate since it makes global assertions about 
properties. What we need here are local restrictions on properties when 
they are used for a given resource type. We created Shape resource to 
express that. However, an equivalent description can be created using OWL 
via the notion of class restrictions. 

I believe the best way forward is to keep the Shape resource since it is 
very explicit, but provide the OWL meaning of it to ensure it is aligned 
with RDF standards.

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 Steinberg/Toronto/IBM at IBMCA
To:
oslc-core <oslc-core at open-services.net>
Date:
05/26/2010 10:36 AM
Subject:
Re: [oslc-core] Comment on ResourceShape resources
Sent by:
oslc-core-bounces at open-services.net



Hi all,

First off, apologies for barging into the conversation. I haven't been 
involved in this group at all, but I've just been digging into Core spec 
draft over the past few days and I was most puzzled by this particular 
issue (and, really, resource shapes in general). So, I thought I'd add my 
two cents in the hopes that someone might find it helpful.

I definitely agree with Ian's comments about rdf:type being inappropriate 
there, but I'm not sure about the suggestion to use rdf:predicate instead. 
rdf:predicate is part of RDF's reification vocabulary, and its meaning in 
that context is very different from what you're attempting to convey here. 
For those who don't know, reification provides the ability to use RDF 
statements to describe other statements. The vocabulary includes the type 
rdf:Statement and the properties rdf:subject, rdf:predicate, and 
rdf:object. For example, consider the following statement:

  a:service-provider dc:title "Blogging Service" .

It can be fully described by the following four statements:

  b:stmt rdf:type      rdf:Statement .
  b:stmt rdf:subject   a:service-provider .
  b:stmt rdf:predicate dc:title .
  b:stmt rdf:object    "Blogging Service" .

The effect of this is to introduce another node into the RDF graph 
representing the statement and identifiable, itself, by a URI. Note that 
the four reification statements are not actually equivalent to the 
statement they describe.

One important thing to notice about the reification statements is that the 
subjects of them are all a statement. Indeed, RDF Schema declares that 
rdf:Statement is the domain of rdf:subject, rdf:predicate, and rdf:object. 
This allows an RDFS-aware system to infer that the subject of any 
rdf:predicate statement (such as the oslc:Property blank node in the 
proposal below) is an rdf:Statement. So in this proposal, we would be 
saying that the blank node is both an oslc:Property and an rdf:Statement. 
That's not strictly speaking wrong (pretty much nothing is in RDF), but 
it's confusing and probably not what was intended, since an oslc:Property 
appears to be some kind of "meta" concept, while an rdf:Statement is 
actually a statement itself (an instance).

The RDFS equivalent of oslc:Property is (unsurprisingly) rdf:Property, but 
there is no equivalent relationship to what you're trying to establish 
here, since it is the URI of the rdf:Property itself that one uses in 
writing the predicate of the statement. So, if you wanted to follow that 
lead, you would assign the URI http://purl.org/dc/terms#modified to the 
oslc:Property, not leave it as a blank node, and make your shape 
statements about the property itself.

But I'm not at all sure if that's really what you want to do. It seems to 
me that oslc:Property is intended to be something more like a 
particle/attribute use in XML Schema (where the rdf:Property is analogous 
to an element/attribute). That is, it restricts how the property can be 
used in a particular context. If that's the case, I'm not sure what to 
advise. It does seem rather counter to the non-restrictive nature of RDF 
as I understand it, but I'm definitely not an RDF expert and I can 
certainly see the appeal of knowing what to expect. At the very least, I 
would encourage you to be clear about the concepts that resource shapes 
introduce and not to reuse any vocabulary that would obscure those 
concepts.

Cheers,
Dave

-- 
Dave Steinberg
Rational Software - IBM Toronto Lab
mailto:davidms at ca.ibm.com


Dave ---05/26/2010 08:39:44 AM---Thanks for the excellent feedback Ian and 
I agree pdf:predicate seems a much better fit here. I capt


From:

Dave <snoopdave at gmail.com>

To:

oslc-core <oslc-core at open-services.net>

Date:

05/26/2010 08:39 AM

Subject:

Re: [oslc-core] Comment on ResourceShape resources

Sent by:

oslc-core-bounces at open-services.net



Thanks for the excellent feedback Ian and I agree pdf:predicate seems
a much better fit here. I captured this issue on the issues page and
applied your suggested change to the Resource Shape resource
definition in appendix A.

So far we are using two notions from RDFS: the notion of a resource
definition, known as a class in the RDFS terminology, and
rdf:predicate. Perhaps I should add RDFS to the list of references at
the end of the spec.

- Dave


On Wed, May 19, 2010 at 8:02 AM, Ian Green1 <ian.green at uk.ibm.com> wrote:
> Hi all,
>
> the resource shape spec states that a Shape resource has zero-or-more
> oslc:Property's
>
>
> an oslc:Property has a (Resource, exactly-one) "rdf:type".
>
> This is a category error in the RDF model.  The rdf:type is the type of
> the instance, not the type of the RDF predicate which is modelling the
> oslc:Property.
>
> To be concrete - here is an example from the draft:
>
>
>
> <oslc:property>
>         <oslc:Property>
>             <oslc:name>modified</oslc:name>
>             <oslc:occurs>exactly-one</oslc:occurs>
>             <oslc:namespace rdf:resource="http://purl.org/dc/terms#" />
>             <rdf:type rdf:resource="http://purl.org/dc/terms#modified" 
/>
>             <oslc:valueType rdf:resource="
> http://www.w3.org/2001/XMLSchema#dateTime" />
>         </oslc:Property>
>     </oslc:property>
>
> This asserts that there is a resource, of rdf:type oslc:Property AND 
also
> of rdf:type http://purl.org/dc/terms#modified
>
> We don't mean this.   We mean that the oslc:Property is indicated by an
> RDF predicate http://purl.org/dc/terms#modified.
>
> I suggest we change this part of the spec. to use rdf:predicate rather
> than rdf:type.  So the example becomes:
>
> <oslc:property>
>         <oslc:Property>
>             <oslc:name>modified</oslc:name>
>             <oslc:occurs>exactly-one</oslc:occurs>
>             <oslc:namespace rdf:resource="http://purl.org/dc/terms#" />
>             <rdf:predicate rdf:resource="
> http://purl.org/dc/terms#modified" />
>             <oslc:valueType rdf:resource="
> http://www.w3.org/2001/XMLSchema#dateTime" />
>         </oslc:Property>
>     </oslc:property>
>
>    -ian
>
> ian.green at uk.ibm.com (Ian Green1/UK/IBM at IBMGB)
> Chief Software Architect, Requirements Definition and Management
> IBM Rational
>
>
>
>
>
> 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
>
>
>
>
>
>
>
> _______________________________________________
> Oslc-Core mailing list
> Oslc-Core at open-services.net
> http://open-services.net/mailman/listinfo/oslc-core_open-services.net
>

_______________________________________________
Oslc-Core mailing list
Oslc-Core at open-services.net
http://open-services.net/mailman/listinfo/oslc-core_open-services.net

_______________________________________________
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