Skip to content

Sõnakogude import

Martin Laubre edited this page Nov 21, 2019 · 11 revisions

Lühidalt

Sõnakogude impordifaili valideerimine ja importimine toimub sama käsurearakendusega DatasetImporter. Järgnevalt rakenduse kasutamise juhend ja impordifaili struktuuri kirjeldus. Rakendusega saab importida ainult sõnakogude endi andmeid. Importida pole võimalik klassifikaatoreid ega allikaid. Impordifaili valideerimine tuvastab ja raporteerib ainult toodud andmete füüsilise terviklikkuse. Tänase seisuga peab faili koostaja ise tuvastama ja tagama kasutatud klassifikaatorite, allikate eelneva olemasolu andmebaasis ja loogilised kohustuslikud andmekooslused (word+lexeme+meaning; word+word_guid; meaning+meaning_nr jne)

Maveniga ehitamine ja käivitamine

Ehitamine

ekilex/ekilex-etl>mvn clean install -D skipTests -P <profiil>

Reaalse andmebaasi pealt andmestruktuuride kirjelduse genereerimine faili tables-desc.txt

ekilex/ekilex-etl>mvn exec:java -P <profiil> -Dexec.args="tables"

Impordifaili valideerimine ja tulemuste väljastamine faili import-validation.txt

Hetkel valideerimine eeldab uue sõnakogu loomist. Sõnakogu täiendamise puhul kogunevad raportisse kõik FK viited failis mitte-esinevate kirjete kohta.

ekilex/ekilex-etl>mvn exec:java -P <profiil> -Dexec.args="validate <impordi faili rada>"

Sõnakogu importimine uue sõnakogu loomisega

Sõnakogu võib eelnevalt eksisteerida, kuid eeldatakse, et kirjed failis tuleb kõik luua. Viited (Foreign Key) võivad olla nii (uutele) kirjetele failis kui olemasolevatele andmebaasis.

ekilex/ekilex-etl>mvn exec:java -P <profiil> -Dexec.args="import create <impordi faili rada>"

Andmete täiendamine olemasolevas sõnakogus

Sõnakogu peab eelnevalt eksisteerima. Fail võib sisaldada fragmente täielikust andmehierarhiast, mida luuakse ja seotakse olemasolevate andmebaasi kirjetega. Kirjete alternatiivide liitmist (merge) ei toimu.

ekilex/ekilex-etl>mvn exec:java -P <profiil> -Dexec.args="import append <impordi faili rada>"

  • <profiil> - testkeskkonnas testsrvdsimp, toodangu keskkonnas prodsrvdsimp

Impordifaili formaat ja struktuur

Sõnakogude ekspordi rakendus koostab soovitud sõnakogu andmetest kogumi faile, millest igaüks on sisult orienteeritud ühe olulisema lähte olemi ja tema relatsioonide järgi. Failid on JSON formaadis ja pakendatud koondavasse kompresseeritud ZIP-faili. Sama failide ja andmete struktuur on ettenähtud sobima ka importimiseks.

Imporditavad tabelid on:

dataset, freeform, word, word_guid, word_word_type, word_etymology, word_etymology_relation, word_etymology_source_link, word_relation, word_group_member, word_group, word_lifecycle_log, word_process_log, meaning, meaning_freeform, meaning_nr, meaning_domain, meaning_relation, meaning_lifecycle_log, meaning_process_log, lexeme, lexeme_freeform, lexeme_pos, lexeme_deriv, lexeme_register, lexeme_region, lexeme_frequency, lexeme_relation, lexeme_source_link, lexeme_lifecycle_log, lexeme_process_log, lex_colloc, lex_colloc_pos_group, lex_colloc_rel_group, definition, definition_freeform, definition_source_link, definition_dataset, collocation, paradigm, form, form_frequency, lifecycle_log, process_log, process_log_source_link, freeform_source_link

Puhtalt informatiivsuse mõttes, ekporditakse, kuid ei laeta tabelid:

source, source_freeform

Koondfailide sisu hierarhia on järgmine

dataset.json

  • dataset

word.json

  • word > word_guid
  • word > word_word_type
  • word > word_relation
  • word > word_group_member > word_group
  • word > word_lifecycle_log > lifecycle_log
  • word > word_process_log > process_log
  • word > word_etymology > word_etymology_relation
  • word > word_etymology > word_etymology_source_link > source > source_freeform > freeform

paradigm.json

  • paradigm > form

meaning.json

  • meaning > meaning_nr
  • meaning > meaning_domain
  • meaning > meaning_relation
  • meaning > meaning_lifecycle_log > lifecycle_log
  • meaning > meaning_process_log > process_log
  • meaning > meaning_freeform > freeform > freeform_source_link > source > source_freeform > freeform
  • meaning > definition > definition_dataset
  • meaning > definition > definition_source_link > source > source_freeform > freeform
  • meaning > definition > definition_freeform > freeform

collocation.json

  • collocation

lexeme.json

  • lexeme > lexeme_pos
  • lexeme > lexeme_deriv
  • lexeme > lexeme_region
  • lexeme > lexeme_register
  • lexeme > lexeme_frequency
  • lexeme > lexeme_source_link
  • lexeme > lexeme_relation
  • lexeme > lexeme_lifecycle_log > lifecycle_log
  • lexeme > lexeme_process_log > process_log
  • lexeme > lexeme_freeform > freeform > freeform_source_link > source > source_freeform > freeform
  • lexeme > lex_colloc_pos_group > lex_colloc_rel_group
  • lexeme > lex_colloc

Iga JSON formaadis kirje sisaldab võtmetena vastava tabeli välju ja/või tabelite nimetusi, millele vastava kirje tabel viitab või mis viitavad kirje tabelile. Täpse loetelu kõigist väljadest, nende kohustuslikkusest ja viidatavatest/viitavatest tabelitest annab fail tables-desc.txt

Näited:

Sõnakogude impordifaili "word.json" näidisfragment

Sõnakogude impordifaili "word.json" andmestruktuuride osaline kirjeldus failist "tables-desc.txt"

Konstandid

Süsteemse tähendusega klassifitseeritud väärtused on konstandid, mis on kirjeldatud lähtekoodis. Järgnevalt tabelite väljade konstantidega vastavused:

Oluline on kasutada korrektseid tüüpe vastavalt freeform päritolule!

  • lexeme_freeform > freeform.type = GOVERNMENT
  • freeform.type = GOVERNMENT > freeform.type = GOVERNMENT_TYPE
  • freeform.type = GOVERNMENT > freeform.type = GOVERNMENT_PLACEMENT
  • freeform.type = GOVERNMENT > freeform.type = GOVERNMENT_VARIANT
  • freeform.type = GOVERNMENT > freeform.type = GOVERNMENT_OPTIONAL
  • lexeme_freeform > freeform.type = USAGE
  • freeform.type = USAGE > freeform.type = USAGE_TYPE
  • freeform.type = USAGE > freeform.type = USAGE_DEFINITION
  • freeform.type = USAGE > freeform.type = USAGE_TRANSLATION
  • lexeme_freeform > freeform.type = GRAMMAR
  • meaning_freeform > freeform.type = CONCEPT_ID
  • definition_freeform > freeform.type = PUBLIC_NOTE
  • lexeme_freeform > freeform.type = PUBLIC_NOTE
  • meaning_freeform > freeform.type = PUBLIC_NOTE
  • source_freeform > freeform.type = PUBLIC_NOTE
  • lexeme_freeform > freeform.type = ADVICE_NOTE
  • meaning_freeform > freeform.type = UNCLASSIFIED
  • source_freeform > freeform.type = SOURCE_*
  • source_freeform > freeform.type = EXTERNAL_SOURCE_ID
  • meaning_freeform > freeform.type = LEARNER_COMMENT
  • meaning_freeform > freeform.type = IMAGE_FILE
  • freeform.type = IMAGE_FILE > freeform.type = IMAGE_TITLE
  • meaning_freeform > freeform.type = SEMANTIC_TYPE
  • freeform.type = SEMANTIC_TYPE > freeform.type = SEMANTIC_TYPE_GROUP
  • meaning_freeform > freeform.type = SYSTEMATIC_POLYSEMY_PATTERN
  • meaning_freeform > freeform.type = GENUS
  • meaning_freeform > freeform.type = FAMILY
  • meaning_freeform > freeform.type = DESCRIBER
  • meaning_freeform > freeform.type = DESCRIBING_YEAR
  • lexeme_freeform > freeform.type = BOOKMARK
You can’t perform that action at this time.