I'm working on a soon-to-be-published vocabulary for describing RDF
datasets (called voiD), and members of the SIOC community (Alex
Passant and Simon Reinhardt) have asked for alignment between voiD and
SIOC.
I'm trying to figure out how this could be done. And while SIOC is
pretty self-explanatory for describing things like forums and blogs, I
have a lot of trouble figuring out its higher-level, more generic
concepts, which seem a bit underspecified to me. So, here are some
questions.
1. Is a can of beer a sioc:Item, and a box of beer a sioc:Container?
2. What is the difference between sioc:Space and sioc:Container?
3. If A and B are sioc:Containers, and A sioc:parent_of B, and B
sioc:container_of xyz, does it follow that A sioc:container_of B?
4. Would “All posts published on a Tuesday” be a valid child
sioc:Container of a sioc:Forum?
Please do *not* give me any answers that explain SIOC concepts by
referring to other SIOC concepts. “A sioc:Container is something that
contains sioc:Items” is not helpful, please use terminology from the
non-SIOC world. Also, quotage from the SIOC spec would be appreciated.
I realize that some of those questions might not have clear-cut
answers and that's okay, so if you have any opinion then please fire
away, I'm more interested in discussion than YES/NO style answers
anyway.
Cheers,
Richard
--
Richard Cyganiak
DERI, NUI Galway
skype:richard.cyganiak
tel:+353-91-49-5711
> 1. Is a can of beer a sioc:Item, and a box of beer a sioc:Container?
IMO no. We are talking about Containers and Items in terms of community
content, i.e. content that is data-based... Not real-world objects.
> 2. What is the difference between sioc:Space and sioc:Container?
A Space is a place where data resides, e.g. a website, a file share, a
peer on a P2P network, an external hard drive. A Container is more like
a channel, a folder, a gathering of content items such as blog posts,
images, bookmarks, etc.
> 3. If A and B are sioc:Containers, and A sioc:parent_of B, and B
sioc:container_of xyz, does it follow that A sioc:container_of B?
Yes, is that a problem I wonder?
> 4. Would "All posts published on a Tuesday" be a valid child
sioc:Container of a sioc:Forum?
Sounds more like one view or filter of content items that is logically
linked to a container - but I guess you could if you wanted...
Good questions all! Let's have some more opinions / answers...
John.
On 9 Feb 2009, at 14:30, Breslin, John wrote:
>> 2. What is the difference between sioc:Space and sioc:Container?
>
> A Space is a place where data resides, e.g. a website, a file share, a
> peer on a P2P network, an external hard drive. A Container is more
> like
> a channel, a folder, a gathering of content items such as blog posts,
> images, bookmarks, etc.
This still sounds fuzzy to me. Isn't a folder also a place where data
resides? Isn't a website also a gathering of content items? I cannot
tell wether a void:Dataset is “a place where data resides” or “a
gathering of content items.” The distinction seems arbitrary to me.
Why was it made in SIOC?
>> 3. If A and B are sioc:Containers, and A sioc:parent_of B, and B
>> sioc:container_of xyz, does it follow that A sioc:container_of B?
>
> Yes, is that a problem I wonder?
Ah, I goofed when I wrote the question, very sorry about that! What I
meant is this:
:my_container a sioc:Container
:my_parent_container a sioc:Container
:my_parent_container sioc:parent_of :my_container
:my_container sioc:container_of :my_item
So, there is an item which is in a container, and the container has a
parent. Does it follow that the parent also contains the item? In
other words, are parent containers also containers of their children's
items?
Note that for example in file systems we don't typically think of it
that way. If a file is in /home/cygri/stuff/xyz, then we do *not* say
that it is also in my home directory. (We'd say something like “it's
somewhere under my home directory.”)
The answer to this matters for the question wether void:Dataset can be
declared a subclass of sioc:Container.
Cheers,
Richard
Yes, this is what I did when I was modeling email lists and
threads[1,2]. I wanted the list to be linked individually to each
message, not just indirectly through the Threads (and above that each
message linked to the project that had the mailing list). I *think*
that this can be done with role chains in OWL2, but I couldn't make it
work, so I first used an SWRL rule as you describe, then that was too
slow so I used a SPARQL CONSTRUCT query, added the result back in to
the original Model (graph/ontology/dataset) and then queried the
combination.
:list1 a fc:MailingList ;
fc:hasThread :thread1 .
:thread1 a fc:MailingListThread ;
fc:hasEvent :message1 .
:message1 a fc:MailingListEvent ;
fc:isEventOf :thread1 .
fc:hasThread(?list, ?thread) ^ fc:hasEvent(?thread, ?event) ->
fc:hasEvent(?list, ?event)
Of course this means that one either has no domain for fc:hasEvent, or
has a Union domain.
I agree, however, that the file folder example above doesn't have
those semantics, so such rules would need to be expressed either
through a different type of property (that 'reaches' down into the
tree) or defined only for subClasses of sioc:Container.
AFAIK, SPARQL isn't intended to handle this directly, the expectation
is that you are querying a realized set of data where semantics like
this are already expressed (through the semantics of RDF/OWL/SWRL and
a reasoner). ARQ property paths might handle it though.
--J
[1]: http://floss.syr.edu/ontologies/2008/
[2]: http://floss.syr.edu/ontologies/2008/flosscomms-sketch.pdf
Okay, just saw this now - then we have a difference of opinion! What do others think?
Thanks,
John.