CSAIL Logo

The Tabulator

Tim Berners-Lee

Data browser rewards Semantic Web best practices

Decentralized Information Group
MIT Computer Science and Artificial Intelligence Laboratory

Tabulator people

Tim Berners-Lee

Tim coded up the original version at odd times in November and December 2005. See Links on the Semantic Web from Dec 2005

Undergraduate Research Opportunity Program (UROP) over June-August 2006:

Yushin Chen

"Joyce" wrote the calendar views, and incorporated the Simle timeline.

mugshot

Lydia Chilton

Lydia is working on statistical analysis, charts, etc.

mugshot

Ruth Dhanaraj

Ruth worked on the Tabulator in January 2006, adding the asynchronous fetching of documents during queries, etc.

Adam Lerer

Adam works on the back-end -- the query system, and generic stuff around the query UI. He implemented SPARQL protocol as a internal layer and as an external protocol.

mugshot

Jim Hollenbach

Jim is responsible for the map view. He also worked on the framework for multiple queries per view.

mugshot

David Sheets

David wrote the RDF parser, and does a lot of architecture and release engineering. He also installed the bug tracker.

mugshot

Thanks also to Dan Connolly and Ralph Swick for co-supervising students and for ideas, support, testing and encouragement. In collaboration with Nokia under the SwapMe project. Thanks to MIT UROP funding, CSAIL UROP funding, and DIG funding.

Status summary

Related

Interesting things

  • Generic, not app-specific browser
  • Avoiding rdf, URIs and RDF jargon in your face
  • Not using circles and arrows, which take up too much space
  • AJAX to be developer-hackable
  • Looks up data on web, follows links: Linked Data
  • Outline mode (for a web?)
  • Query by example -> table
  • Lenses and views (to come)

Features

(All addressed in detail later)
  • Does GRDDL and link rel=meta on xHTML pages
  • RDF/XML parser (not complete), no N3 yet
  • Smush on owl:sameAs, [inverse]FunctionalProperty
  • Display with subproperties of rdfs:label
  • Load all ontologies (recursively)
  • Load data on browse in outline view
  • Load data as query binds new URIs
  • Provenance: click on any fact -> highlight source in list
  • Provenance: double-click on source -> look at source meta inc.

When you use these techniques on the server, the tabulator works better.
We will cover most of these in more details.

Practicalities

  • Firefox only as we only use firefox, research project.
  • Charles McCN made an opera widget
  • SVN trunk much improved after the summer of 2006
  • HTTP 303 handling not standard in WebAPI XMLHTTPRequest() but managed in Tabulator
  • Must set the codebase principals support (next slide)

Configuring Firefox

  1. Type into the main browser URI bar "about:config" and hit return to get to the config page.
  2. Type codebase into the filter window
  3. Double-click the line
    signed.applets.codebase_principal_support ... user set ... boolean .. false

    to change it to 'true'.
  4. 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 to this question" box.
By configuring Firefox in this way you decrease the security of the system. You will lay yourself open to decurity breached by scripts from the same domain attempting to extract data from sites or files to which you have non-public access. no liablity express or implied is assumed by anyone except yourself.

Multi-query Views

  • Table view (only one query at a time)
  • Google map (lat, long) (multiple)
  • Calendar (datetime) (multiple)
  • Simile timeline (datetime) (multiple)
  • User-added views

Linked data

  1. Use URIs as names for things
  2. Use HTTP URIs so that people can look up those names.
  3. When someone looks up a URI, provide useful information.
  4. Include links to other URIs. so that they can discover more things.
  • Ideally: all links out and in
  • Reasonable size of data returned
  • Not knowledge bases in zip/tar files!
  • Link: The use in document d of URI which is in document d'

AJAR Library

  • Fully tested RDF/XML parser
  • Indexed triple store
  • Asynchronous query engine
  • SPARQL client and server (limited)
  • Smushes identical nodes (owl:sameAs, owl:InverseFunctionalProperty, owl:FunctionalProperty)
  • Looks up data
  • Tracks history if HTTP results

Lookup Algorithm

Conventions - should the whole set be a standard?

  • What to look up?
    • document from URI (up to #)
    • link rel=meta
    • rdfs:seeAlso links
  • Follows 303 redirection
  • Content-type is definitive
    • Text/plain: Guess with a warning
    • application/rdf+xml Parse as RDF/XML
    • text/rdf+n3 Parse as N3 (*not imp.)
    • text/html
      • link rel=meta in HTML
      • GRDDL profile
      • RDF/a ??
    • *+xml*:
      • GRDDL profile

What to do about large number of links

  • Pointer to document for each predicate?
    • e.g.
  • Pointer to SPARQL endpoint?
  • How to describe what a SPARQL service can answer?

Tabulator-friendly data

linked data plus:

  • Use rdf:label to label things
  • Declare usable name properties to be subproperties of rdfs:label
  • Predicate labels are role nouns e.g. 'parent'
  • For predicates, also label unnamed inverse predicate, e.g. 'child' to void 'is parent of'
  • Not 'has parent' or 'is parent of'
  • Lower case for predicate labels is fine, tabulator can uppercase where needed
  • Inverse Function Properties (IFPs) of external items, e.g. homepage, email, etc for merging with other sources

Examples of linked data

  • Most ontologies
  • dbview-generated from SQL virtual RDF data
  • New: D2R Server provides linked data as well as SPARQL
  • FOAF (home brew, LiveJournal, Opera Community etc)
  • Semantic wikipedia
  • Place-names ... etc
  • The biggest challenge is links to other systems

Example: Tabulating around W3C

Some data in HTML microformat (scraped to RDF)

tabulating

Some data built with RDF reported as HTML

tabulating

Tabulator: generic data browser

tabulating

Starting only with a URI

Tabulating around W3C -

tabulating

Tabulating around W3C -

tabulating

Tabulating around W3C -

tabulating

Tabulating around W3C -

tabulating

Tabulating around W3C - Crossing the application boundary

tabulating

Tabulating around W3C -

tabulating

Tabulating around W3C -

tabulating

Tabulating around W3C - This is not a tree

tabulating

Tabulating around W3C - Query by example

tabulating

Tabulating around W3C - Graph to table

tabulating

Random links

Tabulator demo (Firefox, See help.):

Tabulator view links:

See also:

Debugging tips

  • At the moment, use the live development version and report bugs
  • Flush firefox cache* and Reload tabulator if data has changed
    • * Preferences/Privacy/Flush cache now
  • Don't see any data?
    • Open up Sources area
    • Click on the source in question
    • Scroll up to see metadata
    • Open up 'request' to see what happened

More Information



Creative Commons License
This work is licensed under a Creative Commons Attribution - Non-Commercial - No Derivatives 2.5 License.
Semantic Web URIs2006slides Tim Berners-LeeMIT

AltStyle によって変換されたページ (->オリジナル) /