24 juni 2020

  1. AlpinoGraph
    • voorlopig alleen met globale corpora
    • documentatie
      • definitie extra attributen updaten
      • voorbeeld: vorfeld in cypher
      • menu met voorbeelden aanpassen
    • site met vrije corpora, zoals alpinotreebank.dact, alpinotreebank.zip
      • verwijzing in helptekst in AlpinoGraph in Docker
    • een beter _vorfeld
      • bij meerdere heads onder een node (cgn): alleen de eerste gebruiken
      • implementeren in alpino2agens
    • attribuut voor hd-relatie onder cnj-relatie: _in_place=true|false
      • attribuut niet op “head” maar op rel=cnj
    • alle corpora opnieuw invoeren, als _vorfeld en _in_place klaar zijn
    • toevoegen aan spod-voorbeelden: reeksvormers
      • zie beneden
    • toevoegen aan voorbeelden in tutorial(?): node of word met meerdere parents
    • dact_attrib
      • gebruik documenteren op werklog:AlpinoGraph
      • toevoegen aan AlpinoGraph in Docker
        • documenteren in help-tekst
        • dact_attrib voor DbXML versie 2 en dact_attrib_v6 voor versie 6
      • optie: AlpinoGraph-specifieke checks uitschakelen
    • snellere file-server
      • huidig gebruik: 568G, 28%
      • alle globale corpora uit PaQu invoeren, behalve Lassy Groot: NL-Wiki
  2. BlackLab
    • logfiles opruimen
  3. Werklog

Reeksvormers

Dit is een aardig begin. Er moeten minimaal twee crd’s en twee cnj’s zijn, en er moet een crd vooraan staan. Die crd vooraan is gewoonlijk de eerste node die genummerd wordt met een id onder de conj.

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(:nw)
match (:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(:nw)
where n1.id = n.id + 1
return n

Maar je krijgt vrij veel fouten. Met extra tests filter je die er uit:

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(n3:nw)
match (n2:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(n4:nw)
where n1.id = n.id + 1
and (
      n1.id < n2.id
  and n2.id < n3.id
  and n3.id < n4.id
  or
      n1.begin < n2.begin
  and n2.begin < n3.begin
  and n3.begin < n4.begin
)
return n

Die tests met begin zijn nodig omdat de ids niet altijd oplopend zijn genummerd. In SPOD in PaQu gaat dat ook fout. Daar wordt deze zin ook niet gevonden.

Ook met tests op begin erbij mis je er nog een paar die wel goed zijn, zoals deze:

Hiermee kun je zien welke items er door de toegevoegde tests worden uitgefilterd:

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(:nw)
match (:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(:nw)
where n1.id = n.id + 1
return n.sentid, n.id

except

match (n1:nw)<-[:rel{rel:'crd'}]-(n:node{cat: 'conj'})-[:rel{rel: 'crd'}]->(n3:nw)
match (n2:nw{sentid: n.sentid})<-[:rel{rel:'cnj'}]-(n)-[:rel{rel: 'cnj'}]->(n4:nw)
where n1.id = n.id + 1
and (
      n1.id < n2.id
  and n2.id < n3.id
  and n3.id < n4.id
  or
      n1.begin < n2.begin
  and n2.begin < n3.begin
  and n3.begin < n4.begin
)
return n.sentid, n.id
alpinograph