Skip to toolbar

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

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


The Open Web Platform got a boost this month as Mozilla announced they are expanding their app store.  The aim is to make HTML5 apps (based on HTML + JavaScript) first class citizens of the web.  In their progress report they have demonstrated support for Android, Windows, Mac OS X, and Linux devices, in addition to regular browsers.

ISWC kicked off in Sydney Australia, which marked a meeting of the top minds in Linked Data.  One interesting paper that was noted as relevant to the Read Web, talks about the “Secure Manipulation of Linked Data“.

The Read Write Web Group has begun to incubate some specs on the broad topic of reading and writng, as well as access control.  More on this below.

Communications and Outreach

I was kindly invited to spend two days at the lod2 plenary.  Many thanks to Jindřich Mynarz for organizing a fantastic event.  I met with Sören Auer and many of the team working on lod2.  There is a a lot of impressive work coming out of this project.  You can check out the individual components or download the whole lod2 stack.

We’ve spoken to two social projects this month, lorea, and (previously the code base).  Both are interested in federating linked profiles for reading and writing.  The Linked Data Platform has also updated their Use Case and Requirements document.

Community Group

Claus Stadler, from the team at Uni Leipzig has joined our group and demoed some impressive work on javascript based visualizations of Linked Data.  More on this soon!

Work has continued towards creating a draft spec that describes what we’ve learnt so far in this ans other Community Group.  Also there has been some interest in an official Spec for Access Control on the Web.


An EU funded consortium have announced a linked data based social network, digital me, which is now ready for the first sign up.

Some great work from OpenLink as they have released a new version of YouID, an identity provider that allows you to take control of your existing social profile on the web.  I put together I simple “Hello World” app, which shows how to read and write linked data via HTTP PUT, PATCH and SPARQL Update.

Last but not least…

Kingsley spotted an interesting app, “Fred”, which creates linked data vocabularies from simple sentences.  It also has a graphical representation and a turtle serialization of the ontology.

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


As the read write community group enters it’s third year, there has been activity on infrastructure, apps (both server and client side) and some work on identity which will be an important component of Web 3.0.  To wit, the W3C has formed a brand new community group, Federated Identities for the Open Web Community Group, we hope this will enable federated identity to claim it’s rightful place as a first class citizen of the web.

The widely awaited JSON LD spec nears completion, with a feature freeze and call for implementations.

The community group welcomes new members, has begun towards writing up a Read Write Web Spec documenting some of the work we’ve been doing over the years, and now has a new apps areas with it’s first app.  There’s also upgrades to server software and a new identity provider, hosted by MIT.

Communications and Outreach

I was fortunate enough to meet up with one of the core Drupal developers, Stéphane Corlosquet, and others at the Drupal 2013 conference.  We had a productive chat about him continuing his great work to get linked data into the core of Drupal, which powers 2% of web sites.

I also met up with the team at the unhosted project, for their annual unconfernece, who are working projects that separate apps from commodity storage.  We talked about how we could work together to make a larger, and higher quality app eco system.

Community Group

The first work (mainly brainstorming) has begun to put together the ideas we’ve been talking about into a coherent document.  It will be something like a spec meets primer, and will hopefully show the techniques that can leverage the arch of WWW to read and write to resources with a given identity, that can be verified, and access controlled.

The Community Group welcomes Sean Tilley, the community manager, from the Diaspora Project.  Diaspora are hoping to make their system more federated and able to benefit from standards that join networks together, hopefully we can work together to achieve that!


The RWW now has an application area on github, located here.  The first app to date is a linked data calendar, ld-cal, which uses rdflib.js to write your calendar events to commodity storage of your choosing — something I’m already using on a daily basis! has had a major upgrade with lots of the new features form important into the code base.  Notable also is a new identity provider hosted by MIT which can issue you client side certificates tied to your google identity, or a new webID.

Last but not least…

For those that like mapping, you may enjoy the linked data annotation application, maphub.  There are 100s of maps both current and historic, that allow you to write to a point or rectangle and add annotations.  The data if fully exportable and linkable using web standards.

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


This month marks the two year anniversary of the RWW Community Group.  A big thank you to everyone that has participated so far, some great progress, but still lots more to be done, in order to realize the full potential of the web as a decentralized read / write space.

In linked data the RDFa Working Group published three RDFa Recommendations. (HTML+RDFa 1.1, RDFa Core 1.1 and XHTML+RDFa 1.1) RDFa lets authors put machine-readable data in HTML documents. Using RDFa, authors may turn their existing human-visible text and links into machine-readable data without repeating content.

Andrei Sambra has released a personal cloud computing solution More protocols have been discussed on our mailing list, including access control, authentication and the Linked Data Platform.

Communications and Outreach

The social web business group met this month in San Francisco, with positive follow on discussions about the possibility of forming a social web Working Group in conjunction with the OpenSocial Foundation.  This may be helpful in creating a truly decentralized social app eco system for the Web itself.  Looking forward to further discussions!

Community Group

The community group announced the release of a great solution for personal clouds using read and write standards for identity, authentication and access control.  Already there have been a few patches submitted, in addition to make it compliant with the upcoming Linked Data Platform standard (LDP).

There has been discussion on access control, in particular, a rel type of “meta” or “acl” to link to a file that contains meta data for who can read, write, control or append to various documents.  There has also been an example of Delegated Protected Resource Access Authorization


OpenLink software continues to lead the way with the release of Virtuoso Open-Source Edition v7.0.0.  There was a post showing how to use and tabulator to achieve distributed microblogging and some demos by Kingsley showing several exercises in ‘dogfooding’ access controlled read / write spaces.

Last but not least…

More great work from Andrei with a geo location app for the platform, called FindMyLoc.  The app allows you to share your location with your friends using our own commodity storage, and in a privacy aware way.

Distributed Microblogging with RWW.IO and Tabulator

Earlier this month RWW.IO was launched, to much positive feedback.  In this post I will show how RWW.IO can be used to extend your FOAF file to become a distributed microblog.

*Disclaimer* this tutorial is for advanced users that may be prepared to live on the bleeding edge, and maybe do some debugging.

Step 1 — Create a FOAF profile

If you’ve followed previous posts, you probably have a FOAF profile by now.  The FOAF is used to give a nick, avatar, name and URL for the micro blog creator.  For this demo I’ve uploaded a FOAF to

But you can put it anywhere in your space.  If you’ve done this right, click on it and it should look something like this:

Note: that you do not need the tabulator extension running to view this FOAF, has a tabulator skin pre installed, so there is nothing to install.

Step 2 — Create a Microblog

Once you are at your FOAF, click in the entity that is of “type” FOAF : Person, in my case it’s “Melvin Carvalho”.  After this click the small microblog icon which will ask you to create a microblog.  The screen should look something like this:

For the final input box I used:

Again, you can locate it anywhere you wish.  And hit create.  It will then put a new file in the directory you chose.

Note: this worked best for me in opera.  In firefox and chrome it was temperamental and worked best when I stepped through with a debugger.

Step 3 — Link your microblog to your profile

Although not strictly required, for various reasons this demo works best when you have linked your microblog to your profile. This is done by adding the triple:

<#nickname> rdfs : seeAlso <../profile/nickname>

Your microblog should look something like:

We want to click to the right of “see Also” which will take us back to our profile where we can now add micro blog posts.

Step 4 — Set Your Identity

While you’re at your profile page quickly click the foaf icon at the top, and you’ll see an image of yourself such that you can set our identity.  If you’ve done it right it should look something like:

Step 5 — Start Microblogging!

You can start microblogging straight away by clicking he microblog icon.  However it helps if you start following people.  Strangely you need to follow yourself to see your own posts, so you can add triples to the same place you added the seeAlso, with 2 URIs of the form:

And you should start seeing the posts of the people you follow come in.  You can even favourite the ones you like with the final screen looking something like:

If you’ve got this far (or even past a few steps) very well done!  I’d be very happy so start growing my microblog circle!

To summarize we’ve shown how to use commodity storage such as to create a distributed microblog using tabulator’s microblog pane.  No installations were required and it is possible to follow an arbitrary list of users, and, of course, control the access!

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


Further privacy issues emerged, this month, across the internet, as the extent to which data is monitored has encompassed more than was previously reported.  The web has been awash with concerns, including reports that even passwords can at times be requested. have added new Linked Data features, in the form of sameAs aliasing, and a draft for a new set of actions.  Two more drafts have reached last call, namely, of RDF Semantics and Concepts and Abstract Syntax.

Linked Data Platform 1.0 is now ready for last call, with more implementations coming in.  There was also an interesting comparison presented between LDP and the Graph Store Protocol.

Communications and Outreach

Preparations are under way for a workshop on the social web, in San Francisco.  An interesting program has been discussed, with the possibility to go to a full working group if there is enough interest.

Community Group

There have been discussions with various groups including the OpenID Foundation, and Internet Identity Community about a proposed header, to enable a user to be identified to a server.  Some quite productive feedback ensued.

I have added a couple of blog posts in the tabulator series.   Part 1 shows you how to create a brand new tabulator pane, and part 2 shows how to render a simple SIOC microblog post.


Two new implementations of LDP are under way.  One in java, and another in node.  More great work from Andrei Sambra who has created an API for my-profile, and also is experimenting with WebRTC to enable real time chat and video.  An interesting project from Ben Werdmuller of elgg fame, called idno, allows you make your personal page into a social read/write experience.

Last but not least…

For all you SPARQL fans out there enjoy the release of YASGUI a web based SPARQL GUI with auto completion, syntax checking, CORS enabled, endpoint search, permalinks, bookmarking and much more!

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!