Mercurial > hg > mpdl-group
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("../info.xql?info=donatus", "InfoWindow", "menubar=no,width=500,height=500,toolbar=no");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