xquery version "1.0"; declare namespace session="http://exist-db.org/xquery/session"; declare namespace request="http://exist-db.org/xquery/request"; declare namespace util="http://exist-db.org/xquery/util"; declare option exist:serialize "expand-xincludes=no indent=yes encoding=UTF-8"; (: Present an overview of query results :) declare function local:displayHitlist($hits as node()+) as element() { let $count := count($hits) (: We need :) return

LEXICON propnouns { for $p in 1 to $count let $current := item-at($hits, $p) return let $cntlex := $current/infl/@lexc cast as xs:string, $uprlwr := if ( $current/stem ) then concat($current/@id,':',$current/stem,' ') else concat($current/@id, ' '), $end := if ( $current/@type = 'secondary' ) then concat(' ; ',' !SUB ') else ' ; ' for $sense in $current/senses/sense let $semcat := if ($sense/@sem) then concat('-',$sense/@sem cast as xs:string) else '' return concat($uprlwr, $cntlex, $semcat, $end) }

}; (: Main function - retrieves some request and session attributes, forks further processing to other defined functions depending on the retrieved values :) declare function local:main() as element()+ { let $hits := session:get-attribute("results") return if (empty($hits)) then (

Your query has timed out. Please hit the «Find» button again before downloading the lexicon.

) else ( (: DEBUG info:

UrSrchTrm: «{$term}»!
Document: «{$doc}»
Request: «{$request}»
Query: «{$query}»

, :) local:displayHitlist($hits) (: TODO :) ) }; local:main()