[oslc-core] Multiple Languages in Property Values: Proposal to use rdfs:label instead of dc:title in oslc:Property
ryman at ca.ibm.com
Wed Apr 14 11:45:51 EDT 2010
We discussed this on our call today. The example was multiple dc:title
properties for human-readable labels for properties.
Someone asked, "Why not use the xml:lang attribute on the dc:title
element?" This works for RDF/XML but is not part of the RDF data model.
In order to describe this at the RDF data model level, we have two
1. For plain text literal values, RDF lets you append a language tag, e.g.
"Hello"@en for English, "Bonjour"@fr for French. You can have multiple
properties, one per language.
2. For rich text, you can use the xml:lang attribute in the XML literal
content, i.e. on an enclosing <span> or <div> element. There are two
2.1 Use one property and put all the translations in the content, e,g.
<span xml:lang="en">Hello</span><span xml:lang="fr">Bonjour</span>. The
application would parse the content and select the right part. This is
probably messy for queries.
2.2 Use muttiple properties, one per language. This is cleaner. Again, no
there is no easy way to query since you need to parse the content of each
As I understand this requirement dc:title is being used as property
metadata (like rdfs:label). Therefore the total amount of translated text
is small since there is a small amount of metadata. An application would
probably read all the metadata so the query issue is not really a factor.
Given that we are just interested in translations of property labels, and
property labels are normally plain text, then it makes more sense to use
rdfs:label instead of dc:title, and use plain text literal values with
optional language tags. (design #1) This also makes query easier (if we
extend the query syntax to allow language tags).
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