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

Arthur Ryman ryman at ca.ibm.com
Wed May 23 22:37:49 EDT 2012


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








More information about the Oslc-Core mailing list