You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by Dare Obasanjo <kp...@yahoo.com> on 2001/12/03 03:16:08 UTC

Adding a data manipulation language and API to Xindice

Hello,
    I have designed a  Simple XML Data Manipulation Language (SiXDML) as well
as an accompanying API. As a proof of concept an implementation of this
language and the API were written for the eXcelon native XML database. Details
about SiXDML are available at

    http://www.25hoursaday.com/sixdml/

and there is a prototype available for testing here

    http://www.25hoursaday.com/sixdml/demo.html

as well as an API ready for review

    http://www.25hoursaday.com/sixdml/javadoc/

I would like to know if the Xindice team would be interested in working with
me on an implementation of the SiXDML language and API for Xindice.

--
THINGS TO DO IF I BECOME AN EVIL OVERLORD #133
If I find my beautiful consort with access to my fortress has been associating
with the hero, I'll have her executed. It's regrettable, but new consorts
are easier to get than new fortresses and maybe the next one will pay
attention
at the orientation meeting.


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


Re: Adding a data manipulation language and API to Xindice

Posted by Dare Obasanjo <kp...@yahoo.com>.
----- Original Message -----
From: "Kimbro Staken" <ks...@dbxmlgroup.com>
To: <xi...@xml.apache.org>
Sent: Saturday, February 02, 2002 3:46 PM
Subject: Re: Adding a data manipulation language and API to Xindice


> Man you need to fix your clock, keeping track of all your messages is
> becoming a real pain. :-) Hopefully Excelon will see fit to accommodate
> you with a new license.

I can't wait. Hopefully once a Xindice implementation exists I no longer have
to bother with eXcelon.

> On Sunday, December 2, 2001, at 07:16 PM, Dare Obasanjo wrote:
> >
> > I would like to know if the Xindice team would be interested in working
> > with
> > me on an implementation of the SiXDML language and API for Xindice.
> >
>
> Big +1 here. The beauty of this is that it layers over the existing API
> and indexing system. It shouldn't be hard to implement at all. We'll need
> to look carefully at exactly what level it is integrated. Are you willing
> to contribute your existing code to the project or would you want to
> tackle this as an external effort?

All my existing code is yours, I already have a tarball ready with source
included licensed under a BSD style licence.  The only thing preventing me
from putting it online is I'm debating on whether to fix one or two of the
known issues before doing so. Specifically a WHERE clause on queries and
updates to collections and adding a NamespaceMap for use with queries and
updates. Also adding namespace declaration syntax wouldn't be a bad idea.

Either way, I'll have source available my Monday or Tuesday.


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


Re: Adding a data manipulation language and API to Xindice

Posted by Kimbro Staken <ks...@dbxmlgroup.com>.
Man you need to fix your clock, keeping track of all your messages is 
becoming a real pain. :-) Hopefully Excelon will see fit to accommodate 
you with a new license.

On Sunday, December 2, 2001, at 07:16 PM, Dare Obasanjo wrote:
>
> I would like to know if the Xindice team would be interested in working 
> with
> me on an implementation of the SiXDML language and API for Xindice.
>

Big +1 here. The beauty of this is that it layers over the existing API 
and indexing system. It shouldn't be hard to implement at all. We'll need 
to look carefully at exactly what level it is integrated. Are you willing 
to contribute your existing code to the project or would you want to 
tackle this as an external effort?

> --
> THINGS TO DO IF I BECOME AN EVIL OVERLORD #133
> If I find my beautiful consort with access to my fortress has been 
> associating
> with the hero, I'll have her executed. It's regrettable, but new consorts
> are easier to get than new fortresses and maybe the next one will pay
> attention
> at the orientation meeting.
>
>
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
>
>
>
Kimbro Staken
XML Database Software, Consulting and Writing
http://www.xmldatabases.org/


Re: Adding a data manipulation language and API to Xindice

Posted by Dare Obasanjo <kp...@yahoo.com>.
Source code is available here

    http://b-i-m.sourceforge.net/SiXDML.zip

released under the BSD license. I still have some plans for that
implementation (such as the WHERE clause for collection operations) but I
doubt that I'll be writing any code for the next week or two while in midst of
moving across the country.

If you could take a look at the code and offer any guidance or help with
porting that to Xindice I'll appreciate it.Although it may be a few days in
between when I receive and respond to messages.

PS: Since I'll be out of town for a while, my homepage will be mirrored here
http://www.prism.gatech.edu/~gte855q/ until I get a place to settle down and
find some broadband access. The SiXDML paper can be obtained here
http://www.prism.gatech.edu/~gte855q/sixdml/ or from http://www.sixdml.org

--
THINGS TO DO IF I BECOME AN EVIL OVERLORD #133
If I find my beautiful consort with access to my fortress has been associating
with the hero, I'll have her executed. It's regrettable, but new consorts
are easier to get than new fortresses and maybe the next one will pay
attention
at the orientation meeting.

----- Original Message -----
From: "Tom Bradford" <br...@dbxmlgroup.com>
To: <xi...@xml.apache.org>
Sent: Saturday, February 02, 2002 3:25 PM
Subject: Re: Adding a data manipulation language and API to Xindice


> On Sunday, December 2, 2001, at 07:16 PM, Dare Obasanjo wrote:
> > I would like to know if the Xindice team would be interested in working
> > with
> > me on an implementation of the SiXDML language and API for Xindice.
>
> I can't speak for the Xindice community as a whole, but I'd definitely
> like to see an implementation of SiXDML for Xindice.  Let me know what I
> can do to help.
>
> --
> Tom Bradford - http://www.tbradford.org
> Apache Xindice (Native XML Database) - http://xml.apache.org
> Project Labrador (Web Services Framework) - http://notdotnet.org


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


Re: Adding a data manipulation language and API to Xindice

Posted by "Mark J. Stang" <ma...@earthlink.net>.
I love replying to my own e-mail, it's the only way I get any :-).

I jar'ed the directory(crud.jar), it looks pretty bad when viewed through browser...

Mark

"Mark J. Stang" wrote:

> My only dependency, other than Xindice, is the parser classes.   I have heard
> great stuff about ANTLR, I just don't know how to use it.   If we can get a
> stack or list of tokens then my code will work with Xindice from there on
> down.   I probably don't have as complete an implementation as you do...
>
> Disclaimer:
> Caveat emptor, this code hasn't been seen by anyone else other than me.
> It isn't necessary production ready...
> Having said that:
>
> http://www.markjstang.com/mark/crud
>
> Take a look at the tests.   If you like I can jar it up...
>
> Mark
>
> Dare Obasanjo wrote:
>
> > ----- Original Message -----
> > From: "Mark J. Stang" <ma...@earthlink.net>
> > To: <xi...@xml.apache.org>
> > Sent: Saturday, February 02, 2002 4:41 PM
> > Subject: Re: Adding a data manipulation language and API to Xindice
> >
> > > I have been working on something similar, I call it CRUD(Create, Read,
> > > Update, Delete).    I used some code from a book called "Java Parsers"
> > > If I had written the whole thing myself, I would have donated the whole
> > > thing to Xindice.   I do have a layer at the bottom that encapsulates
> > > the api.   Basically, I took all of the sample programs and combined them
> > > into one api.   I have a parser that parses "insert, select, delete, update,
> > > append and remove.   The insert, select, delete work on an entire document.
> > > I also have code to create and delete collections.   All of this has JUnit
> > > tests and I am using it in my product.   What I need is a fast open-source,
> > > simple parser.   It looks like SiXDML is better defined than mine is :-).
> > >
> > > So what do we do next?
> > >
> >
> > Whatever you feel comfortable with. All the SiXDML code was written by me. The
> > API depends on the XML:DB JAR file while the language parser also needs the
> > ANTLR JAR files. Of course, the eXcelon implementation depends on having
> > eXcelon installed as well as the Oracle XDK.
> >
> > --
> > THINGS TO DO IF I BECOME AN EVIL OVERLORD #133
> > If I find my beautiful consort with access to my fortress has been associating
> > with the hero, I'll have her executed. It's regrettable, but new consorts
> > are easier to get than new fortresses and maybe the next one will pay
> > attention
> > at the orientation meeting.
> >
> > _________________________________________________________
> >
> > Do You Yahoo!?
> >
> > Get your free @yahoo.com address at http://mail.yahoo.com


Re: Adding a data manipulation language and API to Xindice

Posted by "Mark J. Stang" <ma...@earthlink.net>.

Dare Obasanjo wrote:

> --- "Mark J. Stang" <ma...@earthlink.net> wrote:
> > My only dependency, other than Xindice, is the
> > parser classes.
>
> It should be the same for a Xindice implementation of
> SiXDML. Actually maybe not since I'd want to implement
> schema support and transforms just as I've done in the
> eXcelon implementation. So there'll probably be
> dependencies on Xerces and Xalan as well which should
> be acceptable.
>

Xerces and Xalan are fine.   I believe I can use the parser code
that I got out of the book for my own projects, I didn't feel
comfortable "donating" it into an Open Source Project.   So,
as long as everything is Open Source, I think that it is fine.

>
> > I have heard
> > great stuff about ANTLR, I just don't know how to
> > use it.
>
> ANTLR is fairly easy to grasp if you have a background
> in parsing. The SiXDML language implementation is my
> first time using ANTLR and I learned most of it in
> less than a week or so. The documentantation could be
> better about potential gotchas but it so much more
> powerful than lex & yacc that I soon overlooked any
> minor gripes that I had.
>
> > If we can get a
> > stack or list of tokens then my code will work with
> > Xindice from there on
> > down.   I probably don't have as complete an
> > implementation as you do...
>
> Cool, my language parser relies on my API so that work
> is already done. So what is actually needed is to
> implement the SiXDML API for Xindice.

Let me know if you have any questions!

> I'll take a look
> at your code tomorrow (or is that later today?) and
> see what I can leverage.
>

Crud.java is designed to implement the kind of access that is
common.   For instance, I have a createCollection method.
I also have a "read" that is used to read documents based on
key.   As part of my parser code, not included but I can donate
it,  is a search mechanism for things like "where" clauses.  It needs
the most work.   I can do "=", "starts-with" and "contains".
I have attached QlCommand.java, look at findHits() and search().

>
> PS: What version of Xindice should I use to work on
> the SiXDML implementation? The version off the web or
> from CVS?
>

I am using 1.0b4 (Mustard), I don't think it is radically different
than rc1.   I would suggest that you use the version from CVS.
I just start the server and let it run.   Kimbro/Tom would have a
better idea.

>
> PPS: I don't use JUnit and probably won't have time to
> learn it so some help with setting up tests may be
> necessary.
>

Setting up JUnit only requires a jar.   The unit tests will run as is.
It is fairly trivial to use, but I can help.

>
> =====
> LAWS OF COMPUTER PROGRAMMING, VIII
> Any non-trivial program contains at least one bug.
> http://www.25hoursaday.com
> Carnage4Life (slashdot/advogato/kuro5hin)
>
> __________________________________________________
> Do You Yahoo!?
> Great stuff seeking new owners in Yahoo! Auctions!
> http://auctions.yahoo.com

Re: Adding a data manipulation language and API to Xindice

Posted by Dare Obasanjo <kp...@yahoo.com>.
--- "Mark J. Stang" <ma...@earthlink.net> wrote:
> My only dependency, other than Xindice, is the
> parser classes.   

It should be the same for a Xindice implementation of
SiXDML. Actually maybe not since I'd want to implement
schema support and transforms just as I've done in the
eXcelon implementation. So there'll probably be
dependencies on Xerces and Xalan as well which should
be acceptable. 

> I have heard
> great stuff about ANTLR, I just don't know how to
> use it.   

ANTLR is fairly easy to grasp if you have a background
in parsing. The SiXDML language implementation is my
first time using ANTLR and I learned most of it in
less than a week or so. The documentantation could be
better about potential gotchas but it so much more
powerful than lex & yacc that I soon overlooked any
minor gripes that I had. 

> If we can get a
> stack or list of tokens then my code will work with
> Xindice from there on
> down.   I probably don't have as complete an
> implementation as you do...

Cool, my language parser relies on my API so that work
is already done. So what is actually needed is to
implement the SiXDML API for Xindice. I'll take a look
at your code tomorrow (or is that later today?) and
see what I can leverage. 

PS: What version of Xindice should I use to work on
the SiXDML implementation? The version off the web or 
from CVS? 

PPS: I don't use JUnit and probably won't have time to
learn it so some help with setting up tests may be
necessary. 

=====
LAWS OF COMPUTER PROGRAMMING, VIII	
Any non-trivial program contains at least one bug. 
http://www.25hoursaday.com       
Carnage4Life (slashdot/advogato/kuro5hin)

__________________________________________________
Do You Yahoo!?
Great stuff seeking new owners in Yahoo! Auctions! 
http://auctions.yahoo.com

Re: Adding a data manipulation language and API to Xindice

Posted by "Mark J. Stang" <ma...@earthlink.net>.
My only dependency, other than Xindice, is the parser classes.   I have heard
great stuff about ANTLR, I just don't know how to use it.   If we can get a
stack or list of tokens then my code will work with Xindice from there on
down.   I probably don't have as complete an implementation as you do...

Disclaimer:
Caveat emptor, this code hasn't been seen by anyone else other than me.
It isn't necessary production ready...
Having said that:

http://www.markjstang.com/mark/crud

Take a look at the tests.   If you like I can jar it up...

Mark

Dare Obasanjo wrote:

> ----- Original Message -----
> From: "Mark J. Stang" <ma...@earthlink.net>
> To: <xi...@xml.apache.org>
> Sent: Saturday, February 02, 2002 4:41 PM
> Subject: Re: Adding a data manipulation language and API to Xindice
>
> > I have been working on something similar, I call it CRUD(Create, Read,
> > Update, Delete).    I used some code from a book called "Java Parsers"
> > If I had written the whole thing myself, I would have donated the whole
> > thing to Xindice.   I do have a layer at the bottom that encapsulates
> > the api.   Basically, I took all of the sample programs and combined them
> > into one api.   I have a parser that parses "insert, select, delete, update,
> > append and remove.   The insert, select, delete work on an entire document.
> > I also have code to create and delete collections.   All of this has JUnit
> > tests and I am using it in my product.   What I need is a fast open-source,
> > simple parser.   It looks like SiXDML is better defined than mine is :-).
> >
> > So what do we do next?
> >
>
> Whatever you feel comfortable with. All the SiXDML code was written by me. The
> API depends on the XML:DB JAR file while the language parser also needs the
> ANTLR JAR files. Of course, the eXcelon implementation depends on having
> eXcelon installed as well as the Oracle XDK.
>
> --
> THINGS TO DO IF I BECOME AN EVIL OVERLORD #133
> If I find my beautiful consort with access to my fortress has been associating
> with the hero, I'll have her executed. It's regrettable, but new consorts
> are easier to get than new fortresses and maybe the next one will pay
> attention
> at the orientation meeting.
>
> _________________________________________________________
>
> Do You Yahoo!?
>
> Get your free @yahoo.com address at http://mail.yahoo.com


Re: Adding a data manipulation language and API to Xindice

Posted by Dare Obasanjo <kp...@yahoo.com>.
----- Original Message -----
From: "Mark J. Stang" <ma...@earthlink.net>
To: <xi...@xml.apache.org>
Sent: Saturday, February 02, 2002 4:41 PM
Subject: Re: Adding a data manipulation language and API to Xindice


> I have been working on something similar, I call it CRUD(Create, Read,
> Update, Delete).    I used some code from a book called "Java Parsers"
> If I had written the whole thing myself, I would have donated the whole
> thing to Xindice.   I do have a layer at the bottom that encapsulates
> the api.   Basically, I took all of the sample programs and combined them
> into one api.   I have a parser that parses "insert, select, delete, update,
> append and remove.   The insert, select, delete work on an entire document.
> I also have code to create and delete collections.   All of this has JUnit
> tests and I am using it in my product.   What I need is a fast open-source,
> simple parser.   It looks like SiXDML is better defined than mine is :-).
>
> So what do we do next?
>


Whatever you feel comfortable with. All the SiXDML code was written by me. The
API depends on the XML:DB JAR file while the language parser also needs the
ANTLR JAR files. Of course, the eXcelon implementation depends on having
eXcelon installed as well as the Oracle XDK.


--
THINGS TO DO IF I BECOME AN EVIL OVERLORD #133
If I find my beautiful consort with access to my fortress has been associating
with the hero, I'll have her executed. It's regrettable, but new consorts
are easier to get than new fortresses and maybe the next one will pay
attention
at the orientation meeting.


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


Re: Adding a data manipulation language and API to Xindice

Posted by "Mark J. Stang" <ma...@earthlink.net>.
I have been working on something similar, I call it CRUD(Create, Read,
Update, Delete).    I used some code from a book called "Java Parsers"
If I had written the whole thing myself, I would have donated the whole
thing to Xindice.   I do have a layer at the bottom that encapsulates
the api.   Basically, I took all of the sample programs and combined them
into one api.   I have a parser that parses "insert, select, delete, update,
append and remove.   The insert, select, delete work on an entire document.
I also have code to create and delete collections.   All of this has JUnit
tests and I am using it in my product.   What I need is a fast open-source,
simple parser.   It looks like SiXDML is better defined than mine is :-).

So what do we do next?

Mark

Tom Bradford wrote:

> On Sunday, December 2, 2001, at 07:16 PM, Dare Obasanjo wrote:
> > I would like to know if the Xindice team would be interested in working
> > with
> > me on an implementation of the SiXDML language and API for Xindice.
>
> I can't speak for the Xindice community as a whole, but I'd definitely
> like to see an implementation of SiXDML for Xindice.  Let me know what I
> can do to help.
>
> --
> Tom Bradford - http://www.tbradford.org
> Apache Xindice (Native XML Database) - http://xml.apache.org
> Project Labrador (Web Services Framework) - http://notdotnet.org


Re: Adding a data manipulation language and API to Xindice

Posted by Dare Obasanjo <kp...@yahoo.com>.
----- Original Message -----
From: "Tom Bradford" <br...@dbxmlgroup.com>
To: <xi...@xml.apache.org>
Sent: Saturday, February 02, 2002 3:25 PM
Subject: Re: Adding a data manipulation language and API to Xindice


> On Sunday, December 2, 2001, at 07:16 PM, Dare Obasanjo wrote:
> > I would like to know if the Xindice team would be interested in working
> > with
> > me on an implementation of the SiXDML language and API for Xindice.
>
> I can't speak for the Xindice community as a whole, but I'd definitely
> like to see an implementation of SiXDML for Xindice.  Let me know what I
> can do to help.
>


For now if you can give the API a good look to see what will be tricky to
implement in Xindice or not I'd appreciate it. The good thing is that the
language parser is dependent on the API, so once the API is done the language
parser comes for free, all that I'd have to change would be the import
statements and a few strings.

The other issue is whether the API will benefit performance wise by being
closer to the DB engine instead of being an application that runs over the DB
like the current eXcelon implementation. I'll leave that to you guys to
decide.

--
THINGS TO DO IF I BECOME AN EVIL OVERLORD #133
If I find my beautiful consort with access to my fortress has been associating
with the hero, I'll have her executed. It's regrettable, but new consorts
are easier to get than new fortresses and maybe the next one will pay
attention
at the orientation meeting.


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


Re: Adding a data manipulation language and API to Xindice

Posted by Tom Bradford <br...@dbxmlgroup.com>.
On Sunday, December 2, 2001, at 07:16 PM, Dare Obasanjo wrote:
> I would like to know if the Xindice team would be interested in working 
> with
> me on an implementation of the SiXDML language and API for Xindice.

I can't speak for the Xindice community as a whole, but I'd definitely 
like to see an implementation of SiXDML for Xindice.  Let me know what I 
can do to help.

--
Tom Bradford - http://www.tbradford.org
Apache Xindice (Native XML Database) - http://xml.apache.org
Project Labrador (Web Services Framework) - http://notdotnet.org