15 april 2020

Taken:

  1. AlpinoGraph
    • voorlopig alleen met globale corpora
    • relatie -- ook weergeven in boom
    • weergave van bomen: relaties als labels of als onzichtbare nodes?
      • voorbeelden: wanneer is de ene variant duidelijker, wanneer de andere
      • mouse-over label → vette lijn
        • dit werkt niet bij weergave van relaties als onzichtbare nodes
    • vormgeving van figuren
    • frequentietabellen van (groepen van) woorden en lemma’s
      • direct in AgensGraph, zie beneden
    • UD en mwu: alle woorden/lemma’s van mwu geven i.p.v. alleen het eerste
      • aangepaste query: voorbeeld
      • hulpattributen op het eerste woord: words, lemmas
        • dat zou op alle woorden moeten, niet alleen woorden die deel van mwu zijn
    • macro’s, bijvoorbeeld woordenlijsten
      • zie beneden
      • macro’s gemaakt door gebruikers
      • knop voor ongedaan maken van veranderingen
      • knop voor macro-expansie in invoerveld?
      • macro’s met parameters
    • meerdere pagina’s van resultaten
      • hoeveel resultaten per pagina
        • bijvoorbeeld: gezocht naar zinnen: 20, 40
        • bijvoorbeeld: gezocht naar alfabetisch gesorteerde lijst: alles op één pagina
        • hoe automatiseer je dit
      • zoeken naar woorden en lemma’s loopt door terwijl uitvoer voor zinnen en tabel is gestopt… hoe combineer je dat met pagina’s
    • alle(?) globale corpora uit PaQu invoeren
    • veel documentatie nodig, met afbeeldingen, over agensgraph in het algemeen, over structuur van Alpino_ds in agensgraph, en over structuur van hulpattributen, met een uitgebreide stap-voor-stap HOWTO
    • snellere file-server
  2. Cypher
    • cyp2ud
    • cyp2alp bijwerken
    • cypher bijwerken
    • cypher-text bijwerken
    • cypher-view bijwerken

Met deze macro’s, voorbeeld:

match (adj:word{pos: 'adj'})<-[:rel]-(n)-[:rel]->(noun:word{pos: 'noun'})
match (n)<-[:rel*]-(pp:node{cat: 'pp'})<-[:rel{rel:'mod'}]-()
where noun.root in [%looksN%, %clothing%]
  and adj.root in [%looksA%]
return adj, noun

Lijst van woorden onder een gezochte node:

-- 1: zoek iets
match (n:node{_deste: true})
return distinct n.sentid as sid, n.id
order by sid, id

-- 2: zoek woorden onder iets
match (n:node{_deste: true})
match (n)-[:rel*]->(w:word)
return distinct n.sentid as sid, n.id, w.end as positie, w.word as woord
order by sid, id, positie

-- 3: voeg de woorden per iets samen
select sid, id, string_agg(trim(both '"' from woord::text), ' ') as woorden
from (
  match (n:node{_deste: true})
  match (n)-[:rel*]->(w:word)
  return distinct n.sentid as sid, n.id, w.end as positie, w.word as woord
  order by sid, id, positie
) as foo
group by sid, id
order by sid, id

-- 3a: variant van 3 om te kijken of de woorden wel direct achter elkaar staan
select sid, id, string_agg(trim(both '"' from woord::text), ' ') as woorden
from (
  match (n:node{_deste: true})
  match (n)-[:rel*]->(w:word)
  return distinct n.sentid as sid, n.id, w.end as positie, w.end + ' ' + w.word as woord
  order by sid, id, positie
) as foo
group by sid, id
order by sid, id

-- 4: tel de frequenties van woorden onder iets
select count(woorden) as aantal, woorden
from (
  select string_agg(trim(both '"' from woord::text), ' ') as woorden
  from (
    match (n:node{_deste: true})
    match (n)-[:rel*]->(w:word)
    return distinct n.sentid as sid, n.id as id, w.end as nummer, w.word as woord
    order by sid, id, nummer
  ) as foo
  group by sid, id
) as bar
group by woorden
order by aantal desc, woorden
alpinograph cypher