CCL

CCL jest prostym formatem XML do reprezentacji otagowanego i anotowanego tekstu. Format CCL wywodzi się z formatu XCES . Zakłada podział tekstu na fragmenty, zdania i tokeny. Tokeny opisane są formą tekstową, listą analiz morfosynaktycznych oraz listą anotacji, do których należy token. Analiza morfologiczna składa się z formy bazowej i tagu morfologicznego.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
<chunkList xmlns:xlink="http://www.w3.org/1999/xlink">
 <chunk id="ch1" type="p">
  <sentence>
   <tok>
    <orth>Ala</orth>
    <lex><base>al</base><ctag>subst:sg:gen:m1</ctag></lex>
    <lex><base>al</base><ctag>subst:sg:acc:m1</ctag></lex>
    <lex><base>ala</base><ctag>subst:sg:nom:f</ctag></lex>
   </tok>
   <tok>
    <orth>ma</orth>
    <lex><base>mieć</base><ctag>fin:sg:ter:imperf</ctag></lex>
    <lex><base>mój</base><ctag>adj:sg:nom:f:pos</ctag></lex>
   </tok>
   <tok>
    <orth>kota</orth>
    <lex><base>kot</base><ctag>subst:sg:gen:m2</ctag></lex>
    <lex><base>kot</base><ctag>subst:sg:acc:m2</ctag></lex>
    <lex><base>kota</base><ctag>subst:sg:nom:f</ctag></lex>
   </tok>
   <ns/>
   <tok>
    <orth>.</orth>
    <lex><base>.</base><ctag>interp</ctag></lex>
   </tok>
  </sentence>
 </chunk>
</chunkList>

Główny znacznik zawiera listę chunków (fragmentów tekstów, np. paragrafów). Każdy chunk składa się ze zdań (znacznik sentence). Zdanie jest listą tokenów (znacznik <tok>) i znaczników <ns/> informujących o braku spacji przed tokenem.
Każdy token składa się z:
  • formy napotkane z tekstu (znacznik <orth>)
  • listy leksemów zaproponowanych przez tager (znaczniki <lex>), które zawierają:
    • lemat (<base>)
    • tag morfosyntaktyczny w formacie NKJP (<ctag>)

Taki plik uzyskiwany jest na wyjściu analizatora morfo-syntaktycznego (tagera WCRFT2). Kolejne narzędzia do przetwarzania języka polskiego mogą te informacje wzbogacać. Wykorzystuje się do tego mechanizm anotacji (znacznik <ann>). Każda anotacja związana jest z kanałem, którego nazwa określona jest przez wartość atrybutu chan, a wartość (wartość znacznika <ann>) jest liczbą naturalną. Wartość zero oznacza, że dany token nie jest związany z daną anotacją. Te same wartości znacznika <ann> w tokenach w obrębie jednego zdania oznaczają, że dana anotacja rozciąga się na takie znaczniki.
Przykład pliku CCL z anotacjami wyznaczonymi przez narzędzie Liner2 pokazana poniżej. Wartości atrybutów chan są nazwami klas anotacji wyznaczanych przez Liner2 (mogą się różnić w zależności od użytego modelu).

<?xml version="1.0" ?>
<chunkList>
<chunk>
<sentence>
<tok>
<orth>Pani</orth>
<lex><base>pani</base><ctag>subst:sg:nom:f</ctag></lex>
<lex><base>pani</base><ctag>subst:sg:gen:f</ctag></lex>
<lex><base>pani</base><ctag>subst:sg:dat:f</ctag></lex>
<lex><base>pani</base><ctag>subst:sg:loc:f</ctag></lex>
<lex><base>pani</base><ctag>subst:sg:voc:f</ctag></lex>
<ann chan="person_nam">0</ann>
<ann chan="person_first_nam">0</ann>
<ann chan="city_nam">0</ann>
<ann chan="person_last_nam">0</ann>
</tok>
<tok>
<orth>Ala</orth>
<lex><base>Ala</base><ctag>subst:sg:nom:f</ctag></lex>
<ann chan="person_nam">1</ann>
<ann chan="person_first_nam">1</ann>
<ann chan="city_nam">0</ann>
<ann chan="person_last_nam">0</ann>
</tok>
<tok>
<orth>Nowak</orth>
<lex><base>Nowak</base><ctag>subst:sg:nom:m1</ctag></lex>
<ann chan="person_nam">1</ann>
<ann chan="person_first_nam">0</ann>
<ann chan="city_nam">0</ann>
<ann chan="person_last_nam">1</ann>
</tok>
<tok>
<orth>mieszka</orth>
<lex><base>mieszkać</base><ctag>fin:sg:ter:imperf</ctag></lex>
<ann chan="person_nam">0</ann>
<ann chan="person_first_nam">0</ann>
<ann chan="city_nam">0</ann>
<ann chan="person_last_nam">0</ann>
</tok>
<tok>
<orth>w</orth>
<lex><base>w</base><ctag>prep:acc:nwok</ctag></lex>
<lex><base>w</base><ctag>prep:loc:nwok</ctag></lex>
<lex><base>wiek</base><ctag>brev:pun</ctag></lex>
<lex><base>wielki</base><ctag>brev:pun</ctag></lex>
<lex><base>wiersz</base><ctag>brev:pun</ctag></lex>
<lex><base>wieś</base><ctag>brev:pun</ctag></lex>
<lex><base>wyspa</base><ctag>brev:pun</ctag></lex>
<ann chan="person_nam">0</ann>
<ann chan="person_first_nam">0</ann>
<ann chan="city_nam">0</ann>
<ann chan="person_last_nam">0</ann>
</tok>
<tok>
<orth>Warszawie</orth>
<lex><base>Warszawa</base><ctag>subst:sg:dat:f</ctag></lex>
<ann chan="person_nam">0</ann>
<ann chan="person_first_nam">0</ann>
<ann chan="person_last_nam">0</ann>
<ann chan="city_nam">1</ann>
</tok>
</sentence>
</chunk>
</chunkList>