Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Data Portability with SIOC and FOAF


Published on

"Data Portability with SIOC and FOAF" talk at XTech 2008 (May 9, 2008, Dublin, Ireland).


Published in: Technology
  • Be the first to comment

Data Portability with SIOC and FOAF

  1. Data Portability with SIOC and FOAF Uldis Boj ā rs 1 , Alexandre Passant 2 , John Breslin 1 1 Digital Enterprise Research Institute, National University of Ireland, Galway 2 LaLIC, Université Paris-Sorbonne / Electricité de France R&D XTech 2008 Dublin, Ireland - 2008-05-09
  2. What’s the problem and how to solve it ?
  3. What if I use multiple services and I want to… <ul><li>Merge my social networks between various websites </li></ul><ul><li>Invite my friends from a social media website to a new service I’ve just registered </li></ul><ul><li>Move the stuff I have on one service to another (e.g. move all my blog posts, comments, etc. from to “Acme Blogs”) </li></ul><ul><li>And more: </li></ul><ul><ul><li>See my stuff on a third-party service providing an aggregate view, like FriendFeed, but in an open way </li></ul></ul><ul><ul><li>Archive and preserve my social media contributions </li></ul></ul><ul><ul><li>… </li></ul></ul>
  4. So many social media sites… * Source: Smashcut Media,
  5. Even more services…
  6. It takes a lot of time…
  7. Filling out your profiles, re-adding your friends…
  8. Uploading posts and content items to “stovepipes”!
  9. Social media sites are like data silos * Source: Pidgin Technologies,
  10. Many isolated communities of users and their data * Source: Pidgin Technologies,
  11. Need ways to connect these islands * Source: Pidgin Technologies,
  12. Allowing users to easily move from one to another * Source: Pidgin Technologies,
  13. Enabling users to easily bring their data with them * Source: Pidgin Technologies,
  14. Social networking fatigue <ul><li>How many general or niche SNSs are you willing to register and / or interact with? </li></ul><ul><li>“ People are getting sick of registering and re-declaring their friends on every site ” Brad Fitzpatrick (Aug. 2007) </li></ul><ul><li>Need for a “social graph” with distributed social networks and reusable profiles </li></ul><ul><li>A Bill of Rights for Users of the Social Web (Sept. 07) </li></ul><ul><ul><li>Ownership </li></ul></ul><ul><ul><li>Control </li></ul></ul><ul><ul><li>Freedom </li></ul></ul><ul><li>The Semantic Web can help ! </li></ul>
  15. <ul><li>is </li></ul><ul><li>important ! </li></ul>
  16. Data Portability <ul><li>Social network portability </li></ul><ul><ul><li>User profiles </li></ul></ul><ul><ul><li>Social network relations </li></ul></ul><ul><li>User-created content portability </li></ul><ul><ul><li>Social media contributions </li></ul></ul><ul><li>… and all other kinds of data portability needs that you can think of … </li></ul>
  17. Social Network Portability with FOAF (Friend of a Friend)
  18. The Semantic Web in brief <ul><li>“ The Semantic Web is an extension of the current web in which information is given well-defined meaning , better enabling computers and people to work in cooperation ” - Tim Berners-Lee, James Hendler, Ora Lassila, Scientific American, May 2001 </li></ul><ul><li>A common model to describe data in a machine-readable way: </li></ul><ul><ul><li>RDF (Resource Description Framework) </li></ul></ul><ul><ul><li>RDF statements are triples (subject predicate object): </li></ul></ul><ul><ul><ul><li>XTech2008 isA Conference . </li></ul></ul></ul><ul><ul><ul><li>XTech2008 takesPlaceIn Dublin . </li></ul></ul></ul><ul><ul><ul><li>Uldis isPresentingAt Xtech2008 . </li></ul></ul></ul>
  19. RDF <ul><li>Graph-based model for describing: </li></ul><ul><ul><li>information about objects </li></ul></ul><ul><ul><li>relationships between them </li></ul></ul><ul><li>Different mediums for expressing this knowledge: </li></ul><ul><ul><li>RDF in XML, JSON, N3 (plain text) </li></ul></ul><ul><ul><li>Embedded: RDFa (in HTML) </li></ul></ul><ul><ul><li>Extractable using GRDDL (from Microformats, …) </li></ul></ul>
  20. RDF (II) <ul><li>Large set of tools & libraries </li></ul><ul><ul><li>All major programming languages </li></ul></ul><ul><li>Standard query language </li></ul><ul><ul><li>SPARQL (W3C Recommendation) </li></ul></ul><ul><li>Interesting applications built on top of it </li></ul><ul><ul><li>SPARQL interfaces to relational DBMSs </li></ul></ul><ul><ul><li>Reasoning / inference engines </li></ul></ul><ul><ul><li>Web of Linked Data </li></ul></ul>
  21. Vocabularies / Ontologies <ul><li>Common semantic model for data, using ontologies: </li></ul><ul><ul><li>“ An ontology is a specification of a conceptualisation” - Tom Gruber </li></ul></ul><ul><ul><li>RDFS (RDF Schema) </li></ul></ul><ul><ul><li>OWL (Web Ontology Language) </li></ul></ul><ul><li>Lightweight Vocabularies are Good for You :) </li></ul><ul><ul><li>FOAF, SIOC, DOAP </li></ul></ul><ul><li>The Semantic Web FAQ: </li></ul><ul><ul><li> </li></ul></ul>
  22. Lightweight Ontologies <ul><li>FOAF </li></ul><ul><ul><li>Friend Of A Friend - http: //foaf-project .org </li></ul></ul><ul><ul><li>Used by Apple Safari, Google Social Graph API, … </li></ul></ul><ul><li>DOAP </li></ul><ul><ul><li>Description of A Proect - </li></ul></ul><ul><ul><li>Used by Apache projects catalogue, … </li></ul></ul><ul><ul><li>Consumed by , … </li></ul></ul><ul><li>SIOC </li></ul><ul><ul><li>Semantically-Interlinked Online Communities </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Generated by WordPress and other plugins, see: </li></ul></ul>
  23. The Semantic Web and Web 2.0 <ul><li>Semantic Web and Web 2.0 can benefit from each other to lead to a better Web, with social and machine-understandable data. </li></ul><ul><li>Many examples: </li></ul><ul><ul><li>Vocabularies: FOAF to describe people, SIOC to describe their data </li></ul></ul><ul><ul><li>Semantic Wikis: Semantic MediaWiki, OntoWiki … </li></ul></ul><ul><ul><li> A review website based on SW technologies </li></ul></ul><ul><ul><li>Tagging: The Tag Ontology, SCOT, MOAT </li></ul></ul><ul><li>“ I think we could have both Semantic Web technology supporting online communities , but at the same time also online communities can support Semantic Web data by being the sources of people voluntarily connecting things together .” Tim Berners-Lee </li></ul>
  24. Discovering the “invisible” web of data <ul><li>“ Semantic Radar” extension for Firefox: </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Easy to setup and use (Firefox extension, auto-update) </li></ul></ul><ul><ul><li>Support for RDFa! </li></ul></ul><ul><ul><li>Architecture of participation: just browse the Web </li></ul></ul><ul><ul><li>Discover Semantic Web documents using RDF autodiscovery links (a popular practice for advertising Atom/RSS and FOAF ): </li></ul></ul><ul><li><head> </li></ul><ul><li><link rel=&quot;meta&quot; type=&quot;application/rdf+xml&quot; title=&quot;FOAF&quot; href=&quot;;/> </li></ul><ul><li></head> </li></ul><ul><li>RDF Browsers: </li></ul><ul><ul><li>Tabulator, Disco, Zitgist, … </li></ul></ul>
  25. Representing people and their relationships <ul><li>FOAF is the main vocabulary used to represent people: </li></ul><ul><ul><li>Friend Of A Friend - http: //foaf-project .org </li></ul></ul><ul><ul><li>foaf:Person class: </li></ul></ul><ul><ul><ul><li>“ The foaf:Person class represents people. Something is a foaf:Person if it is a person.” </li></ul></ul></ul><ul><li>Give yourself a URI: </li></ul><ul><ul><li>http: //apassant . net/alex </li></ul></ul><ul><li>Relationships = foaf:knows property </li></ul><ul><ul><li>:John foaf:knows :Alex . </li></ul></ul>
  26. Enriching FOAF data <ul><li>Extensions using the RELATIONSHIP vocabulary: </li></ul><ul><ul><li>http: //vocab .org/relationship/ </li></ul></ul><ul><ul><li>All rel:* properties are subproperties of foaf:knows </li></ul></ul><ul><ul><li>:John rel:worksWith :Uldis </li></ul></ul><ul><ul><li>RDFS inferencing allows tools to answer queries using foaf:knows when people use rel:* alternatives </li></ul></ul><ul><li>Can mix together with information in many different vocabularies (as necessary): </li></ul><ul><ul><li>DOAP (Description of a Project) - for software projects </li></ul></ul><ul><ul><li>SIOC - for user-created content </li></ul></ul><ul><ul><li>… . </li></ul></ul>
  27. Integrating social networks with FOAF Common formats, unique URIs Source: Sheila Kinsella, Applications of Social Network Analysis 2007
  28. A common semantics for existing services <ul><li>Existing FOAF exporters for Facebook, Flickr, Twitter… </li></ul><ul><li>Run unified queries using SPARQL </li></ul>
  29. Social Network data from multiple sources <ul><li>Flickr: </li></ul><ul><li>Twitter: </li></ul><ul><li>FaceBook: </li></ul>
  30. Some more FOAF <ul><li>LiveJournal </li></ul><ul><li>MyBlogLog </li></ul><ul><ul><li> </li></ul></ul><ul><li>CPAN Net::Flickr::Backup </li></ul><ul><ul><li> </li></ul></ul><ul><li>Pownce </li></ul><ul><li>… . </li></ul>
  31. Identity management across networks <ul><li>A need to unify URIs from different services so as to represent one's unified identity. Linked-data principles are to use owl:sameAs and rdfs:seeAlso: </li></ul><ul><ul><ul><li>See: http://www4. wiwiss . fu-berlin . de/bizer/pub/LinkedDataTutorial/ </li></ul></ul></ul><ul><ul><li>owl:sameAs: Used to identify two resources with different URIs as being the same resource </li></ul></ul><ul><ul><ul><li>:alex owlSameAs flickr:33669349@N00 . </li></ul></ul></ul><ul><ul><li>rdfs:seeAlso: “More information about this resource can be found here”, can be used by Semantic Web tools such as Tabulator </li></ul></ul><ul><li> </li></ul><ul><li>Inference using owl:InverseFunctionalProperty: </li></ul><ul><ul><li>foaf:mbox, foaf:openid, etc. can be used to identify uniqueness for a foaf:Person </li></ul></ul><ul><li>Unifying aspects of a foaf:Person across networks: </li></ul><ul><ul><li>All relevant relationships are related to one foaf:Person </li></ul></ul><ul><ul><li>Social Network unification </li></ul></ul>
  32. Distributed social networking with FOAF
  33. Applications for browsing the social (semantic) graph <ul><li>FOAFnaut, FOAF Explorer, etc. </li></ul><ul><li>FOAFGear: thanks to common semantics, only 100 lines of code: http: //apassant .net/home/2008/01/foafgear/ </li></ul>
  34. Semantic social networks tools and services <ul><li>Browse / re-use your social graph in personal applications </li></ul><ul><li>Merge identities with pre-defined rules </li></ul><ul><li>Tools: </li></ul><ul><ul><li>Beatnik </li></ul></ul><ul><ul><li>Knowee </li></ul></ul><ul><ul><li>SPARQLpress </li></ul></ul><ul><ul><li>Nepomuk </li></ul></ul>
  35. Combining FOAF and OpenID <ul><li>Link to your FOAF profile from your OpenID URL, so that services can get your machine-readable profile when you log-in: </li></ul><ul><li><head><link rel=&quot;meta&quot; type=&quot;application/rdf+xml&quot; title=&quot;FOAF&quot; href=&quot;foaf.rdf&quot; /></head> </li></ul><ul><li>FOAF + OpenID Scenario </li></ul><ul><ul><li>Bob creates an account on Networkr, a new social networking website, using OpenID </li></ul></ul><ul><ul><li>Networkr retrieves the FOAF URI thanks to an auto-discovery link </li></ul></ul><ul><ul><li>From the FOAF file, it identifies if there are any people already subscribed to Networkr who are listed in Bob’s defined relationships </li></ul></ul><ul><ul><li>If that is the case, Bob can add them as “local connections”, share data with them, etc. without having to once again search for / add his friends </li></ul></ul><ul><ul><li>Specific rules: </li></ul></ul><ul><ul><ul><li>If I know X from Flickr, he / she can see my pictures on Networkr </li></ul></ul></ul>
  36. Data Portability = SIOC + FOAF
  37. Social Media Contributions <ul><li>Lots of user-created content posted on the Web: </li></ul><ul><ul><li>Blog posts, wiki pages, bulletin board threads </li></ul></ul><ul><ul><li>Called « Social Media Contributions » or SMC </li></ul></ul><ul><li>Distributed content </li></ul><ul><ul><li>Blogging platform, photos-sharing website, social bookmarking service …. </li></ul></ul><ul><li>A need for common semantics to </li></ul><ul><ul><li>Provide a single model for any SMC, wherever it comes from </li></ul></ul><ul><ul><li>Enables the use of SPARQL queries instead of proprietary APIs </li></ul></ul><ul><ul><li>Interlink data and find relationships between content </li></ul></ul><ul><ul><li>From documents to resources, from WWW to GGG </li></ul></ul>
  38. <ul><li>SIOC </li></ul><ul><li>(pron. as “shock”) </li></ul>
  39. <ul><li>SIOC </li></ul><ul><li>Social Web + Semantic Web </li></ul>Vocabulary for expressing the Social Web (user-created content) on the Semantic Web (web of data)
  40. <ul><li> </li></ul>
  41. Modeling Social Media Contributions <ul><li>SIOC - Semantically-Interlinked Social Communities </li></ul><ul><ul><li>http: //sioc-project .org </li></ul></ul><ul><ul><li>A vocabulary to represent the activities of online communities </li></ul></ul><ul><ul><li>More than 40 applications, mainly open-source </li></ul></ul><ul><ul><li>W3C Member Submission, June 2007 </li></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><li>Namespace: http: //rdfs . org/sioc/ns </li></ul><ul><ul><li>Five top-level classes: </li></ul></ul><ul><ul><ul><li>User / Role / Space / Container / Item </li></ul></ul></ul><ul><li>Items, created by User(s), organized in Containers </li></ul>
  42. The SIOC ontology <ul><li>The main classes and properties are: </li></ul>
  43. Connecting people and their user accounts <ul><li>The sioc:User class: </li></ul><ul><ul><li>Can be thought of as a virtual representation of any person online, within the context of a given social media website or community </li></ul></ul><ul><ul><li>A subclass of foaf:OnlineAccount </li></ul></ul><ul><li>foaf:holdsAccount property: </li></ul><ul><ul><li>“ The foaf:holdsAccount property relates a foaf:Agent to a foaf:OnlineAccount for which they are the sole account holder.” </li></ul></ul><ul><ul><li>Links a foaf:Person to various sioc:User(s) </li></ul></ul><ul><ul><li>As many sioc:User(s) as required can be linked to a single person </li></ul></ul><ul><ul><li>One people, various identities </li></ul></ul><ul><li>Users create and manage content: </li></ul><ul><ul><li>has_creator and has_modifier properties </li></ul></ul><ul><ul><li>:blogpost123 sioc:has_creator :john </li></ul></ul>
  44. A person and their user accounts
  45. + SKOS for topics and categories <ul><li>Interlinking using common categories: </li></ul><ul><ul><li>Share tags and topics across different content </li></ul></ul><ul><li>SKOS (Simple Knowledge Organisation System): </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>A vocabulary to describe controlled vocabularies </li></ul></ul><ul><ul><li>Used in the “Tag Ontology”: http://www. holygoat .co. uk/projects/tags/ </li></ul></ul>
  46. Interlinking content with SKOS <ul><li>skos:isSubjectOf </li></ul><ul><li>sioc:topic </li></ul>
  47. Interlinking content items <ul><li>Can create direct links between instances of sioc:Item: </li></ul><ul><ul><li>Link from a blog post to a bulletin board page </li></ul></ul><ul><ul><li>sioc:related_to, sioc:links_to </li></ul></ul><ul><li>Interlinking using common categories: </li></ul><ul><ul><li>SKOS (Simple Knowledge Organisation System): </li></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><li>Interlink using existing URIs as topics: </li></ul><ul><ul><li>, DBpedia, Revyu </li></ul></ul><ul><ul><li>MOAT (Meaning of a Tag) simplifies linking content to such URIs: </li></ul></ul><ul><ul><ul><li> </li></ul></ul></ul>
  48. Producing SW d ata from s ocial m edia s ites <ul><li>We can use SIOC as a common framework / data model for expressing s ocial m edia data on the Semantic Web </li></ul><ul><li>The “ SIOC Types ” module: </li></ul><ul><ul><li>Additional classes and properties for expressing different kinds of s ocial m edia / Web 2.0 content </li></ul></ul><ul><ul><li>Connects SIOC with domain-specific ontologies </li></ul></ul><ul><li>Reus e existing ontologies: </li></ul><ul><ul><li>Dublin Core, FOAF, SKOS, etc. </li></ul></ul>
  49. SIOC d ata p roducers <ul><li>SIOC a pplications l ist : </li></ul><ul><ul><li> </li></ul></ul><ul><li>> 20 a pplications for p roducing SIOC d ata : </li></ul><ul><ul><li>F ree and o pen s ource </li></ul></ul><ul><li>SIOC e xport t ools for: </li></ul><ul><ul><li>Blogs and forums: WordPress, phpBB, Drupal, b2evolution </li></ul></ul><ul><ul><li>“ Legacy” applications: m ailing lists, IRC </li></ul></ul><ul><ul><li>New media: Twitter, Jaiku , Facebook, Flickr </li></ul></ul><ul><ul><li>Enterprise applications: CWE (collaborative work environments) </li></ul></ul>
  50. Case studies <ul><li>WordPress SIOC exporter: </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>First SIOC plugin created, custom built </li></ul></ul><ul><li>vBulletin and phpBB SIOC exporters: </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Uses SIOC API for PHP </li></ul></ul>
  51. Overview of WordPress SIOC exporter <ul><li>Installation: </li></ul><ul><ul><li>Download from </li></ul></ul><ul><ul><li>“ Drop” two files into the WordPress plugins folder </li></ul></ul><ul><ul><li>Go to the administrator’s user interface </li></ul></ul><ul><ul><li>Plugins -> SIOC Plugin -> “Activate” </li></ul></ul><ul><li>SIOC data created for every page: </li></ul><ul><ul><li>Data describing all blog posts, comments, users, etc. </li></ul></ul><ul><ul><li>SIOC data can be discovered via RDF autodiscovery links: </li></ul></ul><ul><ul><li><link rel=&quot;meta&quot; type=&quot;application/rdf+xml&quot; title=&quot;SIOC&quot; href=&quot;; /> </li></ul></ul><ul><li>Data can be explored or crawled using existing Semantic Web applications </li></ul>
  52. Sample export of SIOC data from WordPress
  53. RDF data from the WordPress export plugin, displayed in the SIOC Browser
  54. SIOC export APIs <ul><li>Benefits: </li></ul><ul><ul><li>Hides the complexity from application developers </li></ul></ul><ul><ul><li>Can be used by people who are not Semantic Web experts </li></ul></ul><ul><ul><li>Automatically updated according to changes in the SIOC ontology and best practices documents </li></ul></ul><ul><li>Existing SIOC APIs: </li></ul><ul><ul><li>Java </li></ul></ul><ul><ul><li>Perl (new!) </li></ul></ul><ul><ul><li>PHP (most used) </li></ul></ul><ul><ul><li>RDFa on Rails </li></ul></ul><ul><li>See “2.1 SIOC APIs” in </li></ul>
  55. Using SIOC and FOAF to represent portable data
  56. WordPress SIOC Import plugin <ul><li> </li></ul><ul><ul><li>see the wiki for a detailed information </li></ul></ul><ul><li>Download, unzip, activate </li></ul><ul><li>Import some data (Admin -> Options -> SIOC Import) </li></ul><ul><ul><li>SIOC data (external) from </li></ul></ul><ul><ul><li>SIOC data (embedded RDFa) from </li></ul></ul>
  57. Moving SIOC data between sites <ul><li>Importing SIOC data is easy: </li></ul><ul><ul><li>Parse SIOC RDF data (e.g. using ARC2 or RAP for PHP) </li></ul></ul><ul><ul><li>Convert SIOC data to the content model of the target system : </li></ul></ul><ul><ul><ul><li>e.g. content and other properties of blog posts and comments </li></ul></ul></ul><ul><ul><li>Store data in the target application : </li></ul></ul><ul><ul><ul><li>T he most difficult part  </li></ul></ul></ul><ul><ul><ul><li>Wordpress plugin </li></ul></ul></ul>
  59. How can you use and extend it? <ul><li>Horizontal scaling </li></ul><ul><ul><li>Import / copy / move whole sites </li></ul></ul><ul><li>More intelligent import </li></ul><ul><ul><li>Matching categories, users to those already on the site </li></ul></ul><ul><li>Combine with messaging / pubsub </li></ul><ul><ul><li>Use RDF (SIOC+FOAF+…) for data transferred via XMPP </li></ul></ul><ul><li>How would you use it? </li></ul><ul><ul><li>This demo was just a proof-of-concept </li></ul></ul><ul><ul><li>More exciting use cases are ahead </li></ul></ul>
  60. Summary
  61. Summary <ul><li>Data portability is an important issue </li></ul><ul><ul><li>Many networks, many friends, many contributions </li></ul></ul><ul><ul><li>Distributed in proprietary data silos </li></ul></ul><ul><li>Open up the silos, open your data </li></ul><ul><ul><li>Use standards API and languages to get your data </li></ul></ul><ul><li>SIOC + FOAF = a part of the Data Portability toolbox </li></ul><ul><ul><li>Combination of open, lightweight data formats </li></ul></ul><ul><ul><li>Extensible with domain specific ontologies </li></ul></ul><ul><ul><li>Linked Data </li></ul></ul>
  62. Future Events <ul><li>Scripting for the Semantic Web (SFSW 2008) </li></ul><ul><ul><li>Workshop with many interesting contributions </li></ul></ul><ul><ul><li>Full papers already available online </li></ul></ul><ul><ul><ul><li>E.g., “Microblogging: A Semantic Web and Distributed Approach” </li></ul></ul></ul><ul><ul><li>Date / Location: June 2008 - Tenerife, Spain </li></ul></ul><ul><ul><li> </li></ul></ul><ul><li>Social Data on the Web (SDoW 2008) </li></ul><ul><ul><li>Workshop combining the Social Web and Semantic Web </li></ul></ul><ul><ul><li>Awaiting contributions, paper submission open </li></ul></ul><ul><ul><li>Date / Location: October 2008 - Karlsruhe, Germany </li></ul></ul><ul><ul><li> </li></ul></ul>
  63. Towards a Social Semantic Web ! <ul><li>Vocabularies and tools (APIs, producers…) already exist </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li>There must be something you can use </li></ul></ul><ul><li>Join us and contribute ! </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>#sioc on </li></ul></ul><ul><ul><li>sioc-dev on google-groups </li></ul></ul>
  64. Contacts <ul><li>Uldis Boj ā rs </li></ul><ul><ul><li>[email_address] // </li></ul></ul><ul><li>Alexandre Passant </li></ul><ul><ul><li>[email_address] // </li></ul></ul><ul><li>John Breslin </li></ul><ul><ul><li>[email_address] // </li></ul></ul><ul><li>Thanks to: </li></ul><ul><ul><li>Dan Brickley (FOAF) for his valuable comments </li></ul></ul><ul><ul><li>Tuuka Hastrup and Thomas Schandl for work on evolving the SIOC Import plugin </li></ul></ul>