diff software/eXist/webapp/mpdl/lt/lemma.xql @ 7:5589d865af7a

Erstellung XQL/XSL Applikation
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Tue, 08 Feb 2011 15:16:46 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/software/eXist/webapp/mpdl/lt/lemma.xql	Tue Feb 08 15:16:46 2011 +0100
@@ -0,0 +1,68 @@
+xquery version "1.0";
+
+import module namespace mpdl-time = "http://www.mpiwg-berlin.mpg.de/ns/mpdl/util/time" at "../util/time.xql";
+
+declare namespace request="http://exist-db.org/xquery/request";
+
+let $language := request:get-parameter("language", "")
+let $lemmaName := request:get-parameter("lemma", "")
+let $formName := request:get-parameter("form", "")
+let $luceneQuery := request:get-parameter("query", "")
+
+let $currentTimeBegin := util:system-time()
+
+let $lemmas := 
+  if ($formName != '')
+  then mpdltext:get-lemmas-by-form-name($language, $formName)
+  else if ($lemmaName != '')
+  then mpdltext:get-lemma($language, $lemmaName)
+  else mpdltext:get-lemmas-by-lucene-query($language, $luceneQuery)
+let $orderedLemmas := 
+  if (empty($lemmas))
+  then ("no lemmas found for your query")
+  else 
+    for $lemma in $lemmas/lemmas/lemma
+      let $lemmaText := concat($lemma/lemma-name, " (", $lemma/provider, ")")
+      let $orderedForms :=
+        for $form in $lemma/forms/form
+          let $liForm := <li>{$form/form-name} ({$form/provider})</li>
+        order by $form/form-name
+        return $liForm
+      let $lemmaLi := 
+        <li><b>Lemma: </b>{$lemmaText}
+          <ul>{$orderedForms}</ul>
+        </li>
+    order by $lemma/lemma-name
+    return $lemmaLi
+
+let $queryResultHeaderStr := 
+  if ($formName != '')
+  then <h3>Mpdl-Donatus: Lemmas and forms: Result of your query: Language={$language}, Form={$formName}</h3>
+  else if ($lemmaName != '')
+  then <h3>Mpdl-Donatus: Lemmas and forms: Result of your query: Language={$language}, Lemma={$lemmaName}</h3>
+  else <h3>Mpdl-Donatus: Lemmas and forms: Result of your query: Language={$language}, Query={$luceneQuery}</h3>
+
+let $currentTimeEnd := util:system-time()
+let $neededTime := mpdl-time:duration-as-ms($currentTimeEnd - $currentTimeBegin)
+
+let $retHtmlResult :=
+  <html>
+  <head>
+  <title>Lemmas and forms</title>
+  </head>
+  <body>
+  {$queryResultHeaderStr}
+  <table align="right">
+    <td align="right">[<i>This is a MPDL <a href="http://archimedes.fas.harvard.edu/cgi-bin/donatus">Donatus</a> and <a href="http://snowball.tartarus.org/">Snowball</a> service</i>] <a href="../info.xql?info=donatus" onclick="window.open(&quot;../info.xql?info=donatus&quot;, &quot;InfoWindow&quot;, &quot;menubar=no,width=500,height=500,toolbar=no&quot;);return false"><img src="../images/info.png" valign="bottom" width="15" height="15" border="0" alt="MPDL Donatus service"/></a></td>
+  </table>
+  <p/>
+  {$orderedLemmas} 
+  <p/>
+  (* in parentheses the data provider of the lemma/form)
+  <hr/>
+  <p/>
+  Elapsed time: {$neededTime} ms, see the <a href="/exist/xquery.xml">XQuery documentation</a> and the <a href="lemma.xql?_source=yes">XQuery source</a> of this page, if you find a bug <a href="https://itgroup.mpiwg-berlin.mpg.de:8080/tracs/mpdl-project-software/newticket">let us know</a>
+  </body>
+  </html>
+
+return $retHtmlResult
\ No newline at end of file