Write in XQuery the following queries for the DBLP application and run them:
for $p in /dblp/*[author = "Moshe Y. Vardi"] order by xs:integer($p/year) descending return $p
for $p in /dblp/*[author = "Moshe Y. Vardi"] order by count($p/author) descending return $p
for $a in distinct-values(/dblp/book/author) order by $a return <author>{$a}</author>
let $q := for $p in /dblp/* order by count($p/author) descending return $p return $q[1]
(: compute the maximum number of authors :) let $count := for $c in /dblp/* return count($c/author) let $max := max($count) (: find the papers with that number of authors :) for $p in /dblp/* where count($p/author) = $max return <pub authors="{$max}">{$p}</pub>
for $proc in /dblp/proceedings[editor = "Moshe Y. Vardi"] let $inproc := /dblp/inproceedings[crossref = $proc/@key] return ($proc, $inproc)
for $proc in /dblp/proceedings[editor = "Moshe Y. Vardi"] let $inproc := /dblp/inproceedings[crossref = $proc/@key] return <proceedings size="{count($inproc)}">{$proc/*}</proceedings>
for $hit score $score in /dblp/*[title contains text "XML"] order by $score descending return <hit score="{$score}">{$hit}</hit>
for $hit score $relevance in /dblp/inproceedings[title contains text "XML"] let $authors := count($hit/author) let $score := $relevance * $authors order by $score descending return <hit relevance="{$relevance}" authors="{$authors}" score="{$score}">{$hit}</hit>
declare function local:avgh($doc as node()*, $author as xs:string) as xs:decimal { let $pub := for $x in $doc/dblp/*[author=$author] order by xs:integer($x/@cites) descending return $x let $auth := for $n in (1 to count($pub)) where xs:integer($pub[$n]/@cites) >= $n return count($pub[$n]/author) return avg($auth) };