For an academic account of this project, see the SDOW2009 article.
For project news and a to-do list, see the message on the sioc-dev mailing list.
This site (or the SiocLog software) supports online collaboration by observing the real-time chats (instant messaging, IM) on some public IRC channels (virtual chatrooms), archiving the discussion logs, and providing access to them as Linked Data on the Web. The site provides Web addresses (http URIs) for information on the channels, the daily discussions, and the nicks (chat personas). Linked Data ensures that third parties can easily access the raw data based on standards, create mash-ups etc.
The chat participants can further provide their Web ID (a personal URI) to link to their (existing) person profile. This helps avoid personal data entry and friend search on yet another social site. (The Web ID may point to an existing FOAF profile, or to a newly-created FOAF profile on a personal web site or at a service like FOAF Me.) The FOAF profile in turn can link to the person's accounts on other social forums, connecting the divided social presence on the Web.
Web ID is a Web address that identifies a person instead of a Web page.
A chat persona can claim a Web ID and thus to be an actual person. If available, we use this information to load and display profile information about the person (information about the foaf:Person that the Web ID resolves to). This way, the person doesn't need to enter data specifically for this site.
/msg nickserv register a-password-here your-email-here to register your nickname at Freenode./msg nickserv identify your-password-here to log in at Freenode. (You should set your IRC application
to do this every time you connect, to prevent others from inpersonating you.)/msg nickserv set property webid your-WebID-here
to claim your Web ID.
(This is a persistent setting, so you only need to do this once.)
This site provides URIs based on the following patterns. The corresponding legacy, non-Web URIs are mentioned as synonyms (owl:sameAs) for wider compatibility.
| Linked Data/Web URI | Legacy URI | |
|---|---|---|
| Freenode IRC network | http://irc.sioc-project.org/#freenode | irc://freenode |
| Channel | http://irc.sioc-project.org/channel#channel | irc://freenode/%23channel |
| Message | http://irc.sioc-project.org/channel/0000-00-00#00:00:00.00 | N/A |
| Chat persona | http://irc.sioc-project.org/users/persona#user | irc://freenode/persona,isuser |
You instantly see how the pages on this site link to each other. However, the following describes how the data on the site links to other pieces of data. You can make queries that take advantage of these links, and download data by following these links. The meaning of the links is standardised via well-known vocabularies such as FOAF and SIOC.
Linked Data is the Semantic Web done right, and the Web done right. —Tim Berners-Lee
Linked Data builds a Web of Data to back up the better-known Web (of pages, or documents). It means that each piece of information can be accessed by following links: When you read a discussion, you can click a link to get more information about any participant. Each line has a Web address that you can refer to from other discussions. Linked Data also means all the information is made available on the Web of Data by providing a machine-readable (RDF) version of the data, using well-known vocabularies such as FOAF and SIOC to represent the content. Thus, anyone can easily access the raw data based on standards, create mash-ups etc.
One way to access Linked Data is SPARQL, which is the Linked Data counterpart to
and similar to SQL. SPARQL has good software support including the libraries
Redland (C, wrappers for Perl, Python, PHP, Ruby), RDFLib (Python), ARC2 (PHP),
and Jena (Java), as well as command line tools roqet of Redland,
cli.php of ARC2 Starter Pack, and arq.query of Jena.
(See also e.g. the book
Programming the Semantic Web
from O'Reilly.)
Dave Beckett's loggerbot has published IRC discussion logs in RDF for years. SiocLog is more modern in that it's more Linked Data and it uses the appropriate SIOC (Socially Interlinked Online Communities) vocabulary in RDF. SiocLog also lets chat participants declare their Web ID and thus links out to and integrates with the FOAF (Friend of a Friend) network of people who participate in the Linked Data on the Web.
To verify their Web ID claim, the person behind a chat persona can claim in the personal profile to be using the specific chat persona. When these claims point at each other, we can be sure that the Web ID is in control of the same person as the chat persona. However, people may still as usual give other false information (real name, photo, friends, etc.) about themselves in their personal profiles.
The idea for a system like this was born in 2007 when we wanted to browse the logs of the channel #fenfire using Fenfire (a Linked Data browser). Benja had the idea that we could use the SIOC vocabulary for the data, and I had a raw IRC logging system that we could build on (irchub.py). We wrote the first version (Irc2RDF) in Haskell as a part of the Fenfire project.
The current version (SiocLog) is a complete rewrite in Python during summer 2009, to make the code look familiar to more people. New features include the channel and user URIs and pages as well as Web ID support.