I think I may have misunderstood the original question ...
" what is the intended user group of your application?" 
If by that do you mean "What types of software can be created" ... 

The answer is anything from one-shot interactive command/queries to enterprise 
grade production quality document processing.  For example, at Epocrates, I use 
xmlsh to script bulk transformations of clinical documents into device 
formatted binary xml databases.  These processes are part of a 
production/release content deployment run weekly.

I added the ML module to experiment/prototype integrating ML into this 
production workflow by hosting the content on an ML server instead of the file 
system and offloading some of the processing (mainly xquery) onto the ML server 
but still orchestrating the workflow from outside the ML server (with an xmlsh 
script).

-David

----------------------------------------
David A. Lee
Senior Principal Software Engineer
Epocrates, Inc.
[email protected]
812-482-5224
 



-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Lee, David
Sent: Wednesday, April 22, 2009 7:30 AM
To: General Mark Logic Developer Discussion
Subject: RE: [MarkLogic Dev General] RE: Marklogic extension to xmlsh

Thanks Geert!
I have not used cqsh although I have used cq, and from the description I
have an idea what cqsh does.
Similar to other DB vendor specific "shells".  (e.g. mysql client as an
example).
That is, it exposes primitive operations to the back end as command line
operations.
And in that way, thats all the marklogic extension module to xmlsh does.
But in a different way, xmlsh is vastly more then a way of running
command lines.  Its an entire programming
environment designed on the core design philosophy of the unix shells
but re-focused on the problems and features of XML. so while you can
certianly use it in a primitive way, say putting a document to the ML
server,
you can also use it in a more integrated fashion.   For example
variables and expressions in xmlsh can be any XML type
and these are naturally integrated with the ML extension.  So for
example you can put dynamic content as documents.
 
for a in <[ <foo/> , <bar>spam</bar> , <hello>world</hello> ]> ; do 
   uri=<[ node-name($a) ]>
   ml:put -uri ${uri}.xml $a 
done


As for intended users,  I'd say any kind of "shell" or "programming
language" nowadays is intended for developers.
Interestingly SQL was originally intended for non-programmers, written
so "ordinary users" could query the database
without having to ask a DBA ... but those days are gone.

xmlsh is intended for developers or perhaps system integrators where a
significant portion of their tasks is XML based.
Its nearly a "drop in replacement" for shell scripts (such as bash) as
its large language compatible with bash/sh/ksh.
But with its native support for XML types it can script xml processes
much more efficiently and easily then in a scripting language that can
only deal with strings and files.  Since entire xml documents (or
fragments) can be stored in shell variables they can be passed amoung
xml processes in the same memory space with very little overhead and
much convenience.  The "end result" of a script in xmlsh however could
be used for a wider audience.  

the ML extension to xmlsh is an experiment to try to bring ML access
into xmlsh as a 'first class citizen' so its as easy to work with ML as
it is to work with xml files and operations on the local system.

I would be thrilled if anyone would play with it and give me feedback. I
have a lot of ideas about how things could be done better, for example
being able to "cd" to a ML DB so that the internal wildcard expansions
would work (echo *).  I'm considering a global "login" so that the XCC
connection doesn't have to be re-created on each command.
xmlsh currently supports URL's as files so you can do for example
   xslt stylesheet < http://www.xxx.yy/file.xml

This could easily come from a ML server, but I could imagine using XCC
for this and allowing a xcc scheme to be able to access ML documents as
files in any context (not just ml:get ) that way you could intermix
non-ML commands directly. 
For example 
    xcmp -x xcc://doc1 xcc://doc2

Without having to first load the documents to local disk.  Right now
this would have to be done as
   ml:get doc1 > doc1 ; ml:get doc2 > doc2 ; xcmp -x doc1 doc2 ; rm doc1
; doc
or 
   xcmp -x $<(ml:get doc1) $<(ml:get doc2)


Anyway I've rambled enough !  I'd love it if anyone would take a few
minutes and try this out.
I am NOT an expert in ML so I dont know how well this module works in
real world situations or what would be actually useful ideas for
improvement (instead just intellectually interesting ideas).

Thanks
-David Lee





-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Geert
Josten
Sent: Wednesday, April 22, 2009 2:36 AM
To: General Mark Logic Developer Discussion
Subject: [MarkLogic Dev General] RE: Marklogic extension to xmlsh

Hi David,

Personally, I am intrigued by these kind of initiatives. I really like
to have a lot of options to utilize applications like MarkLogic Server.
And you are not the first to make a shell interface available for
MarkLogic Server. You might take a look at CQSH on the MarkLogic XQzone
(http://developer.marklogic.com/code/). Though I like the idea about
xmlsh that it can be used for other tools as well, where I am uncertain
that is possible with CQSH. I do not have personal experience with CQSH
(yet)..

A few question though: what is the intended user group of your
application? My first impression about CQSH was that it would be really
usefull for deployment purposes, but what about xmlsh?

Kind regards,
Geert

>


Drs. G.P.H. Josten
Consultant


http://www.daidalos.nl/
Daidalos BV
Source of Innovation
Hoekeindsehof 1-4
2665 JZ Bleiswijk
Tel.: +31 (0) 10 850 1200
Fax: +31 (0) 10 850 1199
http://www.daidalos.nl/
KvK 27164984
De informatie - verzonden in of met dit emailbericht - is afkomstig van
Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u
dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te
verwijderen. Aan dit bericht kunnen geen rechten worden ontleend.


> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> Lee, David
> Sent: dinsdag 21 april 2009 23:39
> To: General Mark Logic Developer Discussion
> Subject: [MarkLogic Dev General] Marklogic extension to xmlsh
>
> I have created a MarkLogic extension module to the xmlsh XML
> scripting language.
>
> This is an open source project.
>
>
>
> Details available here
>
> http://www.xmlsh.org/ModuleMarkLogic
>
>
>
> It can be downloaded from sourceforge at
>
> https://sourceforge.net/project/showfiles.php?group_id=228358&;
> package_id=300026
>
>
>
> and requires the xmlsh project (also at sourceforge)
>
> https://sourceforge.net/project/showfiles.php?group_id=228358&;
> package_id=276577
>
>
>
>
>
> Questions, comments and suggestions greatly welcome
>
>
>
> -David Lee
>
>
>
>
>
>
>
>
>
> ----------------------------------------
>
> David A. Lee
>
> Senior Principal Software Engineer
>
> Epocrates, Inc.
>
> [email protected] <mailto:[email protected]>
>
> 812-482-5224
>
>
>
>
>
>

_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general

Reply via email to