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

Re: [Fwd: Update on Ozone's library...]



> > Hmm... I really have to check what's wrong with my dev list
> > subscription. I don't seem to get that email. Sorry to spam the users
> > list.
> 
> cross posting over ozone-users and ozone-dev does not work.
> 

My problem is that I don't get mail from ozone-dev list. :( Could you
please help me on this? Thanks.

> > 1. RDF databaes. Ozone seems to be ideal storage for RDF and fit quite
> > well with W3C's interfaces proposal. The current status is that we are
> > trying to get the alpha out as soon as possible.
>
> We are looking forward ;)
> 

Working hard on it! ;)

> > 2. A deductive database based on either RDF or Ozone itself. We want to
> > get something like W3C Metalog or N3 to work with our RDF
> > implementation. Look like we will have to implement something like Rete
> > algorithm for Ozone. We are debeting whether to go generic with Ozone or
> > specific with our RDF implementation.
> 
> Wow! What's a deductive database? or a Rete algorithm?
> 

Oh, a deductive database is a database with AI rule engine. It will
provides a richer way to express and use data in the database. The
following is some like to deductive database docs.

http://citeseer.nj.nec.com/58652.html
http://www.cs.wisc.edu/coral/
http://www.cs.sunysb.edu/~kostis/Papers/xsb_ddb.html

Basically, a deductive allows the users to add rules to the database to
express more relationship among database objects.

For example, if we insert the following rules into a movie database.
Assuming A is a user object and B is a movie object. 

If A.age < 18 AND B.rating = 'R' THEN (PlayMovieFor(B,A) == false)

We can ask the database PlayMovieFor('South Park: The Movie', 'David')
and it will gives the answer. Kind of like creating virtual view over
the database without actually view.

However, I think I mean was to add a inference engine to Ozone which
takes the object in the database as facts in AI's knowledge database.
And apply rules to generate more facts (objects) or change some objects'
state.

There are two memory based implementations of such shell for Java:

Jess:
http://herzberg.ca.sandia.gov/jess/

JEOPS:
http://www.di.ufpe.br/~csff/jeops/

I think JEOPS fits better with Ozone.

> > Well... It should be fine for the jar files. Jars are binary files and
> > there is a little to get the diff in those files except saving something
> > in updating. However, the diff and patch used by CVS doesn't perform
> > well in binary merge.
> 
> I like the idea of Michael to put version numbers somewhere in the CHANGES file
> and/or in the revision log of the CVS file. What do you think?
> 

In the revision log would do. It's easy to keep up to data and easy to
check. How about using CVS TAG. For example, when you update the
castor.jar to 0.9, cvs tag the jar file with CASTOR_0_9. A simple 'cvs
status -v castor.jar' can find out the version.

However, this doesn't seem to work with offline download. 

CHANGE files doesn't seem to be a easy place to find such info. It's
unlikely that all jar will gets updated in every changed and it doesn't
make sense to list all jar's version in ever version change.

How about a README.jars in the bin directory to document the version of
Jars and maybe the Jar's origin and a little paragraph about how Ozone
using them?

It took me 20 minutes to figure out what omquery.jar does and what
xtdash.jar is.

> > On the other hand, having the version numbers in the jar files makes
> > integrating Ozone into other projects easier. We use junit and castor in
> > our project as well. Have two conflict version (especially Castor) is a
> > big pain in the butt.
> 
> I still beliefe that the jars in ozone/bin should not affect your ozone client
> development. The only problem I see is that if you start your client via the
> ojvm command then both versions of the jars are in the CLASSPATH. But it should
> be no problem to fix this by just adjusting the order of entries in the
> ozone/bin/ozoneEnv script near line 67. Did you try this?

Well... It doesn't work too well for me. 

For example, I use Castor in my codes as well. The two version of castor
have different call interface and mixing two like that will not make my
codes co-exists with Ozone. They need to be on the same version.

David Li
DigitalSesame