![]() |
|
|
RDF Technical OverviewGuhaRobert Churchill John Giannandrea Status: This document is outdated, and reflects the state of RDF in Mozilla before we moved to use of the new layout engine. It remains mostly accurate but specifics of technical details are a little dated. Last updated: $Id: api.html,v 1.3 1999/03/18 09:07:54 daniel.brickley%bristol.ac.uk Exp $ This DocumentThe document is a high level overview about the RDF code in Navigator. You need to understand the material in this document before hacking the Navigator RDF code in ns/modules/rdf/.If all you want to do is use the RDF C Apis for your own application, you don't need to understand everything given here, but it might be a good idea anyway. If you are looking for material on how RDF is used in Navigator or on Aurora, look here. The Basic IdeaWe have a lot of different pieces of structured data --- bookmarks, history, file systems, document structures, sitemaps, etc. The creation/access/manipulation code for these are completely independent. So, each of them has its own storage system, editing and viewing tools, query and manipulation APIs, etc. There is a substantial lost opportunity here. There is considerable overlap in the data model used by all these different structures. All these structures are instances of directed labeled graphs. So, the basic idea behind RDF is : if you can manifest yourself via the RDF data model (which is built upon directed labeled graphs), there is a marketplace of services that you can utilize. Some of these services include,
What is RDFThere are a couple very different things meant by the term RDF.
This aggregation ability is used all around the place with RDF for personalization, overriding, etc. RDF DatabaseAn RDF database is a directed labeled graph. Almost all the RDF APIs include reference to an RDF Database.The graph consists of
RDF QueriesThe RDF Query API is a very standard graph query API. It can be used both to traverse and to edit the graph.Every RDF Query API takes an RDF database as an argument. Each RDF data source is required to implement a set of RDF Data Source APIs. A database itself implements the RDF Query API by by issuing RDF Data Source API queries to its data sources. The RDF Data Source API is a strict subset of the RDF Query API. This means that an RDF Database can also be an RDF Data source.
RDF Data SourcesIt is easy to expose a new source of data via the RDF APIs. To do this, one provides a wrapper (around that data source) that implements the RDF APIs.A data source could be a read-write store or a read-only store. It can also be a read-partial-write store, i.e., it can execute only some of the edits presented to it. e.g., folder based file system directories are far less expressive than general RDF graphs. In the more general model, it is possible to make statements like "File001 contains the response to email0017". Neither the file system (nor the email system) is capable of representing such a statement. The wrapper for the file system (and email system) can legally refuse to perform such an edit. If a more general purpose RDF data source (such as the one based on Berkeley DB), that database could perform the addition. The user of the query API need not know the difference.
|
|||||||
| Copyright © 1998 The Mozilla Organization. | ||||||||