Community & Business Groups

Read Write Web Community Group

The activity of this group is to apply Web standards to trusted read and write operations.

Note: Community Groups are proposed and run by the community. Although W3C hosts these conversations, the groups do not necessarily represent the views of the W3C Membership or staff.

No Reports Yet Published

Learn more about publishing.

Chairs, when logged in, may publish draft and final reports. Please see report requirements.

Publish Reports

Tabulator — Creating a New Pane — Part 2

Last week, we looked at how to create a new tabulator pane.  The first part was just a template, without any real content.  This time we will look at how to add a pane for a specific object type and to query the object’s fields and display them in the pane.  If you havent already completed the first part, go back and follow the instructions to make a new file microblogPostPane.js.  This is the file we’ll be editing in this part.

Step 1 — Only Display an Icon for Microblog Posts

Previously we would display our microblog icon in all cases.  We would rather only show the icon when we are looking at a microblog post.  Instead of the if (true) condition we had in the label() function we will now replace it with:

The kb.whether function will test whether we are looking at something of type SIOC MicroblogPost.  More on the kb later.

Step 2 — Initialize the Render Function

The first thing to initialize is the tabulator knowledge base.  The following code will go in the render() function.

The knowledge base is an indexed database of all the information you will store.  It allows many features such as fast querying and utility functions.  As you browse the web of data, the knowledge base is automatically populated.   The next thing we will do is set up namespaces.

Once we have the knowledge base in place, we add the popular namespaces for the FOAF, dublin core and SIOC ontologies.

Step 3 — Query the Knowledge Base

We will use the kb.any function to get the values of data points for our microblog post.  The function queries the knowledge base in a similar way to NoSQL or map reduce style databases.  In this case we will get the avatar, name, content and date of the microblog post.

Now that we have our data we can go ahead and display it.

Step 4 — Draw the Pane

Now that we have our data, all that’s left is to draw the microblog post.  I’m using a simple native javascript commands of createElement, createTextNode and appendChild.  However tabulator also works with jQuery too.

The basic styles live in an existing file, mbStyle.css, so I have just reused that.

Step 5 — Test the Microblog Post

If all has gone well your file should look like the following gist.  When clicking on a microblog post such as this test post, you should see something like the image above.


We’ve seen how to add a simple pane to The Tabulator, how to set up and query the knowledge base, and how to display a new pane in the tabulator.  In future blogs we will show how to use Tabuator’s read and write functions to both render, and update, the web of data!

Tabulator — Creating a New Pane — Part 1

Last time, we looked at how to install The Tabulator as a Firefox extension.  Although tabulator can also run as a chrome extension or a JavaScript shim, one advantage of the approach outlined is that you can dive in to the code and make changes.

We’re going to look at how to create a new ‘Pane’ and expand slightly on the developer notes.  For this tutorial you’ll need a text editor and basic JavaScript knowledge.

What is a Tabulator Pane?

Panes are views for displaying different types of data, and creating apps that are data driven.  Although tabulator has many generic data panes, for viewing, querying and editing data, it can be handy to have vertical specific panes, too.

For example for a Person entity you may want a social style pane that allows updates to your timeline, for a publication you may want a special reader, or for your photos you may wish to develop a gallery pane.  In this two part tutorial I’ll show how to display a microblog post in a pane.

Step 1: Find an Icon

Each pane will normally require an icon.  There are many icon repositories on the web, for this I used, openiconlib which has conveniently sized 22×22 sized icons under LGPG.

The icons are stored in content/icons from the main source tree.  In our case we will save the 22×22 PNG under /content/icons/microblog/microblogPost.png

Step 2: Add the Icon to Tabulator

Next we need to add the icon to tabulator and this is done in the file located at /content/js/init/icons.js.  Add the following line:

Step 3: Add the Pane

To add the pane we need to create a new JavaScript file located at /content/js/panes/microblog/

The (true) condition means that this icon will always appear (more on this in part 2).  The render function will simply display a generic heading for testing purposes.  Later we will show how to query an actual microblog and display the fields.

Step 4 — Load the Pane and Test

Image: New pane Icon added to Tabulator

We’re now ready for the final step.  Add the line below to /content/js/init/init.js and once done you should see the icon on any data that the tabulator imports.

If all has gone well you should see the new icon appear in tabulator, after restarting.  Try clicking the following test link to see if you have been successful!

What’s Next?

We’ve seen how to add a simple pane to The Tabulator.  In the next part we will look at how to get data items from a real microblog post, how display the icon conditionally and how to style the page.  The ultimate goal here is to be able to both read and write microblog posts, and share them with your social graph, using web standards.

Read Write Web — Monthly Open Thread — (June 2013)


The World and The Web, was rocked this month to learn about centralized access to data storage, by the controversial prism surveillance program.  Microsoft (2007), Yahoo! (2008), Google (2009), Facebook (2009), Paltalk (2009), YouTube (2010), AOL (2011), Skype (2011), and Apple were implicated, with many commentators concerned by the loss of privacy.

Yahoo! continues its Linked Data adoption with the announcement the open-source code release and public demo of Glimmer, a search engine for RDF data.  Based on the Hadoop search engine technology, it allows querying of the web data commons knowledge base of over 750 million triples.

IndieWeb, a gathering of web creators, sharing technology to empower users to host their own user profile, had its annual gathering, in Portland Oregon.   The Webmention technology that we covered previously was tested in the wild.  Also a an interesting new system, WebFist, was launched which allows users to write mirrored claims based on their email address.

Communications and Outreach

Unless you’ve been living under a rock, you’ll have heard of the recent rise to fame of bitcoin, the peer to peer crypto currency.  Bitcoin has it’s own web of trust for the OTC (over the counter) market.  The founder (aka nanotube) has agreed to let us bootstrap their web pages with a trust based ontology.  I made a short proposal to help us develop along these lines.

Mozilla mentioned that they are also in the process of created their open badges system, so perhaps a collaboration and shared concepts could be possible.

Community Group

RWW welcomes Erik Mannens and Miel Vander Sande from iMinds Multimedia lab.  Some of you may recall their recent work on R&Wbase: git for triples, presented at WWW 2013.  The wiki updated with a section for newcomers including the newly minted Linked Data Glossary.

Sandeep Shetty has been leading the way with two new read/write protocols in the space of two months.  WebMention has been gaining traction and was tested at indie web camp 2013.  But also he has developed a system for federated “likes”.  Looking forward to testing this out with my web identity!


Congratulations go to W3C stalwart, Sandro Hawke, a recipient of the Knight Prototype Fund, and will be developing a read write cloud storage application called  Crosscloud.  CrossCloud consists of a set of protocols and tools that allows providers to give individuals control of their data, choose who can access it and move it to other systems as needed.

A new authentication protocol, hawk, from the people that brought us OAuth promises to correct a few of the issues.  It seems to work nicely with URIs as identifiers so perhaps can be a universal authentication system for the web.  Finally, I put together a quick intro on how to install tabulator in firefox, more to come in this series next month, as I hope to give a demo of the social pane interacting with other networks.

Last but not least…

Last but not least a look at how Linked Data is being used to tackle hunger and poverty around the world.  International Food Policy Research Institute (IFPRI) are working toward data on every country around the world, data about malnutrition, child mortality rates, ecology, rainfall, and much more.  The raw, structured data is available here in RDF. The LOD version is available here.

Installing The Tabulator

What is Tabulator?

The Tabulator project is a generic data browser and editor.  With this technology you are able to view Linked Data, drill into specific details of that data, and send updates to the Web.

Why Should I Use Tabulator?

The Original WorldWideWeb Browser / Editor

The very first browser for the web (actually called WorldWideWeb) was actually both a browser and an editor.  The reason for this is that the vision of the web was to be an interactive experience, rather than, read only.  Indeed, the term we use today, “Browser”, implies read but not write.  The tabulator project aims to change that.

How Do I Install Tabulator?

One way to install tabulator is as a firefox extension.  This involves downloading and making the source then putting a line in your extensions directory.

How Do I Use Tabulator?

If tabulator is working, you should see the “Data Browser” entry in your Tools menu.  Another place you can start to browse data is from any vocabulary.

Click To view a Sample Vocabulary

Click To view a Sample Profile

What’s Next?

This was a basic tutorial on how to install the Tabulator.  In later series I’ll show how it can be used to create and edit data, to run various panes, and to use a client side social network as part of the federated social web.

Read Write Web — Monthly Open Thread — (May 2013)


WWW 2013 took place this year, in Rio de Janeiro, Brazil.  There was a packed program, including an interesting workshop entitled “Linked Data on the Web“, four papers of which, were dedicated to the Read Write Web.

The big news in linked data is that gmail has started to add JSON LD to their popular email service.  This allows developers to embed structured data into an email, in the form of Reviews, RSVPs, Interactive actions and Flight cards.  Response has been generally positive to this move, with perhaps the possibility for couple of minor tweaks to the markup.

The following papers were presented at the Read Write Web session in Rio : R&Wbase: git for triples, OSLC Resource Shape: A language for defining constraints on Linked Data, Hydra: A Vocabulary for Hypermedia-Driven Web APIs, Reasoning over SPARQL.  The website was also released, which promises to be a permanent home for COOL URIs.


Communications and Outreach

The RWW group welcomes new members.  In particular, we had a great introduction from read write web veteran, Henri Bergius.  Henri has been working on read write topics for a number of years.  Notably midgaurd in the 1990s, and more recently, the impressive create.js.  If you’re unfamiliar with Henri’s work you may enjoy this video that goes through many core concepts.


Community Group

There has been some discussion on the mailing list, but also with the semantic web group, and some IETF folks as to the best way to use HTTP to identify a user to a server.  This would enable a user to identify itself to a server without having to rely on the subjecctAltName field in a client side TLS certificate, or other methods.  Thought had been to reuse the “From” header, however this seems tightly bound to email.  Current thinking is that we draft text for a new header, then find a name for it.



Our co-chair, Andrei Sambra, met the developers of the Cozy Cloud project in Paris.  There’s hope that this system can be combined with the my-profile project to become a kind of read write web example of a social dashboard.  Cozy Cloud comes with a dozen or so cloud enabled apps, and has also been short listed for the LeWeb London best startup competition, so wishing them best of luck!


Last but not least…

Activity Streams, the popular social network data exchange format, have been dipping their toes into Linked data with, Activity Streams 2.0, a JSON LD powered activity stream.  This currently does not have official standing but the reception has been good, and there is talk of pushing it through the IETF.  Hopefully this can finally lead to a united and interoperable social web for all!

Read Write Web — Monthly Open Thread — (April 2013)


It was exactly ten years ago, that Richard MacManus wrote his seminal article entitled, ‘The Read/Write Web‘.   In a time when ‘weblogs’ were a new phenomenon, and Facebook and Twitter were but twinkles in their founder’s eyes, it’s very much worth reflecting on just how far the RWW has come in the last decade!

A new acronym, WYSIWYM, was coined with the announcement of the impressive markup tool, RDFaCE.  Watch the screencast to see ‘What You See Is What You Mean’, in action.

The big announcement of the month came from Manu Sporny who demonstrates the new Payswarm Linked Data Payments Protocol in action.  The whole suite includes many important solutions, such as identity, digital signing, key management, encryption and, of course, payments!

Communications and Outreach

There is been more interaction with the W3C payments group on the newly implemented payments protocol.  There was some discussion about using WebID as a decentralized identity system.  Essentially payswarm are already using HTTP URIs to denote an agent so there seems to be a close similarity.  Now we can tie these to PEM keys and allow signatures and encryption.  That is going to give many new options for identity, auth, secure payments and messaging.

There has also been some initial discussion with OASIS about using Access Control Lists with linked data.

Community Group

There has been some talk about extending the “from” header to allow anyURI as wells as the currently suggested email.  This has come up a few times in the past and could be a neat way to identify a user.  There is a firefox plugin which some people are using already.

A new protocol, Webmention, which is in its early stages, and allows federated commenting on blogs has had some buzz on the web.  It is also very similar to the semantic pingback protocol many systems use already.


The first commercial integration of linked data payment systems was launched in the form or ‘meritora‘.  The team behind it, digital bazaar, have also been driving forces in the payswarm, rdfa, json ld and webid efforts.  Great to see so many web scale technologies come together in a new system!

There was a look at Daniel Applequist’s integration to the internet of things and cosm to write his room temperature to the web in realtime.

Last but not least…

The German Wikimedia Foundation has announced that its Wikidata project has now been deployed on all language versions of Wikipedia and is ready for use around the world.  Wikidata – the first new Wikimedia project since 2006 – “provides a collaboratively edited database of the world’s knowledge”.  Congrats on this big milestone and reaching their 12 millionth linked data item!

Read Write Web — Monthly Open Thread — (March 2013)


Some excitement on the web as the new version of HTTP (named HTTPbis) gets closer to being launched.  Kingsley has pointed out some important details related to URLs and the Content-Location header.

Linked data continues it’s steady progress with many of the world’s libraries publishing their data using the VIAF endpoint.

SPARQL 1.1 has been voted an official W3C REC, meaning we now have, a long awaited,  read write query language for the web.

Communications and Outreach

There has been good progress with with the WebID community group, in fixing some bugs in the cert ontology.  Also adding DSA keys, and discussion of further work.  I also informally talked to the bitcoin foundation, about creating a bitcoin ontology.  It’s a hope of mine that the read write web can be soon used for payments, and we seem to be getting very close now.

Community Group

A relatively quite March in the CG, we did however welcome SPARQL 1.1 as a REC, giving read and write querying ability on the web.  There has been some previous discussion about adding sparql to the “well known” pattern on websites, which is perhaps something that can be further incubated.

Some early feelers have been put out too, to see if anyone will be able to attend TPAC 2013 in China.


Some preliminary informal work has taken place to try and model crypto currencies for use in a read write ledger scenario.  Things that could be possibly modelled going forward are, payswarm (already linked data compliant), bitcoin, litecoin and ripple.

I’ve spoken to people at the bitcoin foundation about creating an ontology which could hopefully be an interesting use case for the read write web, working with interesting distributed computing problems such as, network synchronization, race conditions, the Byzantine generals’ problem, double-spending and reputation based trust.  Little in the way of prototypes at this second, but definitely more to come in this space!

Last but not least…

Google embrace the realtime read write web with their announcement of Google Drive Realtime API.  There have already been some previous RWW experiments with the Google Drive system, so it will be interesting to see what apps can be built on top of this!

Read Write Web — Monthly Open Thread — (February 2013)


Realtime communications were in play this month, with some impressive demos of firefox and chrome talking to each other, using the W3C WebRTC protocol.  For those wishing to try it out, some of this functionality has been abstracted in a developer friendly API, called PeerJS.  On the social front, Google have also announced a sign-in process for their social application platform, Google+.

The Linked Data cloud, got that much bigger, as statistics from the OECD, Swiss Federal Statistics Office and UN Food and Agriculture Organization joined the LOD cloud.  Kudos to Sarven Capadisli for making this happen, you can read the write up here.

Lots going on in the RWW, the highlight of which was probably the release of the Drupal WebID integration by Stéphane Corlosquet.  Account recovery and pairing were also fleshed out on the mailing list, this month, with some more demos.

Communications and Outreach

Over at the Web Application Store CG, three sets of manifests are in the process of being compared: W3C Widgets, the Chrome app store and Mozilla marketplace.  There has been talk of standardization which would be invaluable in delivering read write apps to the web.

Mozilla have announced a system of payments for their marketplace, and for firefox OS.  In the W3C Payments CG, there has been some discussion with Kumar McMillan, of Mozilla, on issues such as security and linked data integration. Their receipt protocol looks promising, and could perhaps be used in conjunction with the linked data apps to provide payments.

Community Group

This month in the community group there have been some great demos.  The first demonstrates conditional access to DropBox, SkyDrive, GoogleDrive, and Amazon S3.  Another shows multi protocol login to MediaWiki.

We have discussed two long standing problems and found some solutions.  One is account recovery and the other is pairing of devices.  Andrei has explained how both of these can be solved, with a full implementation in my-profile.


As previously mentioned, Stéphane Corlosquet, has announced his Drupal integration of WebID.  While Drupal 7 already has semantic elements, this can potentially help bring user centric linked data to a large portion of the Web.  There is a working demo here.

For those living on the bleeding edge, it’s now possible to experience realtime updates over turtle using tabulator, and curl.  Currently in production, the “updates via” branch of provides support for (secure) websockets.  This is best tested in the Chrome browser, navigate to, say,  Then try to modify this file either by hand, from the UI or using curl ( curl -H “Content-Type: text/turtle” -X PUT -T dig where ./dig is the turtle file) and watch the text update in realtime!

Last but not least…

For those following the FreedomBox project it has reached the first milestone of the software stack with version 0.1 being released.  FreedomBox aims to be a free software distributed system that allows you to keep all your logs and social data in the safety of your on home.  Congrats on reaching version 0.1, looking forward to future releases!


Read Write Web — Monthly Open Thread — (January 2013)


The web was rocked this month with the tragic passing away of Aaron Swartz.  A mixture of tributes, anger and loss have been widely expressed.  Perhaps it was felt even more keenly by many in our group, as he was an active member of the linked data community.  Let’s hope that one day we are able to make the technologies that he dreamed of building, a reality.

The Worth Economic Forum this year witnessed a session with timbl entitled, ‘What is wrong with social networking‘.  I was particularly interested in Tim talking about a possible payments protocol at web scale.

A relatively quiet holiday period in the RWW still produced some interesting work.  There have been some updates to existing projects and some new ideas on the ‘realtime’ aspect of the Read Write Web.

Communications and Outreach

Continued discussions with the GNU Consensus group, including Richard Stallman, have lead to the possible idea of creating a User Data Manifesto.  A second draft of this concept is currently under way and could lay the foundations of some guidelines to help store data on the web in a way that offers users more control.

Community Group

Some great news in which, OpenLink announced they would donate their login widget to the community via open source.  Some of the members of the Community Group have been working with Sebastian Trueg of Openlink, to add this ‘polyglot’ login system to read write web applications.

The RWW also welcomes David Sheets, and Eric Bremner of Stony Brook University.


Some upgrades to existing applications.  My Profile  has undergone a redesign which has been very favourably received.  I put together a little realtime web chat demo with encryption as a proof of concept.

Some exciting news over at MIT with two new upgrades to  One is to provide a control panel to make access control more user friendly.  The other is realtime SPARQL updates over web sockets.  I believe the proof of concept is already working in the tabulator project.  More news on this next month.

Last but not least…

X-Editable, A really nice ‘edit in place’ system that could be used in conjunction with the read write web, has recently become available.  It works with bootstrap, jquery or jquery UI so feel free to give it a try, maybe even tie it together with write standards!

Read Write Web — Monthly Open Thread — (December 2012)


Wishing all read write web enthusiasts a happy new year!  2012 ended with heated debate, at the World Conference on International Telecommunications over ongoing governance of the internet.  Concerns had been raised that changes to the current groups, responsible for regulation, may have risk on the downside.  It would appear that the system that is in place, will continue at least in the short term.

Linked data has announced another interesting initiative, funded by the EU, in the area of the linked geo web.  The project is called “Geo Know“, and also has an associated Community group.

More work on RWW on distributed social identity and web apps, and some impressive demos.  Some discussions on ACLs and some great demos have left us in a position of achieving much of what we set out to do in 2012.  One personal thing that I’m happy about, is that I am now able to make web apps discoverable from my identity (homepage) using a new social web ontology.

Communications and Outreach

Some discussions on the social read write web has taken place with people from a number of project in the free software movement.  In particular, GNU Social have said they are open to implementing read write web standards work, provided that someone can do an integration.  A new system, GNU Consensus hopes to tie together many existing social net protocols.  And freedombox have talked about a unified web interface for tying together your social systems.  Look forward to seeing development in that area next year.

Community Group

A relatively quiet holiday period still produced some interesting topics.  We now have an informal google plus community.    Just ping the group is you’d like an invite.  It’s open to people outside of the CG too.

One of my goals for 2012 has finally come to pass, in that I can now link “web apps” from my profile.  This allows apps that are designed for the web discoverable from your own profile using the “webapp” predicate.  An example can be seen here.



Fantastic work from Openlink in creating an open source widget that allows users to login via account from WebID, Persona, OpenID, Facebook, Twitter, LinkedIn, Google, Windows Live, WordPress, Yahoo, Tumblr, Disqus, Instragram, Bitly, Foursquare, Dropbox and Github!  This widget can be used to deliver the read write web to a huge audience of existing accounts.


Last but not least…

An enlightening review of technologies that have sprung up this year, entitled “The Most Futuristic Predictions That Came True in 2012″.  The future is here, it’s just unevenly distributed!