SlideShare ist ein Scribd-Unternehmen logo
1 von 20
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
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)
XMPP in a nutshell… ,[object Object]
 XML-based protocol for IM (chat, buddylists, real time messaging)
 Almost entirely unlike SOAP and IRC (but a bit like both)
 Used in products from Google, Apple and tools like GAIM/Pidgin
 Healthy range of toolkits – servers, clients and libraries
 All Google accounts; all Hyves accounts, …
 Bewildering and impressive range of extensions (XEPs), e.g.
XEP-0166: Jingle, ‘peer-to-peer media sessions’ (e.g. Google Talk)
 XEP-0060: Publish-Subscribe
 XEP-0174: Local LAN dns-based discovery and point-to-point links
 XEP-0059: Result Set management
XEP-0235: OAuth Over XMPP
XEP-0045: Multi-User Chat
 XEP-0275: ‘Entity reputation’
 many more…,[object Object]
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)
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>  </iq>  (from bandri@livejournal.com )
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.}  </query>  </iq>

Weitere ähnliche Inhalte

Ähnlich wie XMPP, TV and the Semantic Web

Real-time Ruby for the Real-time Web
Real-time Ruby for the Real-time WebReal-time Ruby for the Real-time Web
Real-time Ruby for the Real-time WebIlya Grigorik
 
XMPP For Cloud Computing
XMPP For Cloud ComputingXMPP For Cloud Computing
XMPP For Cloud ComputingBluendo
 
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)Jared Ottley
 
The Semantic Web An Introduction
The Semantic Web An IntroductionThe Semantic Web An Introduction
The Semantic Web An Introductionshaouy
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)Kevin Gill
 
Accelerating Big Data beyond the JVM - Fosdem 2018
Accelerating Big Data beyond the JVM - Fosdem 2018Accelerating Big Data beyond the JVM - Fosdem 2018
Accelerating Big Data beyond the JVM - Fosdem 2018Holden Karau
 
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?Ronny
 
Jmp107 Web Services
Jmp107 Web ServicesJmp107 Web Services
Jmp107 Web Servicesdominion
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkSam Basu
 
Are general purpose big data systems eating the world?
Are general purpose big data systems eating the world?Are general purpose big data systems eating the world?
Are general purpose big data systems eating the world?Holden Karau
 
Jingle: Cutting Edge VoIP
Jingle: Cutting Edge VoIPJingle: Cutting Edge VoIP
Jingle: Cutting Edge VoIPmattjive
 
Big Data Beyond the JVM - Strata San Jose 2018
Big Data Beyond the JVM - Strata San Jose 2018Big Data Beyond the JVM - Strata San Jose 2018
Big Data Beyond the JVM - Strata San Jose 2018Holden Karau
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st CenturyGnu Alsonative
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st CenturyGnu Alsonative
 
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011Peter Lubbers
 

Ähnlich wie XMPP, TV and the Semantic Web (20)

Real-time Ruby for the Real-time Web
Real-time Ruby for the Real-time WebReal-time Ruby for the Real-time Web
Real-time Ruby for the Real-time Web
 
XMPP For Cloud Computing
XMPP For Cloud ComputingXMPP For Cloud Computing
XMPP For Cloud Computing
 
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
 
Communicating System
Communicating SystemCommunicating System
Communicating System
 
Xmppforcloudcomputing
XmppforcloudcomputingXmppforcloudcomputing
Xmppforcloudcomputing
 
The Semantic Web An Introduction
The Semantic Web An IntroductionThe Semantic Web An Introduction
The Semantic Web An Introduction
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
Accelerating Big Data beyond the JVM - Fosdem 2018
Accelerating Big Data beyond the JVM - Fosdem 2018Accelerating Big Data beyond the JVM - Fosdem 2018
Accelerating Big Data beyond the JVM - Fosdem 2018
 
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?
 
Code is art
Code is artCode is art
Code is art
 
Jmp107 Web Services
Jmp107 Web ServicesJmp107 Web Services
Jmp107 Web Services
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon Talk
 
Are general purpose big data systems eating the world?
Are general purpose big data systems eating the world?Are general purpose big data systems eating the world?
Are general purpose big data systems eating the world?
 
Jingle: Cutting Edge VoIP
Jingle: Cutting Edge VoIPJingle: Cutting Edge VoIP
Jingle: Cutting Edge VoIP
 
Os Tucker
Os TuckerOs Tucker
Os Tucker
 
Xmpp intro 2014
Xmpp intro 2014Xmpp intro 2014
Xmpp intro 2014
 
Big Data Beyond the JVM - Strata San Jose 2018
Big Data Beyond the JVM - Strata San Jose 2018Big Data Beyond the JVM - Strata San Jose 2018
Big Data Beyond the JVM - Strata San Jose 2018
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
 
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011
 

Mehr von Dan Brickley

"What is left to do?", Dublin Core 2012 Keynote
"What is left to do?", Dublin Core 2012 Keynote"What is left to do?", Dublin Core 2012 Keynote
"What is left to do?", Dublin Core 2012 KeynoteDan Brickley
 
APIs and URLs for Social TV
APIs and URLs for Social TVAPIs and URLs for Social TV
APIs and URLs for Social TVDan Brickley
 
Harmony project - JISC Synthesis meeting 2001
Harmony project - JISC Synthesis meeting 2001Harmony project - JISC Synthesis meeting 2001
Harmony project - JISC Synthesis meeting 2001Dan Brickley
 
SemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeSemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeDan Brickley
 
Describing Everything - Open Web standards and classification
Describing Everything - Open Web standards and classificationDescribing Everything - Open Web standards and classification
Describing Everything - Open Web standards and classificationDan Brickley
 
NoTube User Model slides
NoTube User Model slidesNoTube User Model slides
NoTube User Model slidesDan Brickley
 
Dagstuhl FOAF history talk
Dagstuhl FOAF history talkDagstuhl FOAF history talk
Dagstuhl FOAF history talkDan Brickley
 
NoTube: Investigating Lonclass
NoTube: Investigating LonclassNoTube: Investigating Lonclass
NoTube: Investigating LonclassDan Brickley
 
Understanding the Standards Gap
Understanding the Standards GapUnderstanding the Standards Gap
Understanding the Standards GapDan Brickley
 
Introducing Joost Widgets (2007 talk)
Introducing Joost Widgets (2007 talk)Introducing Joost Widgets (2007 talk)
Introducing Joost Widgets (2007 talk)Dan Brickley
 
BBC SemWeb panel: Where does OpenID fit in?
BBC SemWeb panel: Where does OpenID fit in?BBC SemWeb panel: Where does OpenID fit in?
BBC SemWeb panel: Where does OpenID fit in?Dan Brickley
 
How To Make Friends And Inference People
How To Make Friends And Inference PeopleHow To Make Friends And Inference People
How To Make Friends And Inference PeopleDan Brickley
 
One Big Happy Family
One Big Happy FamilyOne Big Happy Family
One Big Happy FamilyDan Brickley
 
Understanding RDF: the Resource Description Framework in Context (1999)
Understanding RDF: the Resource Description Framework in Context  (1999)Understanding RDF: the Resource Description Framework in Context  (1999)
Understanding RDF: the Resource Description Framework in Context (1999)Dan Brickley
 
"Whatever I can get..."
"Whatever I can get...""Whatever I can get..."
"Whatever I can get..."Dan Brickley
 

Mehr von Dan Brickley (18)

"What is left to do?", Dublin Core 2012 Keynote
"What is left to do?", Dublin Core 2012 Keynote"What is left to do?", Dublin Core 2012 Keynote
"What is left to do?", Dublin Core 2012 Keynote
 
APIs and URLs for Social TV
APIs and URLs for Social TVAPIs and URLs for Social TV
APIs and URLs for Social TV
 
Harmony project - JISC Synthesis meeting 2001
Harmony project - JISC Synthesis meeting 2001Harmony project - JISC Synthesis meeting 2001
Harmony project - JISC Synthesis meeting 2001
 
SemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeSemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in Practice
 
Describing Everything - Open Web standards and classification
Describing Everything - Open Web standards and classificationDescribing Everything - Open Web standards and classification
Describing Everything - Open Web standards and classification
 
NoTube User Model slides
NoTube User Model slidesNoTube User Model slides
NoTube User Model slides
 
Dagstuhl FOAF history talk
Dagstuhl FOAF history talkDagstuhl FOAF history talk
Dagstuhl FOAF history talk
 
NoTube: Investigating Lonclass
NoTube: Investigating LonclassNoTube: Investigating Lonclass
NoTube: Investigating Lonclass
 
Understanding the Standards Gap
Understanding the Standards GapUnderstanding the Standards Gap
Understanding the Standards Gap
 
Introducing Joost Widgets (2007 talk)
Introducing Joost Widgets (2007 talk)Introducing Joost Widgets (2007 talk)
Introducing Joost Widgets (2007 talk)
 
When?
When?When?
When?
 
BBC foaf talk
BBC foaf talkBBC foaf talk
BBC foaf talk
 
BBC SemWeb panel: Where does OpenID fit in?
BBC SemWeb panel: Where does OpenID fit in?BBC SemWeb panel: Where does OpenID fit in?
BBC SemWeb panel: Where does OpenID fit in?
 
How To Make Friends And Inference People
How To Make Friends And Inference PeopleHow To Make Friends And Inference People
How To Make Friends And Inference People
 
One Big Happy Family
One Big Happy FamilyOne Big Happy Family
One Big Happy Family
 
Foaf Openid Milan
Foaf Openid MilanFoaf Openid Milan
Foaf Openid Milan
 
Understanding RDF: the Resource Description Framework in Context (1999)
Understanding RDF: the Resource Description Framework in Context  (1999)Understanding RDF: the Resource Description Framework in Context  (1999)
Understanding RDF: the Resource Description Framework in Context (1999)
 
"Whatever I can get..."
"Whatever I can get...""Whatever I can get..."
"Whatever I can get..."
 

XMPP, TV and the Semantic Web

  • 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.
  • 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)
  • 12. XEP-0174: Local LAN dns-based discovery and point-to-point links
  • 13. XEP-0059: Result Set management
  • 16. XEP-0275: ‘Entity reputation’
  • 17.
  • 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> </iq> (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.} </query> </iq>
  • 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> <results> <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 danbrickley@gmail.com/photo_database 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"/> </query> </iq>
  • 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