[mnet-devel] Allow me to introduce myself...

Myers W. Carpenter myers at maski.org
Tue Apr 1 22:29:57 BST 2003


On Sat, Mar 29, 2003 at 11:11:08AM -0800, rob kinninmont wrote:
> My focus is going to be on applying Mnet tech to doing backups more 
> than internet publishing, but I'm hoping that I can help with the 
> progress of the project as a whole.  One of the things I gather I'll 
> need to work on is how to build a ContentTracker.  I didn't see much in 
> the way of docs about that specifically, and wonder if anyone can point 
> me in the right direction for figuring out how to run a ContentTracker, 
> and then also altering it and debugging it.

The content tracker as it stands can be thought of as a database with user
defined tables, called 'content types'.  These tables are described in
'.mct' files, which tell what fields are needed and what's allowed in them
(string or number).  The client node talking a content tracker server node
sends quieries in the form of xml documents, and responds in kind.

The problem with this is you have limited fields to store metadata about a
file.  If for example I wanted to store the bitzi.com bitprint of a file or
the musicbrainz id of a song I would have to come up with a new content type
and everyone woule have to adopt it.

So content tracker version 2 will make use of something called a Triple
Store.  Triples are a concept often talked about in the context of RDF
documents, and are key to the Semantic web [1].  The idea is that for every
file stored in Mnet you have a URI.  Then you can pair it up with an RDF
attribute, and a value for that attribute.  These three terms are called the
subject, predicate and object.

An example:

  subject:	mnet:7riq4deuwwsydytr1efrwt8k8hiso1ff79nfneocw9f49rmc63ebdpnjoi
predicate:	http://bitzi.com/xmlns/2002/01/bz-core#bitprint
   object:	3KIZIJB64XP3NCXAE4ISQZT3QNCTF7VDNK5UNR8ZPQ5MFASNGVB5MISV7ESUSB2MN5R3IY2

By coming up with new predicates, or reusing ones already used (like Dublin
Core, Musicbrainz, Bitzi), you can have unlimited fields to store metadata
in.

Ok, ok... yes this is a touch complex.  I wouldn't have thought all this up
myself, BUT, this is someof the building blocks of the Semantic web, and it
fits what we want to to perfectly, so we get have someone else write code to
do what we want, and hopefully if this is exposed right, others can use us
for something (distributed search engines) they want down the road.

I'm thinking that when a client node queries a content tracker node the
client uses a standard that I'm planning on writing with the Tristero [2]
folks.  The CT will return use N-Triple notation of what it finds.

Inbetween the Node backend and the UI we will use the Tristero search
interface [3].

RDFLib [4] already has most of the code we need to implement this, including
a Sleepycat DB based TripleStore.  It works fine with the xml parsers/tools
in python 2.2 std libs, so we can phase out PyXML (yea!).

Ask questions.

myers

1 - http://www.w3.org/2001/sw/
2 - http://tristero.sourceforge.net/
3 - http://tristero.sourceforge.net/search-python.html
4 - http://rdflib.net/
-- 
You're just jealous because the voices only talk to me.


-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb: 
Dedicated Hosting for just $79/mo with 500 GB of bandwidth! 
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
mnet-devel mailing list
mnet-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mnet-devel




More information about the Mnet-devel mailing list