<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Micahpedia &#187; languages</title>
	<atom:link href="http://dubinko.info/blog/tags/languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://dubinko.info/blog</link>
	<description>From an XML geek, a reader, a writer, a connector, a man of the people (says keep hope alive)</description>
	<lastBuildDate>Tue, 27 Jul 2010 04:28:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Balisage contest: solving the wikiml problem</title>
		<link>http://dubinko.info/blog/2010/05/30/balisage-contest-solving-the-wikiml-problem/</link>
		<comments>http://dubinko.info/blog/2010/05/30/balisage-contest-solving-the-wikiml-problem/#comments</comments>
		<pubDate>Sun, 30 May 2010 20:00:48 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=829</guid>
		<description><![CDATA[I wish I could say I had something to do with the planning of this: part of Balisage 2010 is a contest to &#8220;encourage markup experts to review and to  research the current state of wiki      markup languages and to generate a proposal that serves to  de-babelize the [...]]]></description>
			<content:encoded><![CDATA[<p>I wish I could say I had something to do with the planning of this: part of Balisage 2010 is a <a href="http://www.balisage.net/contest.html">contest</a> to &#8220;encourage markup experts to review and to  research the current state of wiki      markup languages and to generate a proposal that serves to  de-babelize the current state of affairs for the long haul.&#8221;  To enter, you must propose a set of concrete steps (organizational,  social, and/or      technological) that will enable wiki content interchange, a real      WYSIWYG editor, and/or wiki syntax standardization.</p>
<p>This pushes all of my buttons. It&#8217;s got structured documents, Web, parser geekery, writing, engineering, and standards. There&#8217;s a bunch of open source prior art, including <a href="http://sourceforge.net/projects/pyxmlwiki/">PyXMLWiki</a>, which I adapted from some fantastic earlier work from Rick Jelliffe.</p>
<p>Sadly, MarkLogic employees aren&#8217;t eligible to enter. Get your write-up done by July 15 and sent to <strong><em>balisage-2010-contest at marklogic dot com</em></strong>. The winner will be announced at Balisage and will take home some serious prize winnings, and also will be strongly encouraged (but not required) to give a brief summary (~10 minutes) of their winning entry.</p>
<p>Can&#8217;t wait to see what comes out of this. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/05/30/balisage-contest-solving-the-wikiml-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A nugget from _A Canticle for Leibowitz_</title>
		<link>http://dubinko.info/blog/2009/05/15/a-nugget-from-leibowitz/</link>
		<comments>http://dubinko.info/blog/2009/05/15/a-nugget-from-leibowitz/#comments</comments>
		<pubDate>Sat, 16 May 2009 04:14:26 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[everythingismiscellaneous]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[canticle]]></category>
		<category><![CDATA[dialog]]></category>
		<category><![CDATA[doubt]]></category>
		<category><![CDATA[knowability]]></category>
		<category><![CDATA[leibowitz]]></category>
		<category><![CDATA[satire]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=536</guid>
		<description><![CDATA[This brilliant bit is almost a throwaway paragraph on page 304, near the end.
[Two men in a satirical dialog] managed only to demonstrate that the mathematical limit of an infinite sequence of &#8220;doubting the certainty with which something doubted is known to be unknowable  when the &#8217;something doubted&#8217; is still a preceding statement &#8216;unknowability&#8217; of [...]]]></description>
			<content:encoded><![CDATA[<p>This brilliant bit is almost a throwaway paragraph on page 304, near the end.</p>
<p style="padding-left: 30px;">[Two men in a satirical dialog] managed only to demonstrate that the mathematical limit of an infinite sequence of &#8220;doubting the certainty with which something doubted is known to be unknowable  when the &#8217;something doubted&#8217; is still a preceding statement &#8216;unknowability&#8217; of something doubted,&#8221; that the limit of this process at infinity can only be equivalent to a statement of <em>absolute certainty</em>, even though phrased ans an infinite series of negations of certainty.</p>
<p>It&#8217;s not like the whole book is like this&#8230;far from it. But it is chock full of little gems.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/05/15/a-nugget-from-leibowitz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Rich Snippets powered by RDFa</title>
		<link>http://dubinko.info/blog/2009/05/12/google-rich-snippets-powered-by-rdfa/</link>
		<comments>http://dubinko.info/blog/2009/05/12/google-rich-snippets-powered-by-rdfa/#comments</comments>
		<pubDate>Wed, 13 May 2009 04:43:09 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[commercialism]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[rdfa]]></category>
		<category><![CDATA[rich]]></category>
		<category><![CDATA[searchmonkey]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=532</guid>
		<description><![CDATA[The new feature called rich snippets shows that SearchMonkey has caught the eye of the 800 pound gorilla. Many of the same microformats and RDF vocabularies are supported. It seems increasingly inevitable that RDFa will catch on, no matter what the HTML5 group thinks. -m
]]></description>
			<content:encoded><![CDATA[<p>The new feature called <a href="http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html">rich snippets</a> shows that SearchMonkey has caught the eye of the 800 pound gorilla. Many of the same microformats and RDF vocabularies are supported. It seems increasingly inevitable that RDFa will catch on, no matter what the HTML5 group thinks. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/05/12/google-rich-snippets-powered-by-rdfa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Geek Thoughts: omito</title>
		<link>http://dubinko.info/blog/2009/03/11/geek-thoughts-omito/</link>
		<comments>http://dubinko.info/blog/2009/03/11/geek-thoughts-omito/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 19:51:10 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[geekthoughts]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[omit]]></category>
		<category><![CDATA[omito]]></category>
		<category><![CDATA[spanish]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=458</guid>
		<description><![CDATA[Omito:
(Spanish) First-person singular (yo) present indicative form of omitir (to omit).
(Proto-English) Shortened word form of an error of omission, e.g. in written.
More collected Geek Thoughts at http://geekthoughts.info.
]]></description>
			<content:encoded><![CDATA[<p>Omito:</p>
<p>(Spanish) First-person singular (yo) present indicative form of omitir (to omit).</p>
<p>(Proto-English) Shortened word form of an error of omission, e.g. in written.</p>
<p>More collected Geek Thoughts at http://<a href="http://geekthoughts.info/">geekthoughts</a>.info.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/03/11/geek-thoughts-omito/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wolfram Alpha</title>
		<link>http://dubinko.info/blog/2009/03/08/wolfram-alpha/</link>
		<comments>http://dubinko.info/blog/2009/03/08/wolfram-alpha/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 20:47:54 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[aswemaythink]]></category>
		<category><![CDATA[commercialism]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[anewkindofscience]]></category>
		<category><![CDATA[mathematica]]></category>
		<category><![CDATA[nks]]></category>
		<category><![CDATA[nlp]]></category>
		<category><![CDATA[practice]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[rdfa]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[semweb]]></category>
		<category><![CDATA[wolfram]]></category>
		<category><![CDATA[wolframalpha]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=456</guid>
		<description><![CDATA[The remarkable (and prolific) Stephen Wolfram has an idea called Wolfram Alpha. People used to assume the &#8220;Star Trek&#8221; model of computers:
that one would be able to ask a computer any factual question, and have it compute the answer.
Which has proved to be quite distant from reality. Instead
But armed with Mathematica and NKS [A New [...]]]></description>
			<content:encoded><![CDATA[<p>The remarkable (and prolific) Stephen Wolfram has an <a href="http://blog.wolfram.com/2009/03/05/wolframalpha-is-coming/">idea</a> called Wolfram Alpha. People used to assume the &#8220;Star Trek&#8221; model of computers:</p>
<p style="padding-left: 30px;">that one would be able to ask a computer any factual question, and have it compute the answer.</p>
<p>Which has proved to be quite distant from reality. Instead</p>
<p style="padding-left: 30px;">But armed with <em>Mathematica</em> and NKS [<a title="Own it. But never have been able to justify picking up a copy of Mathematica (yet)" href="http://www.amazon.com/exec/obidos/ASIN/1579550088/dubinkoinfo-20">A New Kind of Science</a>] I realized there’s another way: explicitly implement methods and models, as algorithms, and explicitly curate all data so that it is immediately computable.</p>
<p style="padding-left: 30px;">It’s not easy to do this. Every different kind of method and model—and data—has its own special features and character. But with a mixture of <em>Mathematica</em> and NKS automation, and a lot of human experts, I’m happy to say that we’ve gotten a very long way.</p>
<p>I&#8217;m still a SearchMonkey guy at heart, so I wonder how much Wofram&#8217;s team is familiar with existing Semantic Web research and practice&#8211;because at a high level this seems very much like RDF with suitable queries thereupon. If that&#8217;s a good characterization, that&#8217;s A Good Thing, since practical application has been one of SemWeb&#8217;s weak spots.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/03/08/wolfram-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crane Softwrights adds XQuery training</title>
		<link>http://dubinko.info/blog/2009/02/16/crane-softwrights-adds-xquery-training/</link>
		<comments>http://dubinko.info/blog/2009/02/16/crane-softwrights-adds-xquery-training/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 22:31:09 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[XQuery]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[crane]]></category>
		<category><![CDATA[softwrights]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xmlprague]]></category>
		<category><![CDATA[xquery]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=433</guid>
		<description><![CDATA[From the company home page, reknown XSLT trainer and friend G. Ken Holman has expanded his offerings to include XQuery training. The first such session is March 16-20, alongside XML Prague.
I&#8217;ve always thought there is great power in having both XSLT and XQuery tools at one&#8217;s disposal. I&#8217;ve seen people tend to polarize into one [...]]]></description>
			<content:encoded><![CDATA[<p>From the company <a href="http://cranesoftwrights.com/">home page</a>, reknown XSLT trainer and friend G. Ken Holman has expanded his offerings to include XQuery training. The first such session is March 16-20, alongside <a href="http://www.xmlprague.cz/index.html">XML Prague</a>.</p>
<p>I&#8217;ve always thought there is great power in having both XSLT and XQuery tools at one&#8217;s disposal. I&#8217;ve seen people tend to polarize into one camp or the other, but in truth there is a lot of common ground, as well as cases where the right technology makes for a much more elegant solution. So learning both is easier than it seems, and more useful than it seems.</p>
<p>If you will be around the conference, take a look at the <a href="http://cranesoftwrights.com/training/ptuxq/ptuxqsyl.htm">syllabus</a>. I&#8217;m curious to see others&#8217; reactions toward the combined XSLT + XQuery toolset. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/02/16/crane-softwrights-adds-xquery-training/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>On porting WebPath to Python 3k</title>
		<link>http://dubinko.info/blog/2009/01/07/on-porting-webpath-to-python-3k/</link>
		<comments>http://dubinko.info/blog/2009/01/07/on-porting-webpath-to-python-3k/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 08:08:26 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[languages]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[2to3]]></category>
		<category><![CDATA[byte]]></category>
		<category><![CDATA[exception]]></category>
		<category><![CDATA[lex]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[ply]]></category>
		<category><![CDATA[porting]]></category>
		<category><![CDATA[python3]]></category>
		<category><![CDATA[python3k]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[webpath]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=416</guid>
		<description><![CDATA[I&#8217;ve started looking into porting the WebPath code (and eventually XForms Validator) over to Python 3. The first step is external libraries, of which there is only one. WebPath uses the lex.py module from PLY. I had got it into my head that Python 2.x and 3.x were thoroughly incompatible, but leave it to the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started looking into porting the <a href="https://sourceforge.net/projects/webpath">WebPath</a> code (and eventually XForms Validator) over to Python 3. The first step is external libraries, of which there is only one. WebPath uses the lex.py module from <a href="http://www.dabeaz.com/ply/">PLY</a>. I had got it into my head that Python 2.x and 3.x were thoroughly incompatible, but leave it to the remarkable David Beazley to blow that assumption out of the water: the latest version of lex.py from <a href="http://code.google.com/p/ply/source/browse/trunk/ply/lex.py">SVN</a> works in both 2.x and 3.x.</p>
<p>From there the included 2to3 tool was easy enough to run. (Relatively more difficult was getting 2.6 and 3.0 versions of Python frameworks installed on Mac, but even that wasn&#8217;t too bad.) The tool made some moderate changes, and I can run the unit tests, and a few even pass!</p>
<p>The primary remaining problem stems from code where the documentation is a little unclear, and my inexperience is severe. The part of the code in platonicweb.py that reads nasty, grotty HTML via Tidy and produces a clean DOM throws an exception every time. Seems to be a mismatch between String and Byte (encoded string) types, but manifested as a failed XML parse. Sans exception handling, the code looks like:</p>
<pre>    page <span class="hl sym">=</span> urllib<span class="hl sym">.</span>request<span class="hl sym">.</span><span class="hl kwd">urlopen</span><span class="hl sym">(</span>fullurl<span class="hl sym">)</span>
    markup <span class="hl sym">=</span> page<span class="hl sym">.</span><span class="hl kwd">read</span><span class="hl sym">()</span>
    dom <span class="hl sym">=</span> <span class="hl kwd">xml.dom.minidom.parseString</span><span class="hl sym">(</span>markup<span class="hl sym">)</span></pre>
<p>urlopen() returns a file-like object, but the docs didn&#8217;t seem clear on whether it&#8217;s like a file opened in byte or string mode. In any case, I&#8217;m almost certainly doing it wrong. Suggestions?</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/01/07/on-porting-webpath-to-python-3k/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XML 2008 liveblog: Introduction to Schematron</title>
		<link>http://dubinko.info/blog/2008/12/09/xml-2008-liveblog-introduction-to-schematron/</link>
		<comments>http://dubinko.info/blog/2008/12/09/xml-2008-liveblog-introduction-to-schematron/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 21:58:40 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[languages]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xpath]]></category>
		<category><![CDATA[assertion]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[schematron]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[xml2008]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=403</guid>
		<description><![CDATA[Wendell Piez, Mulberry Technologies
Assertion-based schema language. A way to test XML documents. Rule-based validation language. Cool report generator. Good for capturing edge cases.
Same architecture as XSLT. (Schematron specifies, does not perform)
&#60;schema xmlns="http://purl.cclc.org/dsdl/schematron"&#62;
  &#60;title&#62;Check sections 12/07&#60;/title&#62;
  &#60;pattern id="section-check"&#62;
    &#60;rule context="section"&#62;
      &#60;assert test="title"&#62;This section has no title&#60;/assert&#62;
 [...]]]></description>
			<content:encoded><![CDATA[<p>Wendell Piez, Mulberry Technologies</p>
<p>Assertion-based schema language. A way to test XML documents. Rule-based validation language. Cool report generator. Good for capturing edge cases.</p>
<p>Same architecture as XSLT. (Schematron <em>specifies</em>, does not <em>perform</em>)</p>
<pre>&lt;schema xmlns="http://purl.cclc.org/dsdl/schematron"&gt;
  &lt;title&gt;Check sections 12/07&lt;/title&gt;
  &lt;pattern id="section-check"&gt;
    &lt;rule context="section"&gt;
      &lt;assert test="title"&gt;This section has no title&lt;/assert&gt;
      &lt;report test="p"&gt;This section has paragraphs&lt;/report&gt;
      ...
</pre>
<p>Demo. OxygenXML has support. Assert vs. Report &#8211; essentially opposites. Assert means &#8220;tell me if this if false&#8221;. Report means &#8220;tell me if this is true&#8221;.</p>
<p>&#8220;Almost as if Schematron is a harness for XPath testing.&#8221;</p>
<p>More examples:</p>
<pre>&lt;rule context="note"&gt;
  &lt;report test="ancestor::note"&gt;A note appears in a note. OK?&lt;/report&gt;
&lt;/rule&gt;
</pre>
<p>Binding: Default is XSLT 1, but flexible enough to allow other query langauges via attribute @queryBinding at the top. Many processors allow mix-and-match between XSLT and Schematron. Examples showing just that.</p>
<p>Some tests can be very useful:</p>
<p>test=&#8221;every $line in tokenize(., $newline) satisfies string-length($line) le 72&#8243;</p>
<p>Q: What if the destination is not a human, but another part of a pipeline? Varies by implementation, but SVRL is standardized as an annex in the ISO spec, part of DSDL.</p>
<p>Use as little or as much as you want, at different times in the document lifecycle. &#8220;Schematron is a feather duster that reaches areas other schema languages cannot.&#8221; &#8211; Rick Jelliffe</p>
<p>As time permits section of the talk:</p>
<p>Other top-level elements: title, pattern, ns, let, p, include, phase, diagnostics.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/12/09/xml-2008-liveblog-introduction-to-schematron/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with xdmp:value()</title>
		<link>http://dubinko.info/blog/2008/11/28/fun-with-xdmpvalue/</link>
		<comments>http://dubinko.info/blog/2008/11/28/fun-with-xdmpvalue/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 05:47:47 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[XQuery]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[marklogic eval xquery higherorder context xpath sequenc]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=388</guid>
		<description><![CDATA[Lately I&#8217;ve been playing with some more advanced XQuery. One thing nearly every XQuery engine supports is some kind of eval() function. MarkLogic has several, but my favorite is xdmp:eval. It&#8217;s lightweight because it reuses the entire calling context, so for instance you can write let $v := 5 return xdmp:value("$v"). Not too useful, but [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been playing with some more advanced XQuery. One thing nearly every XQuery engine supports is some kind of <code>eval()</code> function. MarkLogic has several, but my <a href="http://developer.marklogic.com/pubs/4.0/apidocs/Extension.html#xdmp:value">favorite</a> is xdmp:eval. It&#8217;s lightweight because it reuses the entire calling context, so for instance you can write <code>let $v := 5 return xdmp:value("$v")</code>. Not too useful, but if the expression passed in comes from a variable, it gets interesting.</p>
<p>Now, quite a few standards based on XPath depend on the context node being set to some particular node. This turns out to be easy too, using the path operator: <code>$context/xdmp:value($expr)</code>. According to the definition of the XPath path operator, the expression to the right is evaluated with the results of the expression on the left setting the context node.</p>
<p>OK, how about setting the context size and position? More difficult, but one could use a sequence on the left-hand side of the path operator, with the desired <code>$context</code> node in somewhere in the middle. Then <code>last()</code> will return the length of the sequence, and <code>position()</code> will return, well, the position of <code>$context</code> in the sequence. But it&#8217;s kind of hacky to manufacture a bunch of temporary nodes, only to throw them away in the next step of the path.</p>
<p>I&#8217;m curious if anyone else has done something similar. Comments? -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/11/28/fun-with-xdmpvalue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online etymology database</title>
		<link>http://dubinko.info/blog/2008/10/24/online-etymology-database/</link>
		<comments>http://dubinko.info/blog/2008/10/24/online-etymology-database/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 03:55:30 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[everythingismiscellaneous]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[carboy]]></category>
		<category><![CDATA[etymology]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[langauge]]></category>
		<category><![CDATA[word]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=372</guid>
		<description><![CDATA[I&#8217;ve been playing lately with this site, and it&#8217;s a fantastic resource. The word carboy probably comes from Persian qarabah &#8220;large flagon.&#8221; Who knew? -m
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing lately with <a href="http://www.etymonline.com/">this site</a>, and it&#8217;s a fantastic resource. The word carboy probably comes from Persian <span class="foreign">qarabah</span> &#8220;large flagon.&#8221; Who knew? -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/10/24/online-etymology-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The case for native higher-order functions in XQuery</title>
		<link>http://dubinko.info/blog/2008/09/17/the-case-for-native-higher-order-functions-in-xquery/</link>
		<comments>http://dubinko.info/blog/2008/09/17/the-case-for-native-higher-order-functions-in-xquery/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 21:03:14 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[XQuery]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[higherorder]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[qsort]]></category>
		<category><![CDATA[xquery]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=340</guid>
		<description><![CDATA[The XQuery Working Group is debating the need for higher-order functions in the language. I&#8217;m working on honing my description of why this is an important feature. Does this work? What would work better?
Imagine you are writing a smallish widget app, in an environment without a standard library. When you need to sort your widgets, [...]]]></description>
			<content:encoded><![CDATA[<p>The XQuery Working Group is debating the need for higher-order functions in the language. I&#8217;m working on honing my description of why this is an important feature. Does this work? What would work better?</p>
<p>Imagine you are writing a smallish widget app, in an environment without a standard library. When you need to sort your widgets, you&#8217;d write a simple function with a signature like sort(sequence-of-widgets). That&#8217;s great.</p>
<p>Now imagine you find your app to be steadily growing. An accumulation of smaller one-off solutions won&#8217;t work anymore, you need a general solution. What you&#8217;ll end up with is something like <a href="http://www.cplusplus.com/reference/clibrary/cstdlib/qsort.html">qsort</a> in C, which takes a pointer to a comparator function. By providing different comparators, you can sort anything any way you like, all through only a single sort function. C and C++ have something like this, as do PHP, Python, Java, JavaScript, and even assembly language. XSLT has it, as proven by <a href="http://fxsl.sourceforge.net/">Dimitre</a>.</p>
<p>XQuery doesn&#8217;t. It should, because people are now using it for more than short queries. People are writing programs in it. -m</p>
<p>P. S. Comment please.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/09/17/the-case-for-native-higher-order-functions-in-xquery/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Geek Thoughts: English is funny, part 1</title>
		<link>http://dubinko.info/blog/2008/09/10/geek-thoughts-english-is-funny-part-1/</link>
		<comments>http://dubinko.info/blog/2008/09/10/geek-thoughts-english-is-funny-part-1/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 03:05:42 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[geekthoughts]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[gall]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[unmitigated]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=325</guid>
		<description><![CDATA[Has there ever been a case of mitigated gall?
More collected Geek Thoughts at http://geekthoughts.info/.
]]></description>
			<content:encoded><![CDATA[<p>Has there ever been a case of mitigated gall?</p>
<p>More collected Geek Thoughts at http://<a href="http://geekthoughts.info/">geekthoughts</a>.info/.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/09/10/geek-thoughts-english-is-funny-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It would be awesome if somebody&#8230;</title>
		<link>http://dubinko.info/blog/2008/08/08/it-would-be-awesome-if-somebody/</link>
		<comments>http://dubinko.info/blog/2008/08/08/it-would-be-awesome-if-somebody/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 04:08:16 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[mojibake]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=315</guid>
		<description><![CDATA[It would be awesome of someone made a site that catalogued all the common mis-encodings. Even in 2008, I see these things all over the web&#8211;mangled quotation marks, apostrophes, em-dashes. I&#8217;d love to see a pictoral guide.
curly apostrophe looks like ?â€™ &#8211; original encoding=_________ mislabeled as __________ .
That sort of thing. Surely somebody has done [...]]]></description>
			<content:encoded><![CDATA[<p>It would be awesome of someone made a site that catalogued all the common mis-encodings. Even in 2008, I see these things all over the web&#8211;mangled quotation marks, apostrophes, em-dashes. I&#8217;d love to see a pictoral guide.</p>
<p>curly apostrophe looks like ?â€™ &#8211; original encoding=_________ mislabeled as __________ .</p>
<p>That sort of thing. Surely somebody has done this arleady, right? -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/08/08/it-would-be-awesome-if-somebody/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XForms Validator on Google App Engine?</title>
		<link>http://dubinko.info/blog/2008/05/28/xforms-validator-on-google-app-engine/</link>
		<comments>http://dubinko.info/blog/2008/05/28/xforms-validator-on-google-app-engine/#comments</comments>
		<pubDate>Thu, 29 May 2008 03:58:45 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[XForms]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[xpath]]></category>
		<category><![CDATA[essentials]]></category>
		<category><![CDATA[relaxng]]></category>
		<category><![CDATA[validator]]></category>
		<category><![CDATA[xfv]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=267</guid>
		<description><![CDATA[I registered &#8216;xfv&#8217; on Google App Engine. Too bad there doesn&#8217;t appear to be any significant XML libraries supported. I have XPath covered by my pure-python WebPath, but what about Relax NG? Anyone know of anything in pure python? -m
]]></description>
			<content:encoded><![CDATA[<p>I registered &#8216;xfv&#8217; on Google App Engine. Too bad there doesn&#8217;t appear to be any significant XML libraries supported. I have XPath covered by my pure-python WebPath, but what about Relax NG? Anyone know of anything in pure python? -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/05/28/xforms-validator-on-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The two-line CV</title>
		<link>http://dubinko.info/blog/2008/05/20/the-two-line-cv/</link>
		<comments>http://dubinko.info/blog/2008/05/20/the-two-line-cv/#comments</comments>
		<pubDate>Tue, 20 May 2008 16:12:19 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[cv]]></category>
		<category><![CDATA[difficult]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[line]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[qualification]]></category>
		<category><![CDATA[skill]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=15</guid>
		<description><![CDATA[In my about page, I&#8217;ve written my CV in two lines. Why don&#8217;t you try it, then link back to here?
I&#8217;ve been known to use this as an interview question, and it&#8217;s quite a bit harder than it looks. A clever candidate will turn the paper sideways giving themselves more room to write &#8220;two lines&#8221;, [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a title="Micah Dubinko" href="http://dubinko.info/blog/about/">about page</a>, I&#8217;ve written my CV in two lines. Why don&#8217;t you try it, then link back to here?</p>
<p>I&#8217;ve been known to use this as an interview question, and it&#8217;s quite a bit harder than it looks. A clever candidate will turn the paper sideways giving themselves more room to write &#8220;two lines&#8221;, but that&#8217;s not the point. This exercise forces one to really think about their qualifications, skills, and experience; one&#8217;s &#8220;unique selling proposition&#8221;.</p>
<p>Writing short, as opposed to rambling on, is notoriously difficult. Someone who can do that with their own CV is off to a good start in my book. -m</p>
<p>P. S. Mark Logic is looking for some high-caliber XML and web folks. Contact me offline if you know anyone looking&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/05/20/the-two-line-cv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
