Voorbeelden complexer xquery
We gaan fietsen met dat kind .
<?xml version="1.0"?>
<alpino_ds">
<node cat="top">
<node rel="--" cat="smain" >
<node rel="su" pt="vnw" word="We" index="1" />
<node rel="hd" pt="ww" word="gaan" />
<node rel="vc" cat="inf">
<node rel="su" index="1" />
<node rel="hd" pt="ww" word="fietsen" />
<node rel="mod" cat="pp">
<node rel="hd" pt="vz" word="met" />
<node rel="obj1" cat="np">
<node rel="det" pt="vnw" word="dat" />
<node rel="hd" pt="n" word="kind" />
</node>
</node>
</node>
</node>
<node rel="--" pt="let" word="." />
</node>
<sentence>We gaan fietsen met dat kind .</sentence>
</alpino_ds>
xpath: //aap[@noot]
SORT
COLLECT 'child' 'name' 'node' aap
COLLECT 'descendant-or-self' 'type' 'node'
ROOT
PREDICATE
COLLECT 'attributes' 'name' 'node' noot
NODE
&xPath{
arg1: &dSort{
arg1: &dCollect{
ARG: collect__child__aap,
arg1: &dCollect{
ARG: collect__descendant__or__self__type__node,
arg1: &dRoot{},
},
arg2: &dPredicate{
arg1: &dCollect{
ARG: collect__attributes__noot,
arg1: &dNode{},
},
},
},
},
}
xpath: //aap/@noot
SORT
COLLECT 'attributes' 'name' 'node' noot
COLLECT 'descendant' 'name' 'node' aap
ROOT
&xPath{
arg1: &dSort{
arg1: &dCollect{
ARG: collect__attributes__noot,
arg1: &dCollect{
ARG: collect__descendant__aap,
arg1: &dRoot{},
},
},
},
}
xpath: $aap/noot
SORT
COLLECT 'child' 'name' 'node' noot
VARIABLE aap
&xPath{
arg1: &dSort{
arg1: &dCollect{
ARG: collect__child__noot,
arg1: &dVariable{
VAR: aap,
},
},
},
}
Demo's:
ancestors vooraf compileren