[oslc-core] Expressing oslc:valueType and/or oslc:range within RDFS

John Arwe johnarwe at us.ibm.com
Thu May 24 08:34:54 EDT 2012


I had a sense on the call that you guys were talking past one another, and 
now it's deja vu all over again.
The key is probably your question (from the call) "do you [Steve] mean RDF 
annotations?".
I wasn't sure what those were (well-defined &something vs term of art) at 
the time; after some brief research, I think the answer is "yes".
One example: when defining the RDFS document for an OSLC vocabulary, we 
could just stick an oslc:valueType predicate inside the property 
definition (assuming the syntax allows it, but I expect so this is RDF 
after all and it's "just another triple").
Fair to say we cannot do so for vocabulary we do not control, but they 
would not appear in our vocabulary documents anyway.  The resource 
definition table would be the only obvious place we could constrain 
something like dcterms:created to be an xs:dateTime vs Dublin Core's 
rdfs:Literal range.
I think we did agree on the call that using Range in our own RDFS was 
inappropriate, precisely for the reasons you articulate.  oslc:valueType 
is a predicate we control, and a generic RDFS processor therefore will 
infer no additional triples unless we license it to do so.  Or am I 
missing something?

Best Regards, John

Voice US 845-435-9470  BluePages
Tivoli OSLC Lead - Show me the Scenario




From:   Arthur Ryman <ryman at ca.ibm.com>
To:     Steve K Speicher/Raleigh/IBM at IBMUS
Cc:     oslc-core at open-services.net, oslc-core-bounces at open-services.net
Date:   05/23/2012 10:38 PM
Subject:        Re: [oslc-core] Expressing oslc:valueType and/or 
oslc:range within       RDFS
Sent by:        oslc-core-bounces at open-services.net



Steve,

I commented on this on a recent telecon. In summary:

1. RDFS and OWL are inference languages. They define rules for deriving 
new triples from given triples. This is not what we mean when we indicate 
the value type of a predicate.

2. Our tables document how predicates are used within a resource (or more 
narrow context such as resource creation). This applies to predicates we 
define or reuse, e.g. Dublin Core, FOAF. These are constraints on what 
constitutes a valid RDF representation of a resource. These constraints 
cannot be part of the vocabulary since we do not control Dublin Core or 
FOAF. That is why we introduced ResourceShapes. 

One technical nit - RDF terms are not QNames, they are URIs. A QName is a 
pair (namespace URI, local name). Syntactically a QName looks like a CURIE 

(Compact URI), but they mean something different. RDF/XML conflates these.

Regards, 
___________________________________________________________________________ 


Arthur Ryman 

DE, Chief Architect, Reporting &
Portfolio Strategy and Management
IBM Software, Rational 

Toronto Lab | +1-905-413-3077 (office) | +1-416-939-5063 (mobile) 





From:
Steve K Speicher <sspeiche at us.ibm.com>
To:
oslc-core at open-services.net
Date:
05/16/2012 09:54 AM
Subject:
[oslc-core] Expressing oslc:valueType and/or oslc:range within RDFS
Sent by:
oslc-core-bounces at open-services.net



In thinking about best to define our vocabularies in a reusable way across 


other domains within OSLC and beyond, I think it would be good to be able 
to define each vocabulary term as:
Predicate QName -- Value Type QName -- Meaningful description string -- 
Some indication of its maturity [stable | learning | proposed]
It would also be desirable to use a normative way to express these 
vocabularies with RDF Schema/OWL or OSLC Resource Shapes. Then derive our 
human-readable versions from them (like we do today) and provide 
scenario-specific constraints such as read-only and occurs.

Take for example what we have in Core Common Properties [1] and Linked 
Data Basic Profile [2], it follows this pattern mostly.  With [1] we have 
some extra details and with [2] we possibly lump value types within the 
Range heading, implying rdfs:range perhaps wrongly.

It appears that RDFS doesn't provide a great way to indicate "Value Type 
QName" and need to determine if OWL plays a role here.  The usage of 
rdfs:range is limited to rdfs:Classes, so things like xsd:String are not a 


rdfs:Class.
So to better "explain" the common or expected value type, I'm suggesting 
we just reuse oslc:valueType within our RDFSs.  The valid choices for 
oslc:valueType will be same as defined in current Core V2 spec + 
rdf:Resource.
Additionally, we would create a predicate to indicate the term's maturity 
or use a recommended one.

Any feedback on this approach?  Suggestions on a better mechanism?

I looked around [3] for some best practices on this and appears to be a 
bit spotty on the usage, other than just simply a local defined rdfs:range 


object or using rdfs:Literal.

[1] - http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA
[2] - http://www.w3.org/Submission/ldbp/#bpr-prop
[3] - http://dublincore.org/schemas/rdfs/

Thanks,
Steve Speicher | IBM Rational Software | (919) 254-0645


_______________________________________________
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


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20120524/9b6e02c2/attachment-0003.html>


More information about the Oslc-Core mailing list