tno-terminology-design / tev2-tools

The Terminology Engine (v2) is a set of specifications and tools that caters for the creation and maintenance (i.e. curation) of terminologies. This repository contains the sources for the tools.
Apache License 2.0
2 stars 3 forks source link

HRGT moustache profile (documentatie) #20

Closed RieksJ closed 9 months ago

RieksJ commented 10 months ago

Het is de bedoeling dat voor TEv2 tools die teksten converteren, zoals de TRRT en HRGT, een 'moustache profile' is gedefinieerd, d.w.z. een verzameling van moustache-variabelen die door de interpreter van waardes worden voorzien. Voor de TRRT bevat het profiel de variabelen {{showtext}}, {{termType}}, {{term}}, {{trait}}, {{scopetag}}, {{vsntag}}.

Door dit te documenteren kunnen gebruikers hun eigen interpreters maken die aansluiten op bestaande converters.

De documentatie van dit profiel voor de HRGT ontbreekt op dit moment. Ik zie verschillende mogelijkheden:

  1. {{scopetag}}, {{vsntag}}, {{paramlist}}
  2. {{scopetag}}, {{vsntag}}, {{converter}}, {{sort}}

@Ca5e : heb jij nog andere ideeen? Zo ja, wat zijn die? Welke van jouw/mijn ideeen zijn geimplementeerd c.q. zouden moeten zijn geimplementeerd?

Ca5e commented 10 months ago

De waarden voor de TRRT komen overeen met hetgeen dat ooit is bedacht voor de regex, met daarbij type toegevoegd. Dit zijn de zes: [showtext](type:id#trait@scopetag:vsntag]. termType en term, zoals die hierboven zijn genoemd, zijn natuurlijk wel beschikbaar in de converters als eigenschappen van een MRG entry. Het lijkt me niet helemaal correct om de eigenschappen van een term direct te schrijven als moustache variabele (dus omringd door de dubbele accolades), gezien dit alleen als notatie in de converter van toepassing is en nog niet in de interpreter.

Voor de HRGT, en dus de beschikbare eigenschappen van een MRGRef, heb ik op dit moment gekozen voor hrg, converter, sorter, scopetag en vsntag. Hierbij wordt als named capturing group eerst de waarde voor hrg opgeslagen en wordt deze later gesplitst om ook tot scopetag en vsntag te komen. Iets als paramlist zal nieuwe mogelijkheden kunnen bieden als het gaat om het toevoegen van eigenschappen aan een MRGRef die niet beschreven staan, maar daarna wel gebruikt kunnen worden in een converter. Het nadeel is hierbij dat er wel een specifieke notering vastgelegd moet worden waarin we duidelijk maken hoe de paramlist dan weer geinterpreteerd wordt.

Door het bovenstaande verhaal zie ik wel de kracht in functionaliteit om alle named capturing groups uit een interpreter, die niet per se gedocumenteerd hoeven te zijn, ook toe te voegen als eigenschap van een term of MRGRef. Wat er op z'n plaats weer voor zorgt dat deze eigenschappen gebruikt kunnen worden in een zelfgeschreven converter. Iets als paramlist wordt volgens mij dan onnodig.

RieksJ commented 10 months ago

Waar dit op neer komt is een verduidelijking van het generieke conversieproces. Op dit moment is (min of meer) beschreven dat een importer een textje vindt (een termref of mrgref), daar (moustache) variabelen uit haalt, en dat de converter op basis daarvan (en andere spullen) een replacement-tekst, en dat het gevonden tekstje dan met de replacement-tekst wordt vervangen.

Het lijkt erop dat we dit moeten verduidelijken tot iets als:

Elke tool die dit idee gebruikt (HRGT, TRRT) moet dan specificeren:

Mee eens?

Ca5e commented 10 months ago

Het volgende zou ik als een correcte beschrijving zien.

Er zou dan per tool beschreven kunnen worden wat de profielen bevatten en watvoor mogelijke verwerking er gedaan wordt (zoals showtext naar id omzetten en defaulttype instellen).

Door het bovenstaande verhaal zie ik wel de kracht in functionaliteit om alle named capturing groups uit een interpreter, die niet per se gedocumenteerd hoeven te zijn, ook toe te voegen als eigenschap van een term of MRGRef. Wat er op z'n plaats weer voor zorgt dat deze eigenschappen gebruikt kunnen worden in een zelfgeschreven converter. Iets als paramlist wordt volgens mij dan onnodig.

Wat vind je verder van het bovenstaande @RieksJ? Dit zou er dus voor zorgen dat de output van de interpreter naast de standaard showtext, id, type, trait, scopetag en vsntag, in het geval van de TRRT, simpelweg alle named capturing groups beschikbaar maakt.

RieksJ commented 10 months ago

Dat klinkt goed. We zouden dan kunnen zeggen dat:

RieksJ commented 10 months ago

@Ca5e Zou je de generieke documentatie hierover, en ook de specifieke documentatie van de HRGT en de TRRT willen nalopen en zien of die specificaties met de implementatie overeenkomen (d.w.z. de specs zijn compleet, consistent en zo, en de implementatie heeft geen 'extraatjes' die niet zijn gespecificeerd)?

Ca5e commented 9 months ago

The documentation of the TRRT, HRGT, and converter profile have just been adjusted slightly. The update is failing within the deploy workflow because the bot that commits updated MRG's doesn't have a verified signature, which now seems to be required within the repo (repository rule violations). I believe there are solutions, but this should be part of another issue. I'll close this for now as the converter profile documentation now seems adequate.