XMPP, TV and the Semantic Web
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


XMPP, TV and the Semantic Web



A short talk about XMPP, for the WAI series of talks at VU.

A short talk about XMPP, for the WAI series of talks at VU.



Total Views
Views on SlideShare
Embed Views



3 Embeds 12

http://www.slideshare.net 10
http://duuit.com 1
http://www.linkedin.com 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

XMPP, TV and the Semantic Web Presentation Transcript

  • 1. XMPP, TV and the Semantic Web
    Or ‘how I got to work on something that wasn’t entirely about RDF for a change…’
    “This will be a very informal and very short talk tointroduce
    The XMPP (Jabber) internet protocol and some potentialimpact
    it has for TV and Semantic Web applications."
    Dan Brickley – VU WAI talk, Feb 1st 2010
  • 2. Extensible Messaging and Presence Protocol (XMPP)
    Open standard for Instant Messaging (IM) chat
    Alternative to vendor-specific closed networks
    Built opensource-style, then ratified at IETF
    How it works:
    userid@my.example.com ‘JIDs’
    Neverending 2-way conversation via servers
    XML ‘stanzas’ – e.g. chat or info/query messages
    Servers can be federated (eg. Google Talk) or standalone (eg. Hyves.nl)
  • 3. XMPP in a nutshell…
    • Developed and deployed for 10+ years
    • 4. XML-based protocol for IM (chat, buddylists, real time messaging)
    • 5. Almost entirely unlike SOAP and IRC (but a bit like both)
    • 6. Used in products from Google, Apple and tools like GAIM/Pidgin
    • 7. Healthy range of toolkits – servers, clients and libraries
    • 8. All Google accounts; all Hyves accounts, …
    • 9. Bewildering and impressive range of extensions (XEPs), e.g.
    • 10. XEP-0166: Jingle, ‘peer-to-peer media sessions’ (e.g. Google Talk)
    • 11. XEP-0060: Publish-Subscribe
    • 12. XEP-0174: Local LAN dns-based discovery and point-to-point links
    • 13. XEP-0059: Result Set management
    • 14. XEP-0235: OAuth Over XMPP
    • 15. XEP-0045: Multi-User Chat
    • 16. XEP-0275: ‘Entity reputation’
    • 17. many more…
  • Why care?
    XMPP can go where HTTP doesn’t
    bots, scripts and services can act for their human users
    XMPP’s ‘social graph’ interconnect sites (like email and FOAF, and unlike closed and proprietary ‘social networks’)
    Friendly and energetic developer community
    Save your time for inventing new things
  • 18. What does it look like?
    Two experimental uses:
    JqbusSPARQL experiments (FOAF project)
    ‘NoTube Network’ ideas for TV remotes (NoTube EU)
    Jqbus showed an experimental binding of RDF query (SPARQL) to XMPP
    How else can you send queries into home or laptop?
    Or filter them based on buddylist rules (colleagues, family)?
    Or allow for query results to arrive hours later?
    (if you don’t know SPARQL, think of it as
    SQL-ish query over linked RDF databases)
  • 19. Jqbus: sending a query
    <iq id="S3IG2-4" to="alice.notube@example.com/sparqlserver" type="get">
    <query xmlns='http://www.w3.org/2005/09/xmpp-sparql-binding'>
    PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt; SELECT DISTINCT ?o WHERE {?s foaf:name ?o.} </query>
    (from bandri@livejournal.com )
  • 20. Jqbus: a query arrives
    <iq id="40z5D-4" to="alice.notube@example.com/sparqlserver" from="bandri@livejournal.com/sparqlclient" type="get">
    <query xmlns="http://www.w3.org/2005/09/xmpp-sparql-binding">
    PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt; SELECT DISTINCT ?o WHERE {?s foaf:name ?o.}
  • 21. A response is sent…
    <iq id="40z5D-4" to="bandri@livejournal.com/sparqlclient" from="alice.notube@example.com/sparqlserver" type="result">
    <query-result xmlns="http://www.w3.org/2005/09/xmpp-sparql-binding">
    <sparql xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xs="http://www.w3.org/2001/XMLSchema#" xmlns="http://www.w3.org/2005/sparql-results#">
    <head><variable name="o"/> </head>
    <result> <binding name="o"> <literal>Libby Miller</literal> </binding> </result>
    <result> <binding name="o"> <literal>Tim Berners-Lee</literal> </binding> </result> <!-- ... more bindings here -->
    </results> </sparql> </query-result> </iq>
  • 22. …and is received.
    Messages can be directed or general
    Eg: to danbrickley@gmail.com or to
    Can be real-time or delayed
    Have practical limits on message size
    These SPARQL bindings should be redone
    Jingle specs help with bulky data and direct links
  • 23. Eg. 2: “Buttons” (NoTube Network)
    Work-in-progress ‘smart remote control’ protocol
    XMPP as controlled route thru NAT/firewall
    Attached to desktop ‘media centre’ software:
    Boxee / XBMC / Plex (TV-like full screen media)
    MythTV (linux-based PVR, uses DVB-T USB for TV)
    EyeTV (applescript-able OSX tool, also DVB-T)
    MediaPortal (Opensource C# software)
    Windows Media Centre (with .NET SDK)
    Itunes (applescript-able on OSX)
  • 24. What do these all have in common?
    A lot but not enough: chaos of different media-centre APIs and schemas
    Remotes tend to be dumb: sending clicks not commands, and no return-path for data…
    APIs allow basic navigation, play/pause, screenshot, EPG access, but via local PC or LAN
    Can diverse media centres share an API?
    Can we expose it over XMPP?
    Use it from smartphones? Multi-touch tables?
  • 25.
  • 26.
  • 27. A remote control with a buddylist?
    <iq to="alice.notube@gmail.com/0AEDD375" type="result">
    <query xmlns="jabber:iq:roster">
    <item jid="bob.notube@gmail.com" subscription="both”>
    <item jid="buttons@foaf.tv" subscription="both"/>
    <item jid="danbrickley@gmail.com" subscription="both”>
    <item jid="libby.miller@gmail.com" subscription="both"/>
    <item jid="yves.example @gmail.com" subscription="both"/>
  • 28. Maybe.
    Prototyped at the play/pause/ffwd level
    With Strophe.js and BOSH, can do HTML5 too!
    Can control Boxee and MythTV via XMPP
    Sample client running on iphone
    Server attached to xmpp:buttons@foaf.tv
    Remote attached to xmpp:bob.notube@gmail.com
    Very often super-fast; sometimes awkwardly slow
    Can we drop down from server-mediated comms?
  • 29. Maybe.
    XEP-0174 defines local network discovery
    And point-to-point XMPP comms (ie. not via gtalk!)
    As used in Apple’s Bonjour iChat local chat
    The Jingle specs also relevant here
    Other tricks for faster UI?
    Iphone motion sensor – if it’s moving, send a ping
    Design a protocol that sends commands not clicks
    But beware downloading megabytes of EPG TV data
  • 30. Service Discovery
    Web service discovery for real?
    Which of my buddys have VOIP support? Video?
    Which have RDF databases online?
    Or a TV / media centre connected?
    Which are on same LAN as me?
    How do we manage permissions for all this?
  • 31. Presence and capabilities
    <presence from=”example.buddy@gmail.com/BitlBee82551989" to="alice.notube@gmail.com/0AEDD375">
    […] </presence>
    <caps:c node="http://mail.google.com/xmpp/client/caps" ver="1.1" ext="pmuc-v1 sms-v1" xmlns:caps="http://jabber.org/protocol/caps"/>
  • 32. Summary
    XMPP – the basics just work
    Lots of libraries / tools
    Helpful, friendly community
    Focal point for problem-sharing
    Tread carefully
    Navigating the maze of interesting extensions
    Guessing which toolkit to bet on for your needs
    Learning the landscape and what to rely on
  • 33. Questions?
    Or to danbri@few.vu.nl
    MythTV / iChat demo: Libby Miller
    Draft iPhone graphics: Vicky Buser
    NoTube project: www.notube.tv