Keith Alexander wrote:
Can you explain why you prefer sioc:has_container to dcterms:isPartOf ?

Let's call it consistent use of a vocabulary. Since I'm using SIOC for lots of 
things in the platform anyway (like, most resources in my dataset are 
sioc:Items) it makes sense to use SIOC the way it is expected to be used. Then 
again I also want to use voiD the way it is expected to be used, so I'm in a 
dilemma. :-)

This is always a problem with unaligned vocabularies. For example when 
describing the user accounts on my platform, do I type them as 
foaf:OnlineAccounts or do I use its (confusingly named) sub-class sioc:User? 
Why is there a sub-class at all? Do I use dcterms:identifier for the user IDs 
or the unrelated sioc:id? foaf:name for the user names or the also unrelated 
sioc:name (which basically means the same, just is scoped to SIOC objects)? Or 
rdfs:label?
Similarily people often copy properties of the dcterms vocabulary without 
relating them to it. Or they create sub-classes of things which are scoped to 
their vocabulary instead of using the original classes directly (which would 
reduce the need for inferencing). I think it would make more sense to just tell 
people what external classes and properties can be used together with your 
vocabulary (just like voiD does!).

So yeah, you always have to expect people mixing vocabularies in a flexible 
way, even when they are not aligned. Of course I could provide my own 
alignments of vocabularies I use but how do I point people to those alignments? 
Normally when you explore linked data you dereference the vocabulary items 
directly to get authorative definitions. What I could do is feed my RDF store 
with my alignments and use inferencing so that people can find the triples they 
expect as well when querying it. Or I could use other means of conversion 
(SPARQL CONSTRUCT) to export my data with other vocabularies.

Regards,
 Simon

Reply via email to