Werkoverleg met GvN.
Taken:
- Alpino
- ❏ Erik vragen of hij tijd/zin heeft om de Alpino-server aan te passen. Anders zelf een server opzetten.
- → Vereisten van de server, zonder tokenisatie:
- ✻ Attributen: id, word, lemma, root, pos, pt, rel, cat, begin, end, index
- ✻ Versturen van een ping-regel elke halve minuut zolang verwerking van een zin langer duurt
- ✻ Als het kan ook logs versturen
? Wat te doen in PaQu als server niet beschikbaar is? Of als ie de verwerking afbreekt?
- → Eerst een verzoek naar server sturen met de vraag of er een "werker" beschikbaar is.
→ zie: /net/aistaff/kleiweg/tmp/alptest.sh
- → Vereisten van de server, met tokenisatie:
- ✻ Doorlopende tekst of één zin per regel
- ✻ Eén zin per regel met of zonder label
- ✻ Eén paragraaf per regel met een label, zin-nummers toevoegen aan label
- ✻ Doorlopende tekst correct omzetten in zinnen en paragrafen, met paragraaf- en zin-nummers in label.
- → Vereisten van de server, zonder tokenisatie:
- ✔ Wrapper rond tokenizer voor doorlopende tekst die alinea's en zinnen nummert in de labels.
- ✻ Begin van label is bestandsnaam of bepaald door een optie.
- ✻ Voorloopnullen gebruiken voor juiste sorteervolgorde.
→ zie:
echo 'Dit is een test. Met nog een regel. Par 2. Dit is een opsomming. Die moet zo blijven als het is: 1. fiets of bromfiets. Maar geen scooter! 2) auto * trein - boot Dit kan veranderd worden met optie -i ' | partok -p test
- ❏ Erik vragen of hij tijd/zin heeft om de Alpino-server aan te passen. Anders zelf een server opzetten.
Uit mail aan Erik:
Het minimum wat nodig is voor PaQu is een server die de invoer regel voor regel parst, helemaal zonder te tokenizeren.
Slaat Alpino de losse xml-bestanden eerst op voordat de server ze verstuurt? Let dan op met labels! Een regel kan een label met een path bevatten, bijvoorbeeld: doc23/line14 . Alpino wil het resultaat opslaan als doc23/line14.xml . De directory doc23 moet bestaan, maar Alpino controleert dat niet. De server moet dus voor de aanroep van Alpino die directory aanmaken.
Verder is er duidelijkheid nodig over het gedrag van de server:
- Wat gebeurt er als de server te druk is? Komt er dan een melding die aangeeft hoelang ik moet wachten om het weer te proberen? Het zou handig zijn als er een manier was om de server te pollen om een 'worker' te reserveren.
- Wat gebeurt er als er zinnen zijn die te ingewikkeld zijn om te parsen? Zijn er geheugenbeperkingen? Gebruik je een time-out per zin?
- Is er een limiet aan het aantal regels per request?
- Als het parsen van een zin lang duurt zou de server elke minuut een 'ping' moeten sturen ten teken dat de server nog bezig is, en is niet is vastgelopen of zo.
- Uitvoer van stderr doorsturen naar de client zou handig zijn, voor nadere inspectie. Zie attachment voor een voorbeeld van xml gecombineerd met stderr.
En dan nog de tokenisatie. De huidige opzet is dat PaQu de tokenisatie doet, en alleen voor het parsen eventueel een server gebruikt. Het zou mooi zijn als de server ook de tokenisatie kan doen. Maar de manier waarop de scripts van Alpino tokeniseren voldoen niet. De minimum-eisen voor PaQu zouden zijn:
- Tokeniseren van één zin per regel waarbij die zin vooraf wordt gegaan door een label.
- Tokeniseren van meerdere zinnen per regel, die gesplitst zou moeten worden in apparte zinnen, waarbij elke zin het volgnummer als label krijgt. Als de regel al een label heeft zou dat volgnummer er aan toegevoegd moeten worden. Nummering begint bij elke invoerregel opnieuw.
- Eventueel: tokeniseren van doorlopende tekst. Eerst splitsen in paragrafen (regel met alleen white space of een formfeed in de invoer), per paragraaf alles op één regel zetten, die regel tokeniseren met invoegen van newlines. Uitvoer zou gelabeld moeten worden met paragraaf-nummers, en regelnummers per paragraaf.
- Eventueel: automatisch tekst in utf-8 met BOM, utf-16 of utf-32 (beide met/zonder BOM), iso-8859-1 of windows-1252 omzetten naar utf-8 zonder BOM. (Ervan uitgaande dat er geen andere tekensets in de iso-8859-serie of windows-serie worden gebruikt, maar die zijn gewoonlijk niet voor Nederlands, behalve iso-8859-15, maar hoe herken je die?)