[Zope-Moz] Design discussion (was RDF Use cases)

Brian Lloyd Brian@digicool.com
Mon, 20 Dec 1999 15:24:44 -0500


> > These issues were also discussed by the people designing things like
> > the Mozilla sidebar. It's an interisting discussion you 
> might want to
> > have a look at, as it discusses the why and how of RDF:
> >
> >   http://www.mozilla.org/xpfe/xulrdf.htm
> 
> Now that was enlightening.
> I suggest another link for the benifit of others:-
> http://www.mozilla.org/rdf/doc/api.html
> 
> ...
>
> I defer my initial suggestion for a (non-RDF) XML based model 
> in favour
> of an RDF-based model. I'm not saying that we ought to use RDF in the
> said way. I'm saying that if we have to choose between RDF and a new
> zope XML schema for representing the data in an ZODB, RDF is 
> the way to
> go. RDF Schemas will still have to be designed, but the 
> immense support
> for RDF in mozilla will be very useful.


Another interesting read is the "Datasource How-To" at:
http://www.mozilla.org/rdf/doc/datasource-howto.html

While the bulk of it deals with implementing RDF datasources
inside of Mozilla as XPCOM objects (which we don't care too
much about), the leadoff core concept:

  "More concretely, a datasource is a translator that can present 
   information as a collection of RDF statements. For example, a 
   "file system datasource" would translate the file system into 
   statements like "/tmp is a directory" and "/tmp/foo is contained 
   within /tmp". An "IMAP datasource" would use the IMAP protocol to 
   translate your mail server's inbox as a collection of statements 
   like "message number 126's subject is 'make money fast on the 
   Internet'" and "message number 126 was sent by 
   'spammer128@hotmail.com'". An "address book" datasource could 
   translate a database file into statements like 
   "spammer128@hotmail.com's real name is 'Billy Dumple'" and
   "spammer128@hotmail.com is considered an 'important friend'." 

   Statements from one datasource can be combined with statements 
   from another datasource using a composite datasource. By combining 
   statements from the IMAP datasource and address book datasource, 
   above, we'd be able to identify the sender of "message 126" as an 
   "important friend". 

...is a great example of how we'd like to harness the abilities 
of a well-thought out RDF design. A possible Zope-ish version of
the example above would be: a "security info" datasource could 
produce RDF saying that "Brian has the Manager role" and "The
Manager role has View permission on Folder X". A separate sitemap
datasource might say that "Folder Y contains Folder X". By 
combining these datasources on the client side, you can now 
provide a user interface in mozilla that shows you only those 
parts of the site that Brian can see, or even create a kind of 
view that summarizes what permissions each person has on each 
object in the site. All of this without adding code to Zope :)

> 
> So, where do we go from here?
> 
> Cheers,
> ~Shalabh

As Martijn has posted, the first step is to gather the use cases
for RDF support in Zope, evaluate them and come to agreement on
the scope the project. This is the first milestone. After that, 
we will come up with and validate a candidate architecture that 
satisfies the use cases. That candidate architecture will be 
posted for review and comment (2nd milestone).

We'd like to finish gathering input on the use cases and be
able to produce a "vision" document stating the scope of the
project by the end of this week, if possible.



Brian Lloyd        brian@digicool.com
Software Engineer  540.371.6909              
Digital Creations  http://www.digicool.com