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 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.
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
- Type into the main browser URI bar "about:config" and hit
return to get to the config page.
- Type codebase into the filter window
- Double-click the line
signed.applets.codebase_principal_support ... user set ...
boolean .. false
to change it to 'true'.
- 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
- Use URIs as names for things
- Use HTTP URIs so that people can look up
those names.
- When someone looks up a URI, provide useful
information.
- 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*:
What to do about large number of links
- Pointer to document for each predicate?
- 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
Semantic Web URIs2006slides
Tim Berners-LeeMIT