Social Music meets the Semantic Web
No much time to blog at the moment, as I’m mainly concentrated on writing my PhD thesis (and so I wish best of luck - and motivation - to the ones in the same case !)
Yet, I gave a talk at a Center For Digital Music seminar last week, invited there by Yves Raimond. The goal was to showcase how the usual suspects of the Social Semantic Web (FOAF / SIOC / MOAT / LOD) can be used in the context of music-related services and can provide new ways regarding music recommendation. If you’re interested in music-related computing (not only from a SW point of view), you may also be interested in browsing the lab homepage and various projects they host (as the Giant Instrument and others like 3D-sound modeling, automatic mixing or human-synth beat-box)
Tags: foaf, lastfm, linkeddata, moat, sioc, socialmusic
SDoW2008 deadline extended
The SDoW deadline have been extended to the 4th of August, so that you have two additional weeks to submit your paper, demo or poster.
The 1st Social Data on the Web workshop (SDoW2008) co-located with the 7th International Semantic Web Conference (ISWC2008) aims to bring together researchers, developers and practitioners involved in semantically-enhancing social media websites, as well as academics researching more formal aspect of these interactions between the Semantic Web and Social Media.
Complete details about the workshop can be found on its website. Also note that the poster and demo submissions can be up to 3 pages in LNCS format, while it was 2-pages only at the begining.
Tags: foaf, iswc2008, sdow2008, sioc
3 years later …
Today was my last day of work at EDF R&D. I spend 3 years and 4 months there, during my PhD funding contract, exploring and implementing ways to expose Enterprise 2.0 to Semantic Web technologies, combining unified meta-data modeling with SIOC, machine-readable knowledge with Semantic Wikis, advanced tagging with MOAT, the whole data interlinked in a “semantic ecosystem” offering new browsing, integration and search features. Even if it was not always easy to combine short-term industrial goals with research objectives, I’m really happy getting the chance to work on a real use case with various problems to solve. I hope I showed that Semantic Web could be a smart solution to these problems and would like to thank anyone involved in the projet, especially my co-workers and apologize for speaking about triples, RDF, ontologies and SPARQL all day long !
Tomorrow, I’ll flight to Tenerife for ESWC. A busy (and interesting regarding the program) week that will start sunday morning by presenting some use-cases of FOAF and SIOC during Harry Halpin’s tutorial on GRDDL and social networks, and then switching between SemWiki and SFSW workshops on saturday. I’ll speak on a panel titled “Social Network Portability: Is the Semantic Web Ready?” on wednesday evening and also be in the poster session tuesday to present MOAT. Then, back to Paris to finish writing my thesis, keep presenting some of my work and hopefully start a new position soon. And yes, having some rest could also be an option. Later, maybe.
Tags: eswc, foaf, life, phd, semwiki, sfsw, sioc
Social, mobile, semantic
Monday’s DBpedia mobile presentation at LDOW2008 impressed me a lot. Actually, while I never worked on it, I’m really interested in ways to combine mobile applications, Semantic Web / Linked Data technologies and social networking. Here’s a use case I have in mind for a long time and I’d like to share.
Imagine in can embed a FOAF profile on my mobile phone, or just an URI with owl:sameAs / rdfs:seeAlso links to my main URI / RDF file. When joining a conference, a restaurant or any place where there are some people (and when I’m in a good mood), I allow my phone to deliver my presence and this URI (+ related data) to anyone, while at the same time searching for available URIs and data.
Then, I got a list of URIs, and my phone will suggest me that there’s some people nearby that I must meet regarding some criterias and how our URIs are interlinked. A simple way would be to configure the application with kind of (statement, depth) tuples. For example (foaf:interest, 2) would suggest me all people where one of my foaf:interest is link to one of their foaf:interest with a maximum path of 2. And of course, those paths should be computed using Linked Data and considering the whole SW graph, or GGG, e.g. going through DBpedia, GeoNames of any dataset from the LOD cloud if needed.
But, in some case, paths are not enough, as they can result to unrelevant results (depending on the start URI the path may quickly go towards too generic URIs), or sometimes too much people. For example, at a SW event, I guess it would have suggest me to meet anything since I have dbpedia:Semantic_Web in my profile. A solution could be to have an intelligent context manager in the mobile phone that will check my iCal, find that I’m attending a workshop (or even better, use GPS location, browse upcoming.org or other services to find which event I’m attending), retrieve the workshop homepage in which organizers embedded some RDF data about topics of the workshops (as they eat their own dogfood :), and exclude those URIs (and paths that goes through). To be more accurate, instead of those path tuples, I could also define complex queries, as for example: “People that will present some paper at a conference I’ll attend next month”.
Actually, it’s just a matter of providing all the data, open it, and of course, interlink. But well, “Linked Data is the Semantic Web done as it should be. It is the Web done as it should be“, no ?
Tags: foaf, ldow2008, linkeddata, mobile, rdf, socialnetwork
SemwebCampParis numéro 2
Vendredi dernier avait lieu la seconde édition du SemanticCampParis. J’ai enfin pu voir une démo live de Beatnik par Henry, à surveiller pour tous ceux qui cherchent un moyen de gérer leurs contacts de manière ouverte, en apprendre un peu plus sur Nepomuk avec Stéphane et découvrir le projet Feedbooks.
Par manque de temps, l’après-midi a été moins complete que prévu, mais ça n’a pas empeché un des deux groupes de discuter réseaux sociaux, portabilité de données et tags. Voila les slides que j’ai présenté à cette occasion (… ok, j’ai triché, j’ai rajouté le dernier pour les pointeurs vers les projets relatifs aux tags et au WS qui ont été évoqués)
Tags: barcamp, dataportability, foaf, sioc
RDFa profile and new URI
I just added a short profile about myself embedding RDFa that aims to replace my old FOAF file, in which I already moved some things (i.e. relationships) to external services.
I also gave me a nicer URI, http://apassant.net/alex that uses content-negociation to redirect either to the HTML version of this profile or to the extracted RDF one, depending on the Accept header, combining some rewrite rules that Ivan Herman defined for the SW Faq and the .htaccess used for the Flickr wrapper. My old foaf.rdf file is also now redirected to this extracted profile, and I’m using an owl:sameAs in RDFa link to be compliant with services that uses my old URI.
# Old foaf.rdf compliance
RedirectPermanent /foaf.rdf http://www.w3.org/2007/08/pyRdfa/extract?uri=http://apassant.net/about/
# RDF redirect for my URI
RewriteCond %{HTTP_ACCEPT} application/rdf\+xml
RewriteRule ^alex$ http://www.w3.org/2007/08/pyRdfa/extract?uri=http://apassant.net/about/ [R=303,L]
# HTML redirect for my URI
RewriteRule ^alex$ about [R=303,L]
I’m also wondering, since this profile is used as http://apassant.net homepage which is also my OpenID URL, how it will work when loggin on websites using SparqlPress + OpenID as ARC2 embeds an RDFa extractor so that it should discover my FOAF data without using any autodiscovery link.
FOAF hacks of the day
A bit of hacking tonight, after a lot of interesting talks this afternoon about FOAF, OpenID and online identity (and certainly more to come tomorrow):
- Added queries to retrieve user accounts from FOAF profile and display them in comments with SparqlPress. Once again, it’s done by SPARQLing the FOAF URI of the user logged-in on this blog using an OpenID URL. To be displayed, the account must either have a URI (i.e. not to be a blank node) or a foaf:accountProfilePage (BTW, this one is not in the specs while it seems most people agreed on it - and already use it. Dan, what about it ?). Also added icons for some well-knows services. Live example here, and screenshot:

- Updated the simple network browser script to be compliant with the new release of a GraphGear (1.2). The component has new interesting features that can be set in the xml file, as setting the size of the nodes, and adding images. I updated the script to benefit from those features, and so it now display pictures and smaller nodes, which make the script run faster. The image detection only handles foaf:img at the moment, so this is something that whould need more work (e.g. retrieve sioc:avatar from the related online account …). Yet, here’s a sreenshot of the new rendering that you can browse there:

Time to sleep now …
Tags: foaf, graphgear, sparql, sparqlpress, wordpress
SparlPress and foaf:openid
This website now uses SparqlPress.
Morten did a lot of work to include a scutter with ARC2-integration into the plugin, and so this blog now features a RDF backend, that stores some data from my website and related documents (FOAF profile, related seeAlso’s) and also from people who commented there. After 3 great weeks in DERI, I finally took time to dig in the source code of the plugin and start hacking.
A cool thing with this plugin is that the openid patch I wrote some times ago, which implied to hack the original plug-in, is now powered by SparqlPress itself. Each time someone registers to the website, its openid URL is parsed by ARC’s SemHTMLParser which retrieves the FOAF profile, that then goes in the scutter’s queue. There maybe some delay before the files is fetched, but this issue should be covered soon.
Yet, you may notice that some FOAF links disappeared from the comments. While the first version only retrieved the profile using auto-discovery links, I can now SPARQL the file to check if there’s a foaf:openid link to the URL, which lets identify that’s the foaf profile belongs to (or mentions) the related user. So, if your foaf link disappeared, that’s certainly because you don’t have this property in your profile, of it’s not the same than the URL you used to register here (be careful with trailing /). On the other hand, thanks to SPARQL capabilities, comments now also feature links to homepage and blog, picture and others things may come soon.
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?graph ?uri ?home ?blog
WHERE {
GRAPH ?graph {
?uri rdf:type foaf:Person ;
foaf:openid <$openid> .
OPTIONAL { ?uri foaf:homepage ?home } .
OPTIONAL { ?uri foaf:weblog ?blog } .
}
} LIMIT 1
There should also be some privacy settings in the future (in case you do not want your information to be used), as well as SIOC / FOAF / SKOS exports and some other widgets / social network stuff. If you’re interested, check this page (repositories are not merged yet).
Browsing your FOAF social graph
As a way to demo some thoughts from one of my previous posts, I wrote a small python script that query my main FOAF URI to retrieve my other URIs (flickr, twitter …) and related RDF files, then SPARQL each of them to retrieve relationships and creates an XML file according the needs of Graph Gear.

Live demo here. If you want to run in on your own data, just grab it there. The way is defines color mappings is a bit ugly, so if anyone wants to hack a better regexp for it, I’d be glad to have feedback.
One FOAF fits all
A few years ago, I created my FOAF profile with FOAF-O-Matic. But actually, I almost never updated it and its foaf:knows list.
So, now, I’ll let external websites manage those informations.
I have exports in RDF of my flickr, twitter and facebook accounts, as well as this weblog (in progress), and in most of them, I define those relationships to the people I know. Since all those files define a URI for myself, I can use my main (I mean hosted by my own) FOAF file as a reference profile that will link myself to my other URIs using owl:sameAs, and also add rdfs:seeAlso links to the related files (as described here), eg:
<owl:sameAs rdf:resource="http://apassant.net/home/2007/12/flickrdf/people/33669349@N00" rdfs:seeAlso="http://apassant.net/home/2007/12/flickrdf/data/people/33669349@N00"/> <owl:sameAs rdf:resource="http://twitter.com/terraces" rdfs:seeAlso="http://tools.opiumfield.com/twitter/terraces/rdf"/>
And I’ll get a decentralized foaf:knows network, as shown on this graph:

Then, I can grab all these profiles in a local RDF store, or even better, use a dedicated Semantic Web “social graph manager” as Knowee or Beatnik to get all my contacts locally, get their e-mail, query profiles, or as David said, integrates in other desktop apps and sync with my iphone (ok, I don’t have one yet
) …
And if services as linked-in or bibliography repositories export FOAF URIs for anyone, as the FOAF/DBLP service already offers, I could even link to people I worked with. In case all those services exports data with only foaf:knows and I want to be more precice, I can refine relationships in my profile using the RELATIONSHIP vocabulary, or maybe even include rules in my profile that could then be taken into consideration by agents that will query it ? Something like:
( GRAPH <http://linkedin/foafexport/mygraph> { #me foaf:knows ?x } )
=>
( #me rel:collaboratesWith ?x )
that will be in my profile itself.
Finally, since I can create a link to this FOAF profile from my OpenID, I can reuse this graph in many applications. And when login to a new service, ask him “is there anyone here that I know from flickr ?”.
More than social network, I can also link from the same profile (or, actually, from the profiles that have been linked to the reference one) to various things I wrote or done on the Web, as data from last-fm, revyu or flickr, thanks to SIOC, as explained here.
So: One reference profile. Lots of distributed information. One Giant Global Graph.
NB: Also check some of Dan Brickley’s experiments about related topics.
NB2: I did not take trust issues in consideration in that post, i.e. how can we be sure that the owl:sameAs relationship is linked to an URI which is really *me*. I think one solution would be to authenticate on those websites using OpenID so that it can find my FOAF file, then my URI, and add an owl:sameAs link in the other direction. Both files should also be signed, and I think that will be ok (?).
Tags: dataportability, foaf, openid, owl, rdf, sioc, socialgraph

