A platform to build  real-time social   applications Diana Cheng (formerly also: Laurent Eschenauer and Alard Weisscher) Over The Air - London, September 10, 2010
Diana Cheng Vodafone Group R&D @daianacheng [email_address] [email_address]
 
 
 
 
 
 
 
Onesocialweb : a free, open and decentralized social networking platform
The menu for today High level overview Demo Protocol and data models Hands on with the API Q&A
The menu for today High level overview Demo Protocol and data models Hands on with the API Q&A
Can we make social communications as simple and universal as email ? Facebook 360 MySpace Google whatever.com Friending and following across networks
One identity and yet multiple communities
Data portability
A lot of activities in this field... … but no such platform yet
protocol platform user experience
A protocol based on open standards Identity, discovery & communication Data model for social objects Data model for profiles Data model for relationships protocol XMPP Activitystreams VCard XFN
[email_address] [email_address] wonderland.lit realworld.com Post a new item to her stream Architecture: federated client-server e.g. Alice updates her status protocol
[email_address] [email_address] wonderland.lit realworld.com Push notifications to recipients Architecture: federated client-server e.g. Alice updates her status protocol
[email_address] [email_address] wonderland.lit realworld.com Real-time notifications Architecture: federated client-server e.g. Alice updates her status protocol
[email_address] wonderland.lit realworld.com Request profile of bob@realworld.com Architecture: federated client-server e.g. Alice looks up Bob's profile protocol
[email_address] wonderland.lit realworld.com Request is forwarded to Bob's domain on  [email_address]  behalf. Architecture: federated client-server e.g. Alice looks up Bob's profile protocol
[email_address] wonderland.lit realworld.com Bob's provider replies with the profile data that alice is allowed to see. Architecture: federated client-server e.g. Alice looks up Bob's profile protocol
[email_address] wonderland.lit realworld.com Result is sent back to the requesting client Architecture: federated client-server e.g. Alice looks up Bob's profile protocol
An open source platform End to end platform server backend, client libraries for desktop and mobile Open source Apache 2 license http://github.com/onesocialweb Java 30% code reuse between components Web client written in GWT (Java compiled to Javascript) platform Already available. Easy to setup. Join our growing community to experiment with us and get involved via our mailing list !
A social network user experience web client (HTML + JS) Android client user experience This is just one implementation of a social networking experience. Keep in mind that Onesocialweb is a  platform  enabling any kind of social applications.
The menu for today High level overview Demo Protocol and data models Hands on with the API Q&A
The menu for today High level overview Demo Protocol and data models Hands on with the API Q&A
XMPP
References XMPP: The definitive guide Peter Saint-Andre, Remko Troncon, Kevin Smith O'Reilly 1999 ISBN: 978-0-596-52126-4 XMPP 101 Peter Saint-Andre & Remko Troncon FOSDEM 2009 http://el-tramo.be/blog/xmpp-101-fosdem XMPP
Architecture Web is a browser (thin client) – server architecture From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 wonderland.lit web server realworld.com web server browser XMPP
Architecture Email is client – server with multi-hop federation From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 wonderland.lit email server realworld.com email server email client [email_address] between.org email server email client [email_address] XMPP
Architecture XMPP is a client – server with single hop federation From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 wonderland.lit xmpp server realworld.com xmpp server xmpp client [email_address] xmpp client [email_address] XMPP
Similar to email Addressing User    Domain alice @ wonderland.lit Bare JID (Jabber ID) From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
Similar to email – with an added resource Addressing User    Domain   Resource alice @ wonderland.lit / rabbithole Full JID (Jabber ID) From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
Streaming XML  <stream: stream> <presence/> <iq type=&quot;get&quot;> <query xmlns=&quot;jabber:iq:roster&quot;/> </iq> <iq type=&quot;result&quot;> <query xmlns=&quot;jabber:iq:roster&quot;> <item jid=&quot;alice@wonderland.lit&quot;/> <item jid=&quot;madhatter@wonderland.lit&quot;/> <item jid=&quot;whiterabbit@wonderland.lit&quot;/> </query> </iq> <message from=&quot;queen@wonderland.lit&quot; to=&quot;madhatter@wonderland.lit&quot;> <body>Off with his head!</body> </message> <message from=&quot; [email_address] &quot; to=&quot;party@conference.wonderland.lit&quot;> <body>You are all pardoned.</body> </message> <presence type=&quot;unavailable&quot;/> </stream: stream> From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
Communication based on three “stanzas” <message /> <presence /> <iq /> From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
Message stanza <message from=&quot;queen@wonderland.lit&quot;    to=&quot;madhatter@wonderland.lit&quot;> <body>Off with his head!</body> </message> One to one messaging (from & to addresses) Different types of messages (chat, headline, error, …) Basic payload of subject and body From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
Presence stanza <presence from=&quot;alice@wonderland.lit&quot;> <show>xa</show> <status>down the rabbit hole !</status> </presence> Advertise network availability Rich presence (away, available for chat...) Rich status (a free text entry) Typically used for rosters in IM use cases From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
IQ stanza <iq type=&quot;get&quot;> <query xmlns=&quot;jabber:iq:roster&quot;/> </iq> <iq type=&quot;result&quot;> <query xmlns=&quot;jabber:iq:roster&quot;> <item jid=&quot;alice@wonderland.lit&quot;/> <item jid=&quot;madhatter@wonderland.lit&quot;/> <item jid=&quot;whiterabbit@wonderland.lit&quot;/> </query> </iq> Request/response Enable querying and editing of resources Similar to HTTP GET & HTTP POST From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
e X tensible  MPP Any child XML element can be used as a payload, using XML namespaces to manage scope <message from=&quot;queen@wonderland.lit&quot;    to=&quot;madhatter@wonderland.lit&quot;> <body>Off with his head!</body> < entry  xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <published>2010-01-13T12:40:51.292Z</published> <author> <name>The Queen</name> </author> <title>Message from the Queen</title> <content type='html'> Off with his <b>head</b>! </content> </message> From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
Long-lived connection & asynchronous Web world is synchronous - send request - wait for answer - receive response XMPP is  a synchronous - long lived connections - event based messaging From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
Why XMPP for Onesocialweb ? Only technology to achieve such a federation seamlessly: Identity ( [email_address] )
Security (TLS and S2S with dialback)
Discovery (XMPP Disco)
Useful extensions (Roster, PubSub, …) Doing the same in the web world requires to assemble: OpenID (identity)
Oauth (authentication and authorization)
Webfinger (discovery and openid on en email)
Pubsubhubbub (server to server push notifications)
Salmon (messaging and commenting)
…  and to address a lot of other issues (e.g. Privacy, NAT clients)
Activitystrea.ms
References http://activitystrea.ms The Open and Social Web Chris Messina Google I/O 2010 http://code.google.com/events/io/2010/sessions/open-and-social-web.html Activitystreams
The need for machine readable data 1999 – Introduction of RSS <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <rss version=&quot;2.0&quot;> <channel> <item> <title>When Will Location-Based Coupons Take Off?</title> <link>http://bits.blogs.nytimes.com/2010/03/12/when-will- location-based-mobile-coupons-take-off/</link> <pubDate>Fri, 12 Mar 2010 21:38:26 +0000</pubDate> <creator>By CLAIRE CAIN MILLER</creator> <description> People want to receive location-based cellphone coupons, but most have not, according to a Web analytics firm. </description> </item> </channel> </rss> title  +  link  +  description From: The Open and Social web,  Chris Messina , Google I/O 2010
The need for machine readable data 2005 – Atom addresses some of the shortcomings <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <feed xmlns=&quot;http://www.w3.org/2005/Atom&quot;> <entry> <title>When Will Location-Based Coupons Take Off?</title> <link rel=”alternate”>http://bits.blogs.nytimes.com/2010/03/12/when-will- location-based-mobile-coupons-take-off/</link> <id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id> <updated>Fri, 12 Mar 2010 21:38:26 +0000</updated> <author> <name>By CLAIRE CAIN MILLER</name> </author> <summary> People want to receive location-based cellphone coupons, but most have not, according to a Web analytics firm. </summary> </entry> </feed> title   +   link   +   summary   + author  +  id  +  updated From: The Open and Social web,  Chris Messina , Google I/O 2010
Yet, no common way to describe rich social interactions... leading to proprietary data models title + link + summary + author + id + updated
Activitystreams provides a common language to describe social interactions... actor   verb  object  target
Activitystreams provides a common language to describe social interactions... eschnou   posted  a note
Activitystreams provides a common language to describe social interactions... eschnou  posted a  picture  to an album
Activitystreams provides a common language to describe social interactions... eschnou   liked  a video
… building upon existing Atom elements title + link + summary + author  + id + updated + verb  +  object-type  +  target
… building upon existing Atom elements <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <feed  xmlns= &quot;http://www.w3.org/2005/Atom&quot;  xmlns:activity= &quot;http://activitystrea.ms/spec/1.0/&quot; > <entry> <title> ... </title> <link rel=”alternate”> ... </link> <id> ... </id> <updated> ... </updated> <author> <activity:object-type> person </activity:object-type> <name> ... </name> </author> <activity:verb> post </activity:verb> <activity:object> <activity:object-type> note </activity:object-type> <content  type= ”html” > ... </content> </activity:object> </entry> </feed> From: The Open and Social web,  Chris Messina , Google I/O 2010
Onesocialweb extends this further with context data and access control rules actor   verb  object  target  context   access-control
Onesocialweb extends it further with context data and access control rules eschnou   took   a picture  in Barcelona , it can be seen visible by 'friends'
Putting it all together
Juliet updates her status “ O Romeo, Romeo, wherefore art thou Romeo ?”
<iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'> <pubsub xmlns=&quot; http://jabber.org/protocol/pubsub &quot;> <publish node=”urn:xmpp:microblog:0”> <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot;  xmlns:activity=&quot;http://activitystrea.ms/spec/1.0/&quot;  xmlns:osw=&quot;http://onesocialweb.org/spec/1.0/&quot;> <title>O Romeo, Romeo, wherefore art thou Romeo?</title> <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb> <activity:object> <activity:object-type> http://activitystrea.ms/schema/1.0/status </activity:object-type> <content>O Romeo, Romeo, wherefore art thou Romeo?</content> </activity:object> <osw:acl-rule> <osw:acl-action permission=&quot;http://onesocialweb.org/spec/1.0/acl/permission/grant&quot;> http://onesocialweb.org/spec/1.0/acl/action/view </osw:acl-action> <osw:acl-subject>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject> </osw:acl-rule> </entry> </publish> </pubsub> </iq >
<iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'> <pubsub xmlns=&quot; http://jabber.org/protocol/pubsub &quot;> <publish node=”urn:xmpp:microblog:0”> <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot;  xmlns:activity=&quot;http://activitystrea.ms/spec/1.0/&quot;  xmlns:osw=&quot;http://onesocialweb.org/spec/1.0/&quot;> <title>O Romeo, Romeo, wherefore art thou Romeo?</title> <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb> <activity:object> <activity:object-type> http://activitystrea.ms/schema/1.0/status </activity:object-type> <content>O Romeo, Romeo, wherefore art thou Romeo?</content> </activity:object> <osw:acl-rule> <osw:acl-action permission=&quot;http://onesocialweb.org/spec/1.0/acl/permission/grant&quot;> http://onesocialweb.org/spec/1.0/acl/action/view </osw:acl-action> <osw:acl-subject>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject> </osw:acl-rule> </entry> </publish> </pubsub> </iq >

Onesocialweb Presentation at OTA10

  • 1.
    A platform tobuild real-time social applications Diana Cheng (formerly also: Laurent Eschenauer and Alard Weisscher) Over The Air - London, September 10, 2010
  • 2.
    Diana Cheng VodafoneGroup R&D @daianacheng [email_address] [email_address]
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
    Onesocialweb : afree, open and decentralized social networking platform
  • 11.
    The menu fortoday High level overview Demo Protocol and data models Hands on with the API Q&A
  • 12.
    The menu fortoday High level overview Demo Protocol and data models Hands on with the API Q&A
  • 13.
    Can we makesocial communications as simple and universal as email ? Facebook 360 MySpace Google whatever.com Friending and following across networks
  • 14.
    One identity andyet multiple communities
  • 15.
  • 16.
    A lot ofactivities in this field... … but no such platform yet
  • 17.
  • 18.
    A protocol basedon open standards Identity, discovery & communication Data model for social objects Data model for profiles Data model for relationships protocol XMPP Activitystreams VCard XFN
  • 19.
    [email_address] [email_address] wonderland.litrealworld.com Post a new item to her stream Architecture: federated client-server e.g. Alice updates her status protocol
  • 20.
    [email_address] [email_address] wonderland.litrealworld.com Push notifications to recipients Architecture: federated client-server e.g. Alice updates her status protocol
  • 21.
    [email_address] [email_address] wonderland.litrealworld.com Real-time notifications Architecture: federated client-server e.g. Alice updates her status protocol
  • 22.
    [email_address] wonderland.lit realworld.comRequest profile of bob@realworld.com Architecture: federated client-server e.g. Alice looks up Bob's profile protocol
  • 23.
    [email_address] wonderland.lit realworld.comRequest is forwarded to Bob's domain on [email_address] behalf. Architecture: federated client-server e.g. Alice looks up Bob's profile protocol
  • 24.
    [email_address] wonderland.lit realworld.comBob's provider replies with the profile data that alice is allowed to see. Architecture: federated client-server e.g. Alice looks up Bob's profile protocol
  • 25.
    [email_address] wonderland.lit realworld.comResult is sent back to the requesting client Architecture: federated client-server e.g. Alice looks up Bob's profile protocol
  • 26.
    An open sourceplatform End to end platform server backend, client libraries for desktop and mobile Open source Apache 2 license http://github.com/onesocialweb Java 30% code reuse between components Web client written in GWT (Java compiled to Javascript) platform Already available. Easy to setup. Join our growing community to experiment with us and get involved via our mailing list !
  • 27.
    A social networkuser experience web client (HTML + JS) Android client user experience This is just one implementation of a social networking experience. Keep in mind that Onesocialweb is a platform enabling any kind of social applications.
  • 28.
    The menu fortoday High level overview Demo Protocol and data models Hands on with the API Q&A
  • 29.
    The menu fortoday High level overview Demo Protocol and data models Hands on with the API Q&A
  • 30.
  • 31.
    References XMPP: Thedefinitive guide Peter Saint-Andre, Remko Troncon, Kevin Smith O'Reilly 1999 ISBN: 978-0-596-52126-4 XMPP 101 Peter Saint-Andre & Remko Troncon FOSDEM 2009 http://el-tramo.be/blog/xmpp-101-fosdem XMPP
  • 32.
    Architecture Web isa browser (thin client) – server architecture From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 wonderland.lit web server realworld.com web server browser XMPP
  • 33.
    Architecture Email isclient – server with multi-hop federation From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 wonderland.lit email server realworld.com email server email client [email_address] between.org email server email client [email_address] XMPP
  • 34.
    Architecture XMPP isa client – server with single hop federation From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 wonderland.lit xmpp server realworld.com xmpp server xmpp client [email_address] xmpp client [email_address] XMPP
  • 35.
    Similar to emailAddressing User Domain alice @ wonderland.lit Bare JID (Jabber ID) From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 36.
    Similar to email– with an added resource Addressing User Domain Resource alice @ wonderland.lit / rabbithole Full JID (Jabber ID) From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 37.
    Streaming XML <stream: stream> <presence/> <iq type=&quot;get&quot;> <query xmlns=&quot;jabber:iq:roster&quot;/> </iq> <iq type=&quot;result&quot;> <query xmlns=&quot;jabber:iq:roster&quot;> <item jid=&quot;alice@wonderland.lit&quot;/> <item jid=&quot;madhatter@wonderland.lit&quot;/> <item jid=&quot;whiterabbit@wonderland.lit&quot;/> </query> </iq> <message from=&quot;queen@wonderland.lit&quot; to=&quot;madhatter@wonderland.lit&quot;> <body>Off with his head!</body> </message> <message from=&quot; [email_address] &quot; to=&quot;party@conference.wonderland.lit&quot;> <body>You are all pardoned.</body> </message> <presence type=&quot;unavailable&quot;/> </stream: stream> From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 38.
    Communication based onthree “stanzas” <message /> <presence /> <iq /> From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 39.
    Message stanza <messagefrom=&quot;queen@wonderland.lit&quot; to=&quot;madhatter@wonderland.lit&quot;> <body>Off with his head!</body> </message> One to one messaging (from & to addresses) Different types of messages (chat, headline, error, …) Basic payload of subject and body From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 40.
    Presence stanza <presencefrom=&quot;alice@wonderland.lit&quot;> <show>xa</show> <status>down the rabbit hole !</status> </presence> Advertise network availability Rich presence (away, available for chat...) Rich status (a free text entry) Typically used for rosters in IM use cases From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 41.
    IQ stanza <iqtype=&quot;get&quot;> <query xmlns=&quot;jabber:iq:roster&quot;/> </iq> <iq type=&quot;result&quot;> <query xmlns=&quot;jabber:iq:roster&quot;> <item jid=&quot;alice@wonderland.lit&quot;/> <item jid=&quot;madhatter@wonderland.lit&quot;/> <item jid=&quot;whiterabbit@wonderland.lit&quot;/> </query> </iq> Request/response Enable querying and editing of resources Similar to HTTP GET & HTTP POST From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 42.
    e X tensible MPP Any child XML element can be used as a payload, using XML namespaces to manage scope <message from=&quot;queen@wonderland.lit&quot; to=&quot;madhatter@wonderland.lit&quot;> <body>Off with his head!</body> < entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <published>2010-01-13T12:40:51.292Z</published> <author> <name>The Queen</name> </author> <title>Message from the Queen</title> <content type='html'> Off with his <b>head</b>! </content> </message> From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 43.
    Long-lived connection &asynchronous Web world is synchronous - send request - wait for answer - receive response XMPP is a synchronous - long lived connections - event based messaging From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009 XMPP
  • 44.
    Why XMPP forOnesocialweb ? Only technology to achieve such a federation seamlessly: Identity ( [email_address] )
  • 45.
    Security (TLS andS2S with dialback)
  • 46.
  • 47.
    Useful extensions (Roster,PubSub, …) Doing the same in the web world requires to assemble: OpenID (identity)
  • 48.
  • 49.
    Webfinger (discovery andopenid on en email)
  • 50.
    Pubsubhubbub (server toserver push notifications)
  • 51.
  • 52.
    … andto address a lot of other issues (e.g. Privacy, NAT clients)
  • 53.
  • 54.
    References http://activitystrea.ms TheOpen and Social Web Chris Messina Google I/O 2010 http://code.google.com/events/io/2010/sessions/open-and-social-web.html Activitystreams
  • 55.
    The need formachine readable data 1999 – Introduction of RSS <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <rss version=&quot;2.0&quot;> <channel> <item> <title>When Will Location-Based Coupons Take Off?</title> <link>http://bits.blogs.nytimes.com/2010/03/12/when-will- location-based-mobile-coupons-take-off/</link> <pubDate>Fri, 12 Mar 2010 21:38:26 +0000</pubDate> <creator>By CLAIRE CAIN MILLER</creator> <description> People want to receive location-based cellphone coupons, but most have not, according to a Web analytics firm. </description> </item> </channel> </rss> title + link + description From: The Open and Social web, Chris Messina , Google I/O 2010
  • 56.
    The need formachine readable data 2005 – Atom addresses some of the shortcomings <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <feed xmlns=&quot;http://www.w3.org/2005/Atom&quot;> <entry> <title>When Will Location-Based Coupons Take Off?</title> <link rel=”alternate”>http://bits.blogs.nytimes.com/2010/03/12/when-will- location-based-mobile-coupons-take-off/</link> <id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id> <updated>Fri, 12 Mar 2010 21:38:26 +0000</updated> <author> <name>By CLAIRE CAIN MILLER</name> </author> <summary> People want to receive location-based cellphone coupons, but most have not, according to a Web analytics firm. </summary> </entry> </feed> title + link + summary + author + id + updated From: The Open and Social web, Chris Messina , Google I/O 2010
  • 57.
    Yet, no commonway to describe rich social interactions... leading to proprietary data models title + link + summary + author + id + updated
  • 58.
    Activitystreams provides acommon language to describe social interactions... actor verb object target
  • 59.
    Activitystreams provides acommon language to describe social interactions... eschnou posted a note
  • 60.
    Activitystreams provides acommon language to describe social interactions... eschnou posted a picture to an album
  • 61.
    Activitystreams provides acommon language to describe social interactions... eschnou liked a video
  • 62.
    … building uponexisting Atom elements title + link + summary + author + id + updated + verb + object-type + target
  • 63.
    … building uponexisting Atom elements <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <feed xmlns= &quot;http://www.w3.org/2005/Atom&quot; xmlns:activity= &quot;http://activitystrea.ms/spec/1.0/&quot; > <entry> <title> ... </title> <link rel=”alternate”> ... </link> <id> ... </id> <updated> ... </updated> <author> <activity:object-type> person </activity:object-type> <name> ... </name> </author> <activity:verb> post </activity:verb> <activity:object> <activity:object-type> note </activity:object-type> <content type= ”html” > ... </content> </activity:object> </entry> </feed> From: The Open and Social web, Chris Messina , Google I/O 2010
  • 64.
    Onesocialweb extends thisfurther with context data and access control rules actor verb object target context access-control
  • 65.
    Onesocialweb extends itfurther with context data and access control rules eschnou took a picture in Barcelona , it can be seen visible by 'friends'
  • 66.
  • 67.
    Juliet updates herstatus “ O Romeo, Romeo, wherefore art thou Romeo ?”
  • 68.
    <iq type='set' from='juliet@capulet.lit/mobile'to='capulet.lit' id='osw1'> <pubsub xmlns=&quot; http://jabber.org/protocol/pubsub &quot;> <publish node=”urn:xmpp:microblog:0”> <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:activity=&quot;http://activitystrea.ms/spec/1.0/&quot; xmlns:osw=&quot;http://onesocialweb.org/spec/1.0/&quot;> <title>O Romeo, Romeo, wherefore art thou Romeo?</title> <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb> <activity:object> <activity:object-type> http://activitystrea.ms/schema/1.0/status </activity:object-type> <content>O Romeo, Romeo, wherefore art thou Romeo?</content> </activity:object> <osw:acl-rule> <osw:acl-action permission=&quot;http://onesocialweb.org/spec/1.0/acl/permission/grant&quot;> http://onesocialweb.org/spec/1.0/acl/action/view </osw:acl-action> <osw:acl-subject>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject> </osw:acl-rule> </entry> </publish> </pubsub> </iq >
  • 69.
    <iq type='set' from='juliet@capulet.lit/mobile'to='capulet.lit' id='osw1'> <pubsub xmlns=&quot; http://jabber.org/protocol/pubsub &quot;> <publish node=”urn:xmpp:microblog:0”> <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:activity=&quot;http://activitystrea.ms/spec/1.0/&quot; xmlns:osw=&quot;http://onesocialweb.org/spec/1.0/&quot;> <title>O Romeo, Romeo, wherefore art thou Romeo?</title> <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb> <activity:object> <activity:object-type> http://activitystrea.ms/schema/1.0/status </activity:object-type> <content>O Romeo, Romeo, wherefore art thou Romeo?</content> </activity:object> <osw:acl-rule> <osw:acl-action permission=&quot;http://onesocialweb.org/spec/1.0/acl/permission/grant&quot;> http://onesocialweb.org/spec/1.0/acl/action/view </osw:acl-action> <osw:acl-subject>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject> </osw:acl-rule> </entry> </publish> </pubsub> </iq >