[oslc-core] Comments on OSLC Core Specification Version 2.0 - DRAFT
Arthur Ryman
ryman at ca.ibm.com
Mon Jun 14 14:31:13 EDT 2010
I carefully read the entire spec again, this time translating it into OWL
as a check on its overall consistency. I corrected some obvious typos.
Here are the issues I found below. I also have some comments on how the
Core spec relates to OWL, which I'll send in a separate note.
1. Resource value-types. There is a technical error in the description of
Local Inline Resource and the subsequent examples. The spec incorrectly
uses rdf:ID to refer to local resources. Recall that we introduced the
term "local resource" to be a synonym for "blank node" because we did not
want to depend on RDF terminology. I think we should look at this decision
again since the new terms and descriptions we are introducing may be
adding to the confusion instead of simplifying the specification.
The correction is to use rdf:nodeID whenever referring to a blank node
within an RDF/XML document. The rules are described in [1].
rdf:ID is also very useful, but is not used for blank nodes. It is used to
define URI references that are relative to the XML base of the RDF/XML
document. [2] rdf:ID defines a unique fragment identifier within the
document, which is then appended to the base URI + "#" to for a URI
reference.These URI references are global, i.e. their values have meaning
outside the document. They are useful for identifying resources within an
RDF/XML document.
We introduced the concepts of local and inline resources to put
constraints on the format of documents so that they would be easier to
parse. However, we are using most of RDF/XML anyway, so maybe we should
simply allow RDF/XML and use the correct RDF terms? A quick Google search
shows that there are RDF parsers for all major languages.
2. dc:title and dc:description
First, we are using the dcterms namespace, so our documentation should use
the prefix dcterms: which is the normal convention. dc: is conventionally
used for the DC elements namespace.
Second, we had a long email discussion on using rich text for these
properties, specifically XHTML <span> and <div> content, and this is
recommended in Appendix A. [3] This means the datatype should be
rdf:XMLLiteral. However, the Core uses string for these on its own
resources. Shouldn't we follow our own recommendations?
3. Resource: Respsonse Information - the value of oslc:nextPage should be
a resource, not a string.
4. In Conceptual Model diagram oslc:QueryCapability should be
oslc:queryCapability - the convention is that property names start with
lowercase letter, and class and individual names start with uppercase
letter.
5. Namespace Definition versus Prefix Definition - I think these are the
same thing, but both terms are used in the spec. We should use
PrefixDefinition.
6. Resource: Service Provider - the spec says that namespace definitions,
aka predefined prefixes, can be used in JSON respresentations, We should
only use predefined prefixes on URLs to keep them short and readable. We
should NOT use predefined prefixes in documents. Documents should be
self-contained and define any prefixes they use.
7. Resource: Creation Factory - the spec uses both oslc:Factory and
oslc:CreationFactory. These are the same. We should only use
oslc:CreationFactory.
8. Resource: Error
- the datatype of oslc:statusCode is Decimal. I suggest that String is
more appropriate since a code is usually an arbitrary sequence of
characters, not necessarily a decimal number.
- the (misspelled) property oslc:exendedMessage should be
oslc:extendedError since it refers to an ExtendedError resource
- the text refers to the resource type oslc:ExtendedMessage but that
should be oslc:ExtendedError
9. Resource: Extended Error
- the properly oslc:url should be renamed to the more descriptive term
oslc:moreInfo since it refers to a document that contains more information
- the property oslc:rel has datatype Resource which is inconsistent with
the text which defines a string value 'alternate'. The datatype should
therefore be String
- the properties oslc:highWidth and oslc:hintHeight have datatype Decimal,
but this is inconsistent with their use elsewhere, where it is String in
order to allow CSS window size units. Use String here too.
10. JSON Representations
- the text refers to QNames but should refer to Prefixed Name. A QName
represents a pair consisting of a namespace URI and a local name. A
Prefixed name represents a URI ref.
- the property rdf:id is used but this should be rdf:nodeID
[1] http://www.w3.org/TR/REC-rdf-syntax/#section-Syntax-blank-nodes
[2] http://www.w3.org/TR/REC-rdf-syntax/#section-Syntax-ID-xml-base
[3]
http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixADRAFT?sortcol=table;up=#Dublin_Core_Properties
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
More information about the Oslc-Core
mailing list