diff --git a/tests/rules-data/match/postcond2/cclmatch-none.ccl b/tests/rules-data/match/postcond2/cclmatch-none.ccl new file mode 100644 index 0000000000000000000000000000000000000000..594b8220a2e47015de18115cfe49527c1ab1024d --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch-none.ccl @@ -0,0 +1,11 @@ +apply( + match( + is("A") + ), + cond( + annsub(M, "B") + ), + actions( + mark(M, "C") + ) +) diff --git a/tests/rules-data/match/postcond2/cclmatch-none.out.xml b/tests/rules-data/match/postcond2/cclmatch-none.out.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b48741fe5a6070eb919fa18884500f8d394eb62 --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch-none.out.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Dwa</orth> + <lex><base>dwa</base><ctag>other</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">1</ann> + </tok> + <tok> + <orth>wielkie</orth> + <lex><base>wielki</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">2</ann> + </tok> + <tok> + <orth>włochate</orth> + <lex><base>włochaty</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + </tok> + <tok> + <orth>zapchlone</orth> + <lex><base>zapchlić</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + </tok> + <tok> + <orth>koty</orth> + <lex><base>kot</base><ctag>noun</ctag></lex> + <ann chan="A" head="1">1</ann> + <ann chan="B" head="1">3</ann> + </tok> + <tok> + <orth>zjadły</orth> + <lex><base>zjeść</base><ctag>verb</ctag></lex> + <ann chan="A">0</ann> + <ann chan="B" head="1">4</ann> + </tok> + <tok> + <orth>pięć</orth> + <lex><base>pięć</base><ctag>other</ctag></lex> + <ann chan="A" head="1">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>tłustych</orth> + <lex><base>tłusty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>soczystych</orth> + <lex><base>soczysty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>much</orth> + <lex><base>mucha</base><ctag>noun</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/postcond2/cclmatch.xml b/tests/rules-data/match/postcond2/cclmatch.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b48741fe5a6070eb919fa18884500f8d394eb62 --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Dwa</orth> + <lex><base>dwa</base><ctag>other</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">1</ann> + </tok> + <tok> + <orth>wielkie</orth> + <lex><base>wielki</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">2</ann> + </tok> + <tok> + <orth>włochate</orth> + <lex><base>włochaty</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + </tok> + <tok> + <orth>zapchlone</orth> + <lex><base>zapchlić</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + </tok> + <tok> + <orth>koty</orth> + <lex><base>kot</base><ctag>noun</ctag></lex> + <ann chan="A" head="1">1</ann> + <ann chan="B" head="1">3</ann> + </tok> + <tok> + <orth>zjadły</orth> + <lex><base>zjeść</base><ctag>verb</ctag></lex> + <ann chan="A">0</ann> + <ann chan="B" head="1">4</ann> + </tok> + <tok> + <orth>pięć</orth> + <lex><base>pięć</base><ctag>other</ctag></lex> + <ann chan="A" head="1">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>tłustych</orth> + <lex><base>tłusty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>soczystych</orth> + <lex><base>soczysty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>much</orth> + <lex><base>mucha</base><ctag>noun</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/postcond2/cclmatch2.ccl b/tests/rules-data/match/postcond2/cclmatch2.ccl new file mode 100644 index 0000000000000000000000000000000000000000..75f7fb464df2ee63d1c6be79a18a70c328384343 --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch2.ccl @@ -0,0 +1,11 @@ +apply( + match( + is("B") + ), + cond( + annsub(M, "A") + ), + actions( + mark(M, "C") + ) +) diff --git a/tests/rules-data/match/postcond2/cclmatch2.out.ccl b/tests/rules-data/match/postcond2/cclmatch2.out.ccl new file mode 100644 index 0000000000000000000000000000000000000000..999ba97a0576fedffb3716ab06f5f2fcd4205b71 --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch2.out.ccl @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Dwa</orth> + <lex><base>dwa</base><ctag>other</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">1</ann> + <ann chan="C" head="1">1</ann> + </tok> + <tok> + <orth>wielkie</orth> + <lex><base>wielki</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">2</ann> + <ann chan="C" head="1">2</ann> + </tok> + <tok> + <orth>włochate</orth> + <lex><base>włochaty</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C">2</ann> + </tok> + <tok> + <orth>zapchlone</orth> + <lex><base>zapchlić</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C">2</ann> + </tok> + <tok> + <orth>koty</orth> + <lex><base>kot</base><ctag>noun</ctag></lex> + <ann chan="A" head="1">1</ann> + <ann chan="B" head="1">3</ann> + <ann chan="C" head="1">3</ann> + </tok> + <tok> + <orth>zjadły</orth> + <lex><base>zjeść</base><ctag>verb</ctag></lex> + <ann chan="A">0</ann> + <ann chan="B" head="1">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>pięć</orth> + <lex><base>pięć</base><ctag>other</ctag></lex> + <ann chan="A" head="1">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>tłustych</orth> + <lex><base>tłusty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>soczystych</orth> + <lex><base>soczysty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>much</orth> + <lex><base>mucha</base><ctag>noun</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">0</ann> + <ann chan="C">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/postcond2/cclmatch3.ccl b/tests/rules-data/match/postcond2/cclmatch3.ccl new file mode 100644 index 0000000000000000000000000000000000000000..d9c9f33d9d44fdba0310c03668c9be576b2e2756 --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch3.ccl @@ -0,0 +1,5 @@ +apply( + match(repeat(equal(class[0], adj))), + cond(ann(M, "B")), + actions(mark(M,"C")) +) diff --git a/tests/rules-data/match/postcond2/cclmatch3.out.xml b/tests/rules-data/match/postcond2/cclmatch3.out.xml new file mode 100644 index 0000000000000000000000000000000000000000..c45a8fc1dff12873863dbcd5c9b34c3404950b5d --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch3.out.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Dwa</orth> + <lex><base>dwa</base><ctag>other</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">1</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>wielkie</orth> + <lex><base>wielki</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">2</ann> + <ann chan="C" head="1">1</ann> + </tok> + <tok> + <orth>włochate</orth> + <lex><base>włochaty</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C">1</ann> + </tok> + <tok> + <orth>zapchlone</orth> + <lex><base>zapchlić</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C">1</ann> + </tok> + <tok> + <orth>koty</orth> + <lex><base>kot</base><ctag>noun</ctag></lex> + <ann chan="A" head="1">1</ann> + <ann chan="B" head="1">3</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>zjadły</orth> + <lex><base>zjeść</base><ctag>verb</ctag></lex> + <ann chan="A">0</ann> + <ann chan="B" head="1">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>pięć</orth> + <lex><base>pięć</base><ctag>other</ctag></lex> + <ann chan="A" head="1">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>tłustych</orth> + <lex><base>tłusty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>soczystych</orth> + <lex><base>soczysty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>much</orth> + <lex><base>mucha</base><ctag>noun</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">0</ann> + <ann chan="C">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/postcond2/cclmatch4.ccl b/tests/rules-data/match/postcond2/cclmatch4.ccl new file mode 100644 index 0000000000000000000000000000000000000000..6e68f17b1d2c177c43cc34d4298a8dbea44465c0 --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch4.ccl @@ -0,0 +1,5 @@ +apply( + match(repeat(equal(class[0], adj))), + cond(annsub(M, "B")), + actions(mark(M,"C")) +) diff --git a/tests/rules-data/match/postcond2/cclmatch4.out.xml b/tests/rules-data/match/postcond2/cclmatch4.out.xml new file mode 100644 index 0000000000000000000000000000000000000000..0dfe62a1d104e68b9a07bba9e79e40073d723b0e --- /dev/null +++ b/tests/rules-data/match/postcond2/cclmatch4.out.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Dwa</orth> + <lex><base>dwa</base><ctag>other</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">1</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>wielkie</orth> + <lex><base>wielki</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">2</ann> + <ann chan="C" head="1">1</ann> + </tok> + <tok> + <orth>włochate</orth> + <lex><base>włochaty</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C">1</ann> + </tok> + <tok> + <orth>zapchlone</orth> + <lex><base>zapchlić</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C">1</ann> + </tok> + <tok> + <orth>koty</orth> + <lex><base>kot</base><ctag>noun</ctag></lex> + <ann chan="A" head="1">1</ann> + <ann chan="B" head="1">3</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>zjadły</orth> + <lex><base>zjeść</base><ctag>verb</ctag></lex> + <ann chan="A">0</ann> + <ann chan="B" head="1">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>pięć</orth> + <lex><base>pięć</base><ctag>other</ctag></lex> + <ann chan="A" head="1">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>tłustych</orth> + <lex><base>tłusty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C" head="1">2</ann> + </tok> + <tok> + <orth>soczystych</orth> + <lex><base>soczysty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C">2</ann> + </tok> + <tok> + <orth>much</orth> + <lex><base>mucha</base><ctag>noun</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">0</ann> + <ann chan="C">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/postcond2/simple.is-the-tagset b/tests/rules-data/match/postcond2/simple.is-the-tagset new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/tests/rules-data/match/postcond2/simple.is-the-tagset @@ -0,0 +1 @@ + diff --git a/tests/rules-data/match/text/cclmatch.xml b/tests/rules-data/match/text/cclmatch.xml new file mode 100644 index 0000000000000000000000000000000000000000..d1e4e8efee86a2c31d199fe36f149fb5c9c7cdc8 --- /dev/null +++ b/tests/rules-data/match/text/cclmatch.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Sp.</orth> + <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex> + </tok> + <tok> + <orth>z</orth> + <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex> + <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex> + <lex><base>z</base><ctag>qub</ctag></lex> + </tok> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + </tok> + <ns/> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + </tok> + <tok> + <orth>Sp.</orth> + <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex> + </tok> + <tok> + <orth>z</orth> + <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex> + <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex> + <lex><base>z</base><ctag>qub</ctag></lex> + </tok> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + </tok> + <ns/> + <tok> + <orth>ooo</orth> + <lex><base>ooo</base><ctag>qub</ctag></lex> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/text/cclmatch1.ccl b/tests/rules-data/match/text/cclmatch1.ccl new file mode 100644 index 0000000000000000000000000000000000000000..9b1ed19378eb9d0def185a6818decd41bb4fc98d --- /dev/null +++ b/tests/rules-data/match/text/cclmatch1.ccl @@ -0,0 +1,8 @@ +apply( + match( + text("Sp. z o.o.") + ), + actions( + mark(M, "Co") + ) +) diff --git a/tests/rules-data/match/text/cclmatch1.out.xml b/tests/rules-data/match/text/cclmatch1.out.xml new file mode 100644 index 0000000000000000000000000000000000000000..a5d8c2514713841ffaf3ade1cb98d3d5128270e6 --- /dev/null +++ b/tests/rules-data/match/text/cclmatch1.out.xml @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Sp.</orth> + <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex> + <ann chan="Co" head="1">1</ann> + </tok> + <tok> + <orth>z</orth> + <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex> + <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex> + <lex><base>z</base><ctag>qub</ctag></lex> + <ann chan="Co">1</ann> + </tok> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + <ann chan="Co">1</ann> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + <ann chan="Co">1</ann> + </tok> + <ns/> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + <ann chan="Co">1</ann> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + <ann chan="Co">1</ann> + </tok> + <tok> + <orth>Sp.</orth> + <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex> + <ann chan="Co">0</ann> + </tok> + <tok> + <orth>z</orth> + <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex> + <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex> + <lex><base>z</base><ctag>qub</ctag></lex> + <ann chan="Co">0</ann> + </tok> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + <ann chan="Co">0</ann> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + <ann chan="Co">0</ann> + </tok> + <ns/> + <tok> + <orth>ooo</orth> + <lex><base>ooo</base><ctag>qub</ctag></lex> + <ann chan="Co">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/text/cclmatch2.ccl b/tests/rules-data/match/text/cclmatch2.ccl new file mode 100644 index 0000000000000000000000000000000000000000..96885ffbb7bb4f741af3621a95b4d4a21518b96f --- /dev/null +++ b/tests/rules-data/match/text/cclmatch2.ccl @@ -0,0 +1,12 @@ +apply( + match( + text("Sp."), + inter(class[0], {prep}), + repeat(text("o.")) + ), + actions( + mark(:1, "Sp"), + mark(:2, "Z"), + mark(:3, "O") + ) +) diff --git a/tests/rules-data/match/text/cclmatch2.out.xml b/tests/rules-data/match/text/cclmatch2.out.xml new file mode 100644 index 0000000000000000000000000000000000000000..eda51ad7674295b3adc0c8aa9d04317db7a6e848 --- /dev/null +++ b/tests/rules-data/match/text/cclmatch2.out.xml @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Sp.</orth> + <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex> + <ann chan="O">0</ann> + <ann chan="Sp" head="1">1</ann> + <ann chan="Z">0</ann> + </tok> + <tok> + <orth>z</orth> + <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex> + <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex> + <lex><base>z</base><ctag>qub</ctag></lex> + <ann chan="O">0</ann> + <ann chan="Sp">0</ann> + <ann chan="Z" head="1">1</ann> + </tok> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + <ann chan="O" head="1">1</ann> + <ann chan="Sp">0</ann> + <ann chan="Z">0</ann> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + <ann chan="O">1</ann> + <ann chan="Sp">0</ann> + <ann chan="Z">0</ann> + </tok> + <ns/> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + <ann chan="O">1</ann> + <ann chan="Sp">0</ann> + <ann chan="Z">0</ann> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + <ann chan="O">1</ann> + <ann chan="Sp">0</ann> + <ann chan="Z">0</ann> + </tok> + <tok> + <orth>Sp.</orth> + <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex> + <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex> + <ann chan="Sp" head="1">2</ann> + </tok> + <tok> + <orth>z</orth> + <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex> + <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex> + <lex><base>z</base><ctag>qub</ctag></lex> + <ann chan="O">0</ann> + <ann chan="Sp">0</ann> + <ann chan="Z" head="1">2</ann> + </tok> + <tok> + <orth>o</orth> + <lex><base>o</base><ctag>prep:acc</ctag></lex> + <lex><base>o</base><ctag>prep:loc</ctag></lex> + <ann chan="O" head="1">2</ann> + <ann chan="Sp">0</ann> + <ann chan="Z">0</ann> + </tok> + <ns/> + <tok> + <orth>.</orth> + <lex><base>.</base><ctag>interp</ctag></lex> + <ann chan="O">2</ann> + <ann chan="Sp">0</ann> + <ann chan="Z">0</ann> + </tok> + <ns/> + <tok> + <orth>ooo</orth> + <lex><base>ooo</base><ctag>qub</ctag></lex> + <ann chan="O">0</ann> + <ann chan="Sp">0</ann> + <ann chan="Z">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/variants/cclmatch.xml b/tests/rules-data/match/variants/cclmatch.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b48741fe5a6070eb919fa18884500f8d394eb62 --- /dev/null +++ b/tests/rules-data/match/variants/cclmatch.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Dwa</orth> + <lex><base>dwa</base><ctag>other</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">1</ann> + </tok> + <tok> + <orth>wielkie</orth> + <lex><base>wielki</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">2</ann> + </tok> + <tok> + <orth>włochate</orth> + <lex><base>włochaty</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + </tok> + <tok> + <orth>zapchlone</orth> + <lex><base>zapchlić</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + </tok> + <tok> + <orth>koty</orth> + <lex><base>kot</base><ctag>noun</ctag></lex> + <ann chan="A" head="1">1</ann> + <ann chan="B" head="1">3</ann> + </tok> + <tok> + <orth>zjadły</orth> + <lex><base>zjeść</base><ctag>verb</ctag></lex> + <ann chan="A">0</ann> + <ann chan="B" head="1">4</ann> + </tok> + <tok> + <orth>pięć</orth> + <lex><base>pięć</base><ctag>other</ctag></lex> + <ann chan="A" head="1">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>tłustych</orth> + <lex><base>tłusty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>soczystych</orth> + <lex><base>soczysty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + </tok> + <tok> + <orth>much</orth> + <lex><base>mucha</base><ctag>noun</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/variants/cclmatch1.ccl b/tests/rules-data/match/variants/cclmatch1.ccl new file mode 100644 index 0000000000000000000000000000000000000000..5e4efc1b1ae12cc59b9b0390d4bcefcffdad3ab0 --- /dev/null +++ b/tests/rules-data/match/variants/cclmatch1.ccl @@ -0,0 +1,18 @@ +apply( + match( + longest( + variant( + inter(class[0], {noun}), + inter(class[0], {verb}) + ), + variant( + is("B") + ), + variant( + inter(class[0], {adj}) + ) + ) + ), + actions(mark(M, "C")) +) + diff --git a/tests/rules-data/match/variants/cclmatch1.out.xml b/tests/rules-data/match/variants/cclmatch1.out.xml new file mode 100644 index 0000000000000000000000000000000000000000..b7c686294cbb038e18ba79fedf4372a817e7ee8f --- /dev/null +++ b/tests/rules-data/match/variants/cclmatch1.out.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Dwa</orth> + <lex><base>dwa</base><ctag>other</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">1</ann> + <ann chan="C" head="1">1</ann> + </tok> + <tok> + <orth>wielkie</orth> + <lex><base>wielki</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">2</ann> + <ann chan="C" head="1">2</ann> + </tok> + <tok> + <orth>włochate</orth> + <lex><base>włochaty</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C">2</ann> + </tok> + <tok> + <orth>zapchlone</orth> + <lex><base>zapchlić</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C">2</ann> + </tok> + <tok> + <orth>koty</orth> + <lex><base>kot</base><ctag>noun</ctag></lex> + <ann chan="A" head="1">1</ann> + <ann chan="B" head="1">3</ann> + <ann chan="C" head="1">3</ann> + </tok> + <tok> + <orth>zjadły</orth> + <lex><base>zjeść</base><ctag>verb</ctag></lex> + <ann chan="A">0</ann> + <ann chan="B" head="1">4</ann> + <ann chan="C">3</ann> + </tok> + <tok> + <orth>pięć</orth> + <lex><base>pięć</base><ctag>other</ctag></lex> + <ann chan="A" head="1">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>tłustych</orth> + <lex><base>tłusty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C" head="1">4</ann> + </tok> + <tok> + <orth>soczystych</orth> + <lex><base>soczysty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C" head="1">5</ann> + </tok> + <tok> + <orth>much</orth> + <lex><base>mucha</base><ctag>noun</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">0</ann> + <ann chan="C">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/variants/cclmatch2.ccl b/tests/rules-data/match/variants/cclmatch2.ccl new file mode 100644 index 0000000000000000000000000000000000000000..bb5fdaaec67fb1dbdb806eafdbbaa1c23a29c27e --- /dev/null +++ b/tests/rules-data/match/variants/cclmatch2.ccl @@ -0,0 +1,18 @@ +apply( + match( + oneof( + variant( + inter(class[0], {adj}) + ), + variant( + inter(class[0], {noun}), + inter(class[0], {verb}) + ), + variant( + is("B") + ) + ) + ), + actions(mark(M, "C")) +) + diff --git a/tests/rules-data/match/variants/cclmatch2.out.xml b/tests/rules-data/match/variants/cclmatch2.out.xml new file mode 100644 index 0000000000000000000000000000000000000000..12272275fd27b06ca59d01275599b2c3a5bcebd9 --- /dev/null +++ b/tests/rules-data/match/variants/cclmatch2.out.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd"> +<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb"> +<chunkList> + <chunk> + <sentence> + <tok> + <orth>Dwa</orth> + <lex><base>dwa</base><ctag>other</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">1</ann> + <ann chan="C" head="1">1</ann> + </tok> + <tok> + <orth>wielkie</orth> + <lex><base>wielki</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B" head="1">2</ann> + <ann chan="C" head="1">2</ann> + </tok> + <tok> + <orth>włochate</orth> + <lex><base>włochaty</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C" head="1">3</ann> + </tok> + <tok> + <orth>zapchlone</orth> + <lex><base>zapchlić</base><ctag>adj</ctag></lex> + <ann chan="A">1</ann> + <ann chan="B">2</ann> + <ann chan="C" head="1">4</ann> + </tok> + <tok> + <orth>koty</orth> + <lex><base>kot</base><ctag>noun</ctag></lex> + <ann chan="A" head="1">1</ann> + <ann chan="B" head="1">3</ann> + <ann chan="C" head="1">5</ann> + </tok> + <tok> + <orth>zjadły</orth> + <lex><base>zjeść</base><ctag>verb</ctag></lex> + <ann chan="A">0</ann> + <ann chan="B" head="1">4</ann> + <ann chan="C">5</ann> + </tok> + <tok> + <orth>pięć</orth> + <lex><base>pięć</base><ctag>other</ctag></lex> + <ann chan="A" head="1">2</ann> + <ann chan="B">4</ann> + <ann chan="C">0</ann> + </tok> + <tok> + <orth>tłustych</orth> + <lex><base>tłusty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C" head="1">6</ann> + </tok> + <tok> + <orth>soczystych</orth> + <lex><base>soczysty</base><ctag>adj</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">4</ann> + <ann chan="C" head="1">7</ann> + </tok> + <tok> + <orth>much</orth> + <lex><base>mucha</base><ctag>noun</ctag></lex> + <ann chan="A">2</ann> + <ann chan="B">0</ann> + <ann chan="C">0</ann> + </tok> + </sentence> + </chunk> +</chunkList> +</cesAna> diff --git a/tests/rules-data/match/variants/simple.is-the-tagset b/tests/rules-data/match/variants/simple.is-the-tagset new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/tests/rules-data/match/variants/simple.is-the-tagset @@ -0,0 +1 @@ +