view software/eXist/webapp/mpdl/interface/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 source

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 $formNameText := $form/form-name
          let $providerText := $form/provider
          let $liForm := <li>{$formNameText} ({$providerText})</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}
  <p/>
  {$orderedLemmas} 
  <p/>
  </body>
  </html>

return $retHtmlResult