[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Peter Minten
Subject: [DotGNU]GNU.RDF
Date: Sat, 15 Mar 2003 16:23:46 +0100

Hi folks,

I'd like to propose a new project: GNU.RDF .

RDF is a protocol to store meaningful information readable for computers. It
does this by storing statements like 'Peter Minten is a co-founder of FSEDU' and
'FSEDU is a project to promote Free Software in education' and linking them

One of the main uses of RDF is news feeds (like the one we have on the website).
People can tell programs on their computers to watch those feeds and tell them
if there is something useful in it. The current form is a little limited
however, because of the lack of information linked to in the RDF files.

It is possible with RDF to store virtually all information about a project. This
includes: news, location and size of files, changelogs, project owners, etc. It
is also possible to link together information from multiple projects. Using this
flexibility it's possible to create whole information webs about projects.

Forum will use RDF to create such an information web. About all information in
Forum is stored in such a web. Using visualization tools it will be possible to
view and edit the web. The libraries to support this will not be developed in
the Forum project however, but in the GNU.RDF project since they will be useful
to others too.

GNU.RDF has roughly 2 main goals:

* Creating the protocols needed to RDFize projects.

This boils down to defining namespaces and conventions.

* Creating the tools to use RDF.

For RDF to be used efficiently a web needs to be stored in a database. GNU.RDF
will develop the software for this. The web storage facility + the database will
be called the store.

Data will need to be extracted from the store. The programs that do this will be
called agents. Agents could be anything that interacts with the agent C api.
Note that the C api will be really simple, the api must be usable from lisp
(using GNU clisp), extra feature code (that provides an easier way to do things
using a more complex api) will be acceptable though.

The data in the store will also need to be modified. The programs that do this
will be called managers. Managers are basically agents with some extra rights. 

The agents and managers communicate with the client, mainly by sending RDF XML.
On the client the RDF will be processed by so called processors. The processors
are actually a little outside the scope of GNU.RDF. However good visualization
and editing tools will be needed (actually I need them for the Forum admin
module), so a visualization and editor translator will be developed.

In order to get data into the store harvesting mechanisms will need to be
developed. These will be called (guess what? :-) harvesters. One basic harvestor
listens to a Jabber account and extracts RDF from send messages. Another one
will do the same for email.

GNU.RDF will support authentication. A simple auth scheme is to only accept data
when it is signed with a trusted key.

Note that GNU.RDF will NOT develop RDF parsers. There are already some good ones
out there (most notably Redland) and duplication of effort is really not needed.

Here's the big picture:

|       +------------+      +---------+                             |      
| +---> |   agents   | <--- |         |                             |
| |     +------------+      |         |          +--------------+   |
| |                         |  store  | <------> |  harvesters  | <--- RDF feeds
| |     +------------+      |         |          +--------------+   |
| | +-> |  managers  | <--> |         |                             |
| | |   +------------+      +---------+                             |
+-| |---------------------------------------------------------------+
  | |                         SERVER
  | |
| | |                                |
| | |   +--------------+             |                                     
| | +-> |              |             |
| |     |  processors  | <---> user  |
| +---> |              |             |
|       +--------------+             |
|                                    |



reply via email to

[Prev in Thread] Current Thread [Next in Thread]