![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Yesterday was the first day of training, and it was really good. The trainer is very knowledgeable and is a good teacher. She is explaining concepts well and giving us a very detailed look into the system. I think that I will be able to answer most if not all of the questions that I have been sent here to answer. It is clear that the folks at Mark Logic have thought a great deal about their product, and it has a very rich feature set. Some of our concerns about collation and diacritics have been allayed as it appears we can set the level of sensitivity to such things in the configuration of the server. Mark Logic has built a huge set of extensions to the standard XQuery function base allowing you to write entire applications just in XQuery which is a great feature set. There are also a significant number of APIs to the server in things like XDBC for Java and .Net, WebDAV and standard HTTP. I got a crash course in XQuery yesterday and found out some very interesting things about certain operators in XQuery. XQuery sequence operators by default return a match if any member of operand a matches any member of operand b, so (1,2,3) = (3,4) returns true, which is interesting. If you want to get a true equivalence, then you must use the function deep-equals. And if you want node equivalence then there is another function that can do that. XQuery is a purely functional language, so everything pretty much has to be a function with the exception of FLWOR statements. My initial assessment that XQuery was really just XPath plus FLWOR was a bit short of the mark however, as it appears you can define functions in XQuery allowing you to build complex systems. So it's basicaly XPath + XQuery functions + FLWOR + custom functions, so I wasn't far off, but that extra bit counts for a significant chunk of functionality. It's going to be interesting to see how the Mark Logic folks on our project do their PoC.