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
