Popis struktury DB » Historie » Revize 19
Revize 18 (Ondřej Drtina, 2021-03-26 17:21) → Revize 19/24 (Ondřej Drtina, 2021-03-27 13:13)
h1. Úvod Zadavatelem byly dodány dvě databáze, jejichž struktura je shodná. Tedy shodují se názvy i počet tabulek, rovněž jsou shodné i typy atributů, kterými dané tabulky disponují. Popis je tedy validní pro obě dodané databáze. h1. Dostupné tabulky V podkapitolách je uveden obecný popis dat, jež obsahuje tabulka s odpovídajícím názvem. h2. dd_wordform Uvedenou tabulku lze považovat za výchozí bod pro zobrazení dat uživateli. Obsahuje slovní tvar, datum vytvoření záznamu a poznámky přiřazené k jednotlivým záznamům vytvořené zadavatelkami. Rovněž se v tabulce nachází cizí klíče, které zajistí přiřazení lemmatu a morfologické charakteristiky k příslušnému slovnímu tvaru. h2. dd_lemma Obsahuje slova v základním tvaru. h2. dd_tag Obsahuje morfologickou charakteristiku pro slovní tvary. Charakteristika je v kódovém označení, které je blíže popsáno v kapitole pojednávající o atributech přítomných v tabulkách. h2. dd_manuscript Jedná se o spojovací tabulku vyjadřující relaci M:N zajišťující přiřazení textového pramenu k slovnímu tvaru. Jeden slovní tvar se může nacházet ve více pramenech a zároveň jeden pramen může obsahovat více slovních tvarů. Seznam pramenů je dostupný v kapitole popisující atributy. h1. Atributy tabulek Předmětem kapitoly je detailní popis atributů a jejich významu v dané tabulce. V seznamu atributů není uvedena položka "id", kterou obsahují všechny uvedené tabulky vyjma "dd_manuscript", jelikož její význam je shodný napříč tabulkami. Atribut "id" je hodnotou, která je pro každou položku tabulky odlišná. Hodnota "id" je inkrementována obvyklým způsobem, tedy pokud má poslední vložený záznam "id" n, nově vložený záznam bude mít "id" n + 1. Pokud je u atributu uveden příklad, pak se vztahuje k druhé dodané databázi. h2. dd_wordform h3. context Typ atributu: character varying (20) Předložka slovního tvaru (pokud je tedy vůbec zadáno). - OK Příklad: V případě slovního tvaru "jeho" ("id" = 33279) je předložka "okolo". h3. date Typ atributu: timestamp without time zone Datum vytvoření příslušného záznamu ve formátu rrrr-mm-dd, kde r = rok, m = měsíc, d = den. Položky mají rovněž přiřazený i čas, který však zřejmě nikdy nebyl zadán (KOUKNOUT SE) - u všech položek je tedy 00:00:00. Příklad: Datum a čas vytvoření slovního tvaru "jeho" ("id" = 33279) je "2017-09-19 00:00:00". h3. description Typ atributu: character varying (250) //TODO: líp spec. Poznámka uživatelek, v blíže nespecifikovaný význam. V dodaném SW popsáno jako "Poznámka1". Při reprezentaci dat uživateli má být obsah daného atributu zobrazen To, co se v indexu tiskne za dokladem, tedy za obsahem atributu "word". dokladem (tedy atribut word). Za dokladem se zobrazí i ve finální DB. Příklad: V případě slovního tvaru "bahajíce" ("id" = 358) má atribut hodnotu "(sic)". h3. description2 Typ atributu: character varying (250) //TODO: líp spec. Poznámka uživatelek, v blíže nespecifikovaný význam. V dodaném SW popsáno jako "Poznámka2". Obsah prvního řádku daného atributu (před "\n") má být zobrazen co se tiskne za lemmatemtýká se lemmatu - u lemmatu. Na druhé lemmatu na první řádce v případě ; u sloves uvedeno, - na druhém řádku, s čím se mohou může pojit (pak se tiskla dohromady) ; případně označení ozn. pro jméno místní. //TODO: v dodaném sw se nezdá, že by to bylo nějak respektováno a ani, že by byl popisek jednotný. Tohle zkusíme dořešit při zobrazení dat uživateli místní Příklad: V případě slovního tvaru "bahajíce" ("id" = 358) má atribut hodnotu "po čem". h3. description3 Typ atributu: character varying (250) //TODO: líp spec. Poznámka uživatelek, v blíže nespecifikovaný význam. V dodaném SW popsáno jako "Poznámka3". Pokud je hodnota atributu přítomna, pak se ve většině případů jedná o předložku (hodnotu atributu context) spojenou s konkrétním slovním tvarem (hodnotou atributu word). //TODO: zadavatelky uznaly, že toto nemají jednotné, domluvíme se, jestli budou chtít zobrazit nějak jinak než prosté "poznámka3". Příklad zadavatelek: V království - context: v, word: království, pozn3 => v království Příklad: V případě slovního tvaru "bahajíce" ("id" = 358) má atribut hodnotu "E.P. dopl. vazba". h3. ending Typ atributu: character varying (10) Koncovka příslušného slovního tvaru. Příklad: když word = "Albrechta", pak ending = "a". Příklad: V případě slovního tvaru "abych" ("id" = 37356) má atribut hodnotu "ch". h3. finished Typ atributu: boolean Vyjadřuje, zda již bylo zpracování daného slovního tvaru zcela dokončeno či nikoliv. Atribut tak nabývá hodnoty "true", respektive "false". Příklad: V případě slovního tvaru "abych" ("id" = 37356) má atribut hodnotu true. h3. namedentity Typ atributu: integer Určuje, zda je slovní tvar vlastním jménem či nikoli. //TODO: líp spec. Význam atributu neznámý, není vyobrazen v dodaném SW. V první dodané databázi nabývá hodnot 0 a 1, v druhé databázi nabývá pouze hodnoty 0. První databáze tedy obsahuje i pokud vlastní jména (hodnota atr. 1), druhá nikoli. V dodaném SW zobrazeno jako "vlastní jméno", resp. "ostatní". jméno - 1, pokud neurčeno vlastní jméno pak 0 (="ostatní") Příklad: V případě slovního tvaru "abych" ("id" = 37356) má atribut hodnotu 0. h3. position1 Typ atributu: character varying (10) Číslo kapitoly v textovém pramenu, z něhož byl slovní tvar získán. V dodaném SW zobrazeno jako hodnota "Pozice" před lomítkem. Příklad: V případě slovního tvaru "abych" ("id" = 37356) má atribut hodnotu 39. h3. position2 Typ atributu: character varying (10) Číslo verše v textovém pramenu, z něhož byl slovní tvar získán. V dodaném SW zobrazeno jako hodnota "Pozice" za lomítkem. Příklad: V případě slovního tvaru "abych" ("id" = 37356) má atribut hodnotu 64. h3. positiondetail Typ atributu: character varying (10) Jedná se o //TODO: zeptat se, netuším. V dodaném SW není umožněno zobrazení hodnoty daného atributu. přípisky písaře k danému slovnímu tvaru. Příklad: V případě slovního tvaru "poslachu" ("id" = 45) má atribut hodnotu "P1". h3. prefix Typ atributu: character varying (10) Atribut vyjadřuje předponu slova. V první databázi u menšiny položek má přidělenou hodnotu, v druhé databázi není hodnota dostupná u žádné z položek. Dodaný SW neumožňuje zobrazit hodnotu daného atributu. h3. suffix Typ atributu: character varying (10) Jedná se o příponu slovního tvaru. V první databázi má atribut přidělenou hodnotu u menšiny položek, v druhé databázi není danému atributu přidělena hodnota u žádné položky. Dodaný SW neumožňuje zobrazit hodnotu daného atributu. h3. word Typ atributu: character varying (50) Samotný slovní tvar, ke kterému je vázán zbytek popsaných atributů. Příklad: Slovního tvaru "poslachu" ("id" = 45). h3. lemma_id Typ atributu: bigint Cizí klíč, odkaz do tabulky dd_lemma. Pro vyhledání odpovídajícího lemmatu ke slovnímu tvaru je potřeba vyhledat hodnotu atributu "lemma_id", který je u příslušného slovního tvaru, ve sloupci "id" v tabulce "dd_lemma". Příklad: V případě slovního tvaru "poslachu" ("id" = 45) má atribut hodnotu 8. h3. tag_id Typ atributu: bigint Cizí klíč, odkaz do tabulky dd_tag. Pro přiřazení odpovídající morfologické charakteristiky ke slovnímu tvaru je potřeba najít hodnotu atributu "tag_id", který je u příslušného slovního tvaru, ve sloupci "id" v tabulce "dd_tag". Příklad: V případě slovního tvaru "poslachu" ("id" = 45) má atribut hodnotu 6. h2. dd_lemma h3. lemma Typ atributu: character varying (50) Slovo v základním tvaru, maximálně 50 znaků. Příklad: V případě, že hledáme lemma slovního tvaru "poslachu" ("id" v tabulce "dd_wordform" = 45), najdeme hodnotu "lemma_id" příslušného slova, tedy 8 => lemma "poslati". h3. pos Typ atributu: integer //TODO: zeptat se, netuším. Charakterizuje pozici lemmatu v textu. Jedno lemma se může vyskytovat na různých pozicích, tedy mít různou hodnotu atributu "pos". Příklad: V případě, že hledáme hodnotu "pos" slovního tvaru "poslachu" ("id" v tabulce "dd_wordform" = 45), najdeme hodnotu "lemma_id" příslušného slova, tedy 8 => pos = 4. h2. dd_tag h3. tag Typ atributu: character varying (20) Morfologická charakteristika slova, kódově označena. V první dodané DB je charakteristika definována 6 či 7 symboly, ve druhé DB pak 12 symboly, kdy symbol v pořadí označuje: > 1) slovní druh: podstatné jméno - "N", přídavné jméno - "A", zájmeno - "P", číslovka - "C", sloveso - "V", příslovce - "D", předložka - "R", spojka - "J", citoslovce - "I", částice - "T" > 2) pád: 1. pád (nominativ) - "1", 2. pád (genitiv) - "2", 3. pád (dativ) - "3", 4. pád (akuzativ) - "4", 5. pád (vokativ) - "5", 6. pád (lokál) - "6", 7. pád (instrumentál) - "7" > 3) číslo: jednotné číslo - "S", množné číslo - "P", dvojné číslo - "D" > 4) rod: mužský rod - "M", ženský rod - "F", střední rod - "N" > 5) stupeň: 1. stupeň - "1", 2. stupeň - "2", 3. stupeň - "3" > 6) tvar: tvar složený - "C", tvar jmenný - "N" > 7) num. - "C", subst. num. - "S", adj. num. - "A" > 8) větná - "V", členská - "C", navazovací - "N", spojení s přech. - "P" > 9) osoba: 1. osoba - "1", 2. osoba - "2", 3. osoba - "3" > 10) čas: přítomný čas - "P", aorist - "A", préteritum - "R", imperfektum - "I", předminulý čas - "H", budoucí čas - "F" > 11) slovesný rod: pasivum - "P", aktivum - "A" > 12) slovesný vid: dokonavé sloveso - "P"; nedokonavé sloveso - "I" Příklad: V případě, že hledáme morfologickou charakteristiku slovního tvaru "poslachu" ("id" v tabulce "dd_wordform" = 45), najdeme hodnotu "tag_id" příslušného slova, tedy 6 => tag "V-P----d3AAP". h2. dd_manuscript h3. wordform_id Typ atributu: bigint Hodnota tohoto atributu se vždy vyskytuje ve sloupci "id" v tabulce "dd_wordform". Příklad: Pro vyhledání dokumentů, ve kterých se vyskytuje slovní tvar "poslachu" ("id" v tabulce "dd_wordform" = 45), najdeme všechny řádky tabulky, kde "wordform_id" = 45. Zjistíme, že se vyskytuje v dokumentech č. 11 (rukopis Cerronský) a č. 12 (rukopis Fürstenberský). h3. manuscript Typ atributu: integer Číslo textového pramenu, ve kterém se slovní tvar nachází. Prameny jsou číslovány od 0, celkově jich je 16. Atribut tedy v dodané DB nabývá hodnot 0-15, kde číslo označuje: > 0 - rukopis Vídeňský > 1 - zlomky Hanušovy > 2 - zlomky Hradecké > 3 - rukopis Cambridžský > 4 - rukopis Františkánský > 5 - zlomek Olomoucký > 6 - fragment Strahovský > 7 - zlomky Klementinsko-Křižovnické > 8 - zlomky Mnichovské > 9 - rukopis Lobkovický > 10 - rukopis Pelclův > 11 - rukopis Cerronský > 12 - rukopis Fürstenberský > 13 - rukopis Zebererův > 14 - vydání Pavla Ješína z Bezdězi, Praha 1620 > 15 - básně připsané při Pulkavově kronice v rukopisu Litoměřickém Příklad: Pro zjištění všech slov, která se vyskytují v dokumentu 0 (rukopis Vídeňský), najdeme všechny řádky tabulky, kde "manuscript" = 0. Následně pak získané hodnoty "wordform_id" použijeme jakožto klíč ("id") do tabulky "dd_wordform" a najdeme příslušná slova.