Resource Description Framework (RDF)
Semantic Web technologies in Mozilla
Contacts:
Robert Churchill (rjc@netscape.com)
David Hyatt (hyatt@netscape.com)
Chris Waterson (waterson@netscape.com)
Maintained by:
Dan Brickley (danbri@w3.org)
The Resource Description Framework, or RDF, is a W3C technology that we're using in Mozilla to integrate and aggregate Internet resources.
Mozilla RDF was originally used to support the Aurora/Sidebar user interface and SmartBrowsing metadata services. It's main use in Mozilla now is as a common data model and API for use in XUL-based applications.
See the MozillaRdf entry in the ESW wiki for developer-supplied documentation and notes.
General RDF-in-Mozilla Docs
These docs describe the implementation of RDF in Mozilla; for formal specifications consult the W3C Recommendation for the RDF Model and Syntax. See also the RDF Schema Proposed Recommendation, which describes the RDF type system and model for metadata vocabulary description.
In Fifty Words Or Less. A nickel description of what RDF is, and how it fits in to the Mozilla world. Comes complete with examples!
Back-End Architecture. A grandiose document that describes how the RDF back-end works in Mozilla. Eventually, this will have sample code that illustrates how to use the back-end directly as a client, as well as instructions and samples that illustrate how to write your own pluggable RDF data source.
RDF-in-Mozilla FAQ. A modest FAQ about using RDF in Mozilla. Contains sample code!
Examples. A collection of examples that demonstrate how to use RDF in Mozilla.
Datasource Howto. A cookbook for creating a datasource. Also, Aggregating the In-Memory Datasource for those who are willing to explore the vagaries of XPCOM aggregation.
XUL Template Primer. A primer for XUL templates, which can be used to build fancy UI from an RDF datasource.
XUL Template Reference. A reference manual for XUL templates, the machinery that builds a content model from a graph. [This is a bit out of date, and does not cover the new extended template syntax]
How It Works With NGLayout. This document describes how RDF/XML gets pumped through NGLayout to create a bona fide content model that is compatible with the Level 1 Core DOM.
RDF Technical Overview (revised 1999-08-10) - the original overview document providing a high level perspective on the Mozilla RDF implementation.
Mozilla RDF Vocabularies (work in progress) (open source meets open standards - migrating from home-grown terminology to community-led metadata vocabularies)
XML Application Types - a brief note on when to use RDF versus XML.
RDF Applications
Smart Browsing and Related Links (RDF annotation services). The SmartBrowsing system allows trusted third party metadata servers to provide XML/RDF 'related link' annotations while you browse. See also nsRelatedLinksHander for implementation details.
Aurora (UI philosophy). Aurora is/was a codename for the user interface components in Mozilla that are constructed against RDF datasources (also recently called Sidebar).
Flash Specification (Implementation details for Flash Panel). The Flash Panel provides an XML/RDF based system for supplying up-to-the-minute information about events that are of interest to the current user.
Mozilla RDF / Z39.50 Integration Project (hooking up to digital library systems). This is a side-project investigating the use of the ANSI/NISO Z39.50 search protocol from within Mozilla.
Enabling Inference - glueing logic and inference capabilities into Mozilla
Source Code
- Mozilla RDF APIs - see /rdf/base/idl/ for IDL interface definitions
- Source Code browser - web interface to the CVS tree. The core of Mozilla's RDF implementation is in /mozilla/rdf/base/. Some RDF data sources can be found in /mozilla/rdf/datasource/ and xpfe/components.
- What's New?
- RDF core: changes to mozilla/rdf/* source today, this week, or this month.
- RDF datasources (amongst other things in xpfe/components) today, this week, or this month.
- What's working? Search
Bugzilla for currently
open bugs involving RDF:
- string 'RDF' (note: you might want to refine this query to find other things in the bug database)
- [Feature tracking] - RDF
- RDF core top-level tracking bug
- Bookmarks top level tracking bug
- global history top level tracking bug
- XUL DOM top-level tracking bug
- Flash Panel top-level tracking bug
- related links top level tracking bug
- RDF/XML specification violations
- Found a bug that's not been reported? see Getting Involved for details on how to contribute...
- Code to manipulate the RDF dumps of the Open Directory can be found in /mozilla/rdf/opendir/ area.
Related Documentation
- XUL and RDF: The Implementation of the Application Object Model
- Browse the PICS source code in Mozilla. PICS is the Platform for Internet Content Selection, a technology on which RDF was originally based. See the W3C PICS site for details.
- Blue Sky: Intertwingle ("a potential project to make it easier to deal with a massive volume of personal messages: excavating, traversing, relating, reporting, annotating...")
- Blue Sky: Collaborative Bookmark Indexing
- References - Links to other documents about RDF
Community
netscape.public.mozilla.rdf is the Mozilla RDF newsgroup, and mozilla-rdf@mozilla.org is an e-mail mirror. Another nice mailing list for RDF developers is RDF-DEV, which has more general (non-Mozilla) RDF traffic. See also the W3C site for details of the RDF Interest Group.
Older documents (to be updated)
Some of the following documents describe the older RDF implementation in Mozilla, and are partially obsoleted since the move to use the new layout engine. For more information about this change in Mozilla, see the development roadmap.
- On Making A Content Model From A Graph. This document describes why it's hard to make a content model from a graph, and suggests some ways to deal with it. It's a plea for help and a call to arms for all you mathematician types out there. (status: recent but not recent enough ;-)
- XML in Mozilla (overview on Mozilla's XML implementation, role of RDF etc) (guha-1.gif figure is obsoleted by NGLayout though)
- The Mozilla History Project (overview of planned History RDF datasource; needs updating)
- Persistent Client Store (RDF database as 'super cookie')
- Roadmap for RDF in Navigator (April 1998) (ideas for the future; needs updating)
- State Of The Code (Obsolete coding 'to do' list)
- RDF Todo List (partially obsolete todo list, 1998) (needs updating)
RDF Standards
RDF is a W3C specification, and is their recommended technology for (meta)data interchange on the Web.
Our aim is for the Mozilla RDF implementation to meet the W3C specs. If you find behaviour contrary to the spec, please check the Bug database to see if the problem is a known one. If not then file a bug report telling us what we're doing wrong, providing a clear test case and citing the relevant section of the RDF specification(s). Questions about the RDF specifications themselves should be directed at <www-rdf-comments@w3.org> instead.
Additional layers on top of the core Model and Syntax are in the process of being defined by W3C. The RDF home page is the best place to track the latest developments and get involved with discussions about future RDF and 'semantic web' standards.
For example, there is as yet no agreed RDF Query API. An agreed spec for such a thing would be very useful. As background on RDF Query this you might also look at some proposals for RDF Query that were made at the Query Languages for the Web workshop. The W3C has set up an RDF Interest Group; more information is available on the W3C site, including a charter and mail archive for the group. The interest group is open to all RDF implementors and actively seeks input into future W3C work items relating to RDF...
We expect Mozilla's RDF implementation to track the evolving RDF standard as specified in future W3C Recommendations. The Model and Syntax spec is now finalised. Future work is likely on RDF Query mechanisms. The query mechanism in Mozilla should be compatible with anticipated future developments in this area. See also the Z39.50 / RDF project for exploratory work investigating the relationship between RDF and older search protocols.