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 Tom Bradford <br...@dbxmlgroup.com> on 2002/02/03 00:25:51 UTC

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


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