How to use the Tabulator

Compatibility | Security | Usage | Tutorials | Limitations

This is one possible form of a data browser. It is only one way of looking at the semantic web, just as a refrigerator is just one way of using electricity.


The tabulator is currently highly platform-dependent. See below for details

Firefox: All features tested in FireFox. To view sites outside of the local domain, you must change your FireFox settings.

Opera: The implementation works pretty well, although it's not yet completely debugged. There is currently no way to access sites outside of the local domain. To resolve this problem, a widget has been developed.

Safari: Weird bugs occur all over the place. "Undefined" is littered all over the screen.

Internet Explorer: Not functional in Internet Explorer. We are working on this.

Security and browsing different sites

The Cross-Domain Browsing Problem

Firefox security won't in general let a script from a given DNS domain (like read web data from a different domain. Therefore, if you try to browse an rdf file from a different domain, the tabulator will fail. There are two ways to allow cross-domain requests.

The Simple Solution

  1. Type into the main browser URI bar "about:config" and hit return to get to the config page.
  2. Scroll down to the line which says
    signed.applets.codebase_principal_support ... user set ... boolean .. false
    and double-click it to change it to 'true'.
  3. Go back to the tabulator, and try again. When the browser asks you whether to allow the script to access arbitrary web pages, agree. You probably want to check the "remember the answer this question" box.

Note that this is reducing the security of your browser. You end up allowing any web page on the site to read data from the web, which could include data from inside your firewall.

An Alternative Solution

Quit Firefox and then find your prefs.js file and add to the bottom of it the line

user_pref("signed.applets.codebase_principal_support", true);

On Mac OS-X the file will be in somewhere like /Users/timbl/Library/Application Support/Firefox/Profiles/mxotp788.default, and in Windows in an equivalent place. Then, run Firefox and the tabulator again, and answer the dialog box as above.)

Why this problem?

The tabulator program is acting as your agent as you browse data, but the Firefox program doesn't know that you can trust it. It could be just a script on some webpage you are browsing, and it could be trying to get information which only you have access to and send it to a third party. It turns out that it is really difficult to stop such a script sending messages out in some form, so Firefox security prevents it from accessing anything on the web to which you have access to, unless it on the same DNS domain as the script itself. This is not a very good system, as many web sites which do not trust each other share a domain name. But that is how it is. A better way is for the scripts to be signed, but I haven't got the script signing system working yet.

See also Mozilla/Firefox documentation on See also Customizing and Signed scripts.

"Script is taking a long time" alerts

While you are adjusting the Firefox parameters, you may wish to increase the dom.max_script_run_time value in about:config. The default seems to be 5 (whcih seems to give in practice around 10 secs) of time in between Firefox asking whether it is Ok whether the script is still running. This happens when loading large RDF files. Try 30 or adjust to taste.


Key: expand expand, collapse collapse, fetch Click the dot to fetch data. requestedloading.... failedFailed to fetch data. loaded Data loaded OK.

The outliner window allows you to explore the semantic web in a tree structure. The outliner begins with several initial rdf nodes (the objects with clickable expand symbols), and you can add more by around between different objects by adding their URI at the top of the window and clicking "Add to outliner". To explore an rdf node, simply expand it by clicking the expand icon for that node. You can click it again to collapse it.

The colored dot next to a given node indicates the status of retrieval for that URI. See the key above. Once a data source is retrieved, it will not need to be retrieved again, and the colored dot will not appear in future copies of that node. A list of data sources, accessible and not, is kept at the bottom of the browser.


Once you begin browsing, the nested tables quickly get quite deep. You can clean it all up, refocussing on one item by shift-clicking on its expand expand or collapse collapse icon. This removes the nested tables, and places your selected node into the tabulator as a starting node.

Alternatively, if you would like to refocus on a node without removing the original tree you were browsing in, you can double-click on a node field (the text next to a expand/ collapse icon).

Seeing the URI

The point a browser is to give you the data without the URIs used as identifiers. They are hidden whenever there is a label, title, or name of some sort which can be used for something on the screen.

To see something's URI, click once on a table cell and (if appropriate) the URI of the thing described in the cell will be put in the URI bar at the top.

Tablulating data in columns

As you explore the outliner, you may want to create a table with certain pieces of information about each of several equivalently-related objects. This is how to do it:

  1. First find one instance of the property you are looking for and select it by clicking on the field name (not the field value). To select or deselect multiple field names, hold down the Alt key.
  2. Click on the button "Tabulate selected fields"

For example, to make a table of the names of all the W3C working group chairs and team contacts, expand World Wide Web Consortium -> W3C Groups and Organizational Structure -> working group. Now, you may want to shift-click the "working group" icon to refocus it. Open up one of the working groups and click on the "chair" name field. Now alt click on the "team contact" field. Both these fields should now be highlighted in green. Now you can go down to the bottom of the tabulator and click "Tabulate selected properties" to create the table.

What you will notice in this example is that every combination of working group/chair/team contact has its own entry in the table. You can sort the table by clicking on the column heading of the column to sort by. Click again to sort in the opposite order.

This bit is very much work in progress just now!!

Linking to a tabulator view

If you take the URI of the tabulator page, and then append uri= and the uri-encoded URI of the thing you are viewing, then this is a URI of a tabulator view for that thing. You can get the URI for anything in the tabulator outline view by clicking on it, and then looking in the tabulator's URI form field (not the browser's address bar). Remmeber to encode # as %23.


Bug reports

Please make sure your bug is not already there before you enter it, and make up a title which will identify it well.


This is a very simple unoptimized javascript implementation, so it will tend to be slow with large files. If you get a message that a script is taking a long time, you have a choice of letting it run or aborting it. This is a firefox feature, you can control it using the about:config page. (Type about:config into the firefox URL bar, presss return, type "script" into the filter and then change the value for dom_max_script_run_time to say 30)

This is a proof of concept program, many user interface things are missing, for example from the table view.