17 juni 2020

Taken:

  1. SPOD
    • reeksvormers: omschrijving, en =2 vervangen door >1
  2. AlpinoGraph
    • voorlopig alleen met globale corpora
    • documentatie
      • menu met voorbeelden aanpassen
    • site met vrije corpora, zoals alpinotreebank.dact, alpinotreebank.zip
    • alpino_ds.dtd: alternatief voor <nattr/> en <rattr/>
      • zoek naar beste optie → zie beneden
        1. generiek element zoals <data name></data>
        2. xml-namespace apart voor AlpinoGraph
      • aanpassen in:
        • DTD
          • versienummer
            1. versie 1.11 overschrijven
            2. versie 1.11 obsolete verklaren, en naar versie 1.12 gaan
        • alpino2agens
        • AlpinoAgens: boom opslaan als xml
        • cyp2alp
        • dact_attrib
        • alpinods
        • alud
        • AlpinoGraph in Docker
        • Alpino-API (niet nodig)
    • andere/geen markering van relaties met extra attributen
    • een beter _vorfeld
      • query vereenvoudigen?
      • testen op verschillen met oude variant
      • implementeren in alpino2agens
    • attribuut _in_order=true|false
    • alle corpora opnieuw invoeren, als _vorfeld en _in_order klaar zijn
    • toevoegen aan spod-voorbeelden: reeksvormers
    • dact_attrib toevoegen aan AlpinoGraph in Docker
    • snellere file-server
      • huidig gebruik: 568G, 28%
      • meer/alle globale corpora uit PaQu invoeren
    • logfiles opruimen
  3. BlackLab
    • logfiles opruimen
  4. Werklog

1. Generiek data-element in alpino_ds.dtd

In de DTD:

<!ELEMENT  node  (data*,(node*|ud))  >
<!ELEMENT  data  (#PCDATA)           >
<!ATTLIST  data
           name  CDATA  #IMPLIED     >

Voorbeelden gebruik in AlpinoGraph:

<data name="ag:rel:bool:primary">false</data>
<data name="ag:node:bool:vorfeld"/>            <!-- true -->
<data name="ag:node:text:kleur">groen</data>
<data name="ag:node:int:score">12</data>

Prefix ag: is voor het onderscheid als er door andere toepassingen ook extra data wordt toegevoegd.

2. XML-namespace in AlpinoGraph

Een namespace gebruiken voor een extensie werkt niet met alleen maar de standaard DTD. Je moet alsnog de extensie definieren in de DTD, of in het XML-document, bijvoorbeeld zo:

<?xml version="1.0"?>
<!DOCTYPE alpino_ds SYSTEM "alpino_ds.dtd"  [
<!ELEMENT ag:data    EMPTY                       >
<!ATTLIST ag:data
          xmlns:ag   CDATA            #FIXED "urn:alpinograph.let.rug.nl"
          ag:name    CDATA            #REQUIRED
          ag:class   (node|rel)       "node"
          ag:type    (text|int|bool)  "bool"
          ag:value   CDATA            #IMPLIED   >
<!ELEMENT node       ((ag:data)*,(node*|ud))     >
]>
<alpino_ds version="1.10">
  <parser build="Alpino-x86_64-linux-glibc2.5-21514-sicstus" date="2019-08-28T18:15:57+02:00" cats="1" skips="0"/>
  <node begin="0" end="11" id="0" rel="top" cat="top">
    <ag:data xmlns:ag="urn:alpinograph.let.rug.nl" ag:class="rel" ag:name="foo" ag:type="text" ag:value="bar" />
    <node begin="0" end="10" id="1" rel="--" cat="smain">

Bovenstaande kan gevalideerd worden met:

xmllint --load-trace --loaddtd --noout --postvalid file.xml

En dan zit je nog met het probleem van software die niet makkelijk met namespaces overweg kan.

Misschien is het gebruik van een namespace niet het goede middel:

Briefly stated, the primary purpose of XML namespaces is to define a mechanism for uniquely naming elements and attributes so that different vocabularies can be mixed in an XML document without name conflicts.

Bron: XML and Namespaces in XML Family of Specifications: A Practical Guide, Kenneth B. Sall, 2003

Namespaces lijken vooral nuttig als je meerdere publieke xml-formaten wilt combineren.

alpinograph paqu spod