ARUP-CAS / aiscr-teater

Tezaurus archeologické terminologie
https://teater.aiscr.cz/
GNU General Public License v3.0
2 stars 0 forks source link

Vytvořit funkcionalitu k exportu jednotlivých hesel i celé databáze #8

Open stanislavvelcev opened 3 years ago

stanislavvelcev commented 3 years ago

Ve tvaru pro jednotlivá hesla: http://teater.aiscr.cz/id/123&type=json Bylo možné při stažení hesla ořezat subcategories pouze na ID a name přímých následníků? Možnost exportu při zadání http://teater.aiscr.cz/id/123&type=json? V. Kundrát zjistí. Export celé databáze – dát na landing page na úroveň nápovědy.

VladoKundrat commented 3 years ago

je dostupná "úvodná verzia" exportu. Úvodná preto, lebo by sme ešte potrebovali dohodnúť, aké atribúty exportovať. To bude záležať aj od primárneho use casu, ktorý sa tým sleduje. Môžeme teda ešte zo samotného .jsonu vyhodiť niektorý z atribútov.

stanislavvelcev commented 3 years ago

@VladoKundrat Co se týče exportu jednotlivých hesel, určitě celé description. A ohledně se exportu celé databáze, předpokládám, že print screenovaný error je kvůli tomu, že je to úvodní verze. error

motyc commented 3 years ago

Při exportu bych vynechával co nejméně údajů (pokud nejde o zcela technické věci). Ořezat si to může případný uživatel.

stanislavvelcev commented 3 years ago

Dobrý den, prošel jsem si export jednoho rodiče a jednoho lístku (depot, majetnický a votivní depot) a pak chronostratigrafie kvůli zanořenosti hesla. Co se týče dat, která se v těch exportních souborech nachází, jediné, čemu jsem neporozuměl je "categoryType": "OTHER", jinak mi přijde, že každá dvojce jmého-hodnota nese nějakou informaci pro uživatele, ať už je to url, nebo informaci o tom, jestli je to lístek nebo ne. Co mi přišlo, že chybí, je informace o potomcích, předpokládám, že v případě hesla "depot" by tam měli být oba potomci. Co mi naopak přijde jako komplikace jsou informace o rodičích, jednak v případě nějakého zanořeného hesla (viz export z chronostratigrafie dole), jednak kvůli tomu, že když se zároveň zobrazí informace o potomcích u těchto rodičů ze všech úrovní, tak to nakyne a bude to nepřehledné. Myslím, že prvotní domluva byla zobrazovat name a ID přímých potomků, jak je psáno výše. Co si myslíš Ty, Davide? @motyc

{
  "id" : "949",
  "name" : {
    "cz" : "chronostratigrafie",
    "en" : "chronostratigraphy",
    "de" : "Chronostratigraphie (e)"
  },
  "categoryType" : "OTHER",
  "url" : "4-hranicni-obory-a-pridruzene-obory/pribuzne-obory/vedy-o-zemi/geologie/pribuzne-discipliny-geologie/geochronologie/chronostratigrafie",
  "leaf" : true,
  "parent" : {
    "id" : "947",
    "name" : {
      "cz" : "geochronologie",
      "en" : "geochronology",
      "de" : "Geochronologie (e)"
    },
    "categoryType" : "OTHER",
    "url" : "4-hranicni-obory-a-pridruzene-obory/pribuzne-obory/vedy-o-zemi/geologie/pribuzne-discipliny-geologie/geochronologie",
    "leaf" : false,
    "parent" : {
      "id" : "931",
      "name" : {
        "cz" : "příbuzné disciplíny (geologie)",
        "en" : "related disciplines (geology)",
        "de" : "verwandte Disziplinen (e) (Geologie)"
      },
      "categoryType" : "OTHER",
      "url" : "4-hranicni-obory-a-pridruzene-obory/pribuzne-obory/vedy-o-zemi/geologie/pribuzne-discipliny-geologie",
      "leaf" : false,
      "parent" : {
        "id" : "913",
        "name" : {
          "cz" : "geologie",
          "en" : "geology",
          "de" : "Geologie (e)"
        },
        "categoryType" : "OTHER",
        "url" : "4-hranicni-obory-a-pridruzene-obory/pribuzne-obory/vedy-o-zemi/geologie",
        "leaf" : false,
        "parent" : {
          "id" : "850",
          "name" : {
            "cz" : "vědy o Zemi",
            "en" : "Earth sciences",
            "de" : "Geowissenschaft (e)"
          },
          "categoryType" : "OTHER",
          "url" : "4-hranicni-obory-a-pridruzene-obory/pribuzne-obory/vedy-o-zemi",
          "leaf" : false,
          "parent" : {
            "id" : "352",
            "name" : {
              "cz" : "příbuzné obory",
              "en" : "Related disciplines",
              "de" : "Nebenfächer (e)"
            },
            "categoryType" : "OTHER",
            "url" : "4-hranicni-obory-a-pridruzene-obory/pribuzne-obory",
            "leaf" : false,
            "parent" : {
              "id" : "288",
              "name" : {
                "cz" : "4) Hraniční obory a přidružené obory",
                "en" : "4) Cross-bordering and related disciplines",
                "de" : "4) Grenzfächer und Nebenfächer"
              },
              "categoryType" : "OTHER",
              "url" : "4-hranicni-obory-a-pridruzene-obory",
              "leaf" : false,
              "children" : null,
              "descriptions" : null
            },
            "children" : null,
            "descriptions" : null
          },
          "children" : null,
          "descriptions" : null
        },
        "children" : null,
        "descriptions" : null
      },
      "children" : null,
      "descriptions" : null
    },
    "children" : null,
    "descriptions" : null
  },
  "children" : null,
  "descriptions" : null
}
motyc commented 3 years ago

@stanislavvelcev Díky za příklad. Osobně to vidím takto: 1) Zobrazoval bych pouze pURL přímého rodiče a přímých potomků. Popisné údaje pro rodiče/potomky bych do samotného hesla nevkládal. 2) Chybí mi tam naopak všechen metadatový obsah u samotného hesla: image

3) Do exportu bych přidával i to datum poslední aktualizace. 4) Export je řešený asi pomocí JS a není tedy jasné, zda lze přes nějakou URL vyvolat. Jak jsme psali výše, bylo by potřeba, aby to bylo možné a aby ideálně adresa pro export JSON měla stejný základ jako pURL (např. http://arub.inqool.cz/cz/id/949/json, http://arub.inqool.cz/cz/id/949:json, nebo jakkoli obdobně).

stanislavvelcev commented 3 years ago

@VladoKundrat Export hesla s description jsme ještě nevyzkoušeli, nicméně o víkendu při úpravě datových souborů mě napadlo, že bibliografické odkazy by bylo třeba exportovat celé (v podobě, v jaké se zobrazují uživateli) a nikoli tak, jak jsou zadané v datových souborech. Protože pak by uživatel potřeboval exportovat ještě datový soubor s bibliografií. Šlo by to zařídit?

VladoKundrat commented 3 years ago

Dobrý deň,

motyc commented 3 years ago

Za mne v pořádku, ale prosím ještě o shlédnutí @stanislavvelcev

stanislavvelcev commented 3 years ago

Dobrý den, co se týče obsahu exportního souboru u jednotlivých hesel, tak si myslím, že je splněno. Je tam vše, na čem jsme se domlouvali.

Problém je ale v exportu celé databáze, který by měl poskytnout nazpět hesla v importním formátu, což se ale neděje. Hesla z kompletního exportu mají formát z exportu jednotlivých souborů, takže tam třeba chybí např. řádky s nulovou hodnotou nebo jsou tam doplněné citace/názvy odstavců v jednotlivých lokalizacích (které jsou OK u exportu jednotlivých hesel, aby to měl uživatel kompletní, ale ne zde). Např.: Importní formát

{
            "id": "151",
            "name": {
              "cz": "fosfátová analýza",
              "en": "phosphate analysis",
              "de": "Phosphatanalyse (e)"
            },
            "date_range": {
              "from": null,
              "to": null
            },
            "date_accurate": null,
            "description": [
              {
                "title": {
                  "text": "cz_eq_title"
                },
                "content": [
                  {
                    "text": "fosfátová analýza",
                    "quotes": [
                      {
                        "id": "",
                        "title_page": "",
                        "date": "",
                        "location": {
                          "page": "",
                          "url": ""
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "title": {
                  "text": "en_eq_title"
                },
                "content": [
                  {
                    "text": "phosphate analysis",
                    "quotes": [
                      {
                        "id": "Onl_0006",
                        "title_page": "Phosphate Analysis, 2020.",
                        "date": "[cit. 2020-09-15].",
                        "location": {
                          "page": "",
                          "url": " http://archwort.dainst.org/en/term/4149"
                        }
                      }
                    ]
                  },
                  {
                    "text": "phosphate survey",
                    "quotes": [
                      {
                        "id": "Onl_0009",
                        "title_page": "Phosphate Survey, 2020.",
                        "date": "[cit. 2020-07-01].",
                        "location": {
                          "page": "",
                          "url": "http://purl.org/heritagedata/schemes/agl_et/concepts/145152"
                        }
                      }
                    ]
                  },
                  {
                    "text": "phosphate analysis",
                    "quotes": [
                      {
                        "id": "Lit_0002",
                        "title_page": "",
                        "date": "",
                        "location": {
                          "page": "s. 8.",
                          "url": ""
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "title": {
                  "text": "de_eq_title"
                },
                "content": [
                  {
                    "text": "Phosphatanalyse (e)",
                    "quotes": [
                      {
                        "id": "Lit_0003",
                        "title_page": "",
                        "date": "",
                        "location": {
                          "page": "s. 146",
                          "url": ""
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "title": {
                  "text": "comment_title"
                },
                "content": [
                  {
                    "text": {
                      "cz": "chemická metoda využívaná při archeologické prospekci. Sleduje množství fosforečnanu vápenatého, produktu rozkladu organických hmot v jámách, chatách, příkopech, hrobech, apod. Vzorky půd pro fosfátové analýzy se většinou odebírají speciálními vrtáky. Fosfor z půdy lze extrahovat různými způsoby a rovněž k jeho stanovení v extraktu lze užít řadu metod klasické chemické analýzy i postupu fyzikálně chemických. To vedlo k řadě modifikací fosfátové analýzy, z nichž každá má své přednosti a pochopitelně i nedostatky či omezení. Rozdíly v dosazených výsledcích lze hledat zejména v druhu extrakčních činidel, jimiž jsou fosfáty uvolňovány z půdy, v půdě samé a někdy i ve způsobu stanoveni vyextrahovaných fosfátů. Z extrakčních činidel je ve fosfátové prospekci často užívána 20% kyselina chlorovodíková a také kyselina dusičná. Dalším používaným činidlem může být kyselina octová s 5% koncentrací. Pro stanovení fosforu mohou být v nejjednodušším případě použity barevné reakce na filtračním papíru (známé jako test Gundlachův). V dřívějších dobách bylo přesné vyhodnocení obsahu fosfátů prováděno gravimetricky srážením fosfomolybdenanu molybdenanem amonným, separací a zvážením utvořené sraženiny (metoda příliš časově náročná - nevhodná pro velké množství vzorku, zbytečně velká přesnost). Z moderních fyzikálně chemických metod stanovení se využívá reakce fosforečnanů s molybdenanem amonným a chloridem cínatým (nebo kyselinou askorbovou) za vzniku molybdenové modře, nebo se vytváří žlutě zbarveny komplex s molybdenanem amonným a vanadičnanem amonným. Zabarvené roztoky se potom fotometrují při určitých vlnových délkách světla, které odpovídají jejich maximální absorpci. Lze je přímo stanovit i spektrometrií atomovou emisní s indukčně vázaným plazmatem (ICPAES) společně s dalšími prvky. Zajímavý způsob stanoveni fosfátů (např. v moči a při hnojařském pokusnictví) je titrace roztokem dusičnanu uranylu za horka na tzv. indikátor, kyselinu karmínovou, známou též jako košenila.",
                      "en": null,
                      "de": null
                    },
                    "quotes": {
                      "cz": [
                        {
                          "id": "Lit_0001",
                          "title_page": "",
                          "date": "",
                          "location": {
                            "page": "s. 22-23.",
                            "url": ""
                          }
                        }
                      ],
                      "en": null,
                      "de": null
                    }
                  }
                ]
              }
            ]
          }

Heslo z kompletního exportu:

{
              "id": "151",
              "name": {
                "cs": "fosfátová analýza",
                "en": "phosphate analysis",
                "de": "Phosphatanalyse (e)"
              },
              "url": "http://teater.aiscr.cz/id/151",
              "descriptions": [
                {
                  "title": {
                    "cz": "České ekvivalenty",
                    "en": "Czech equivalents",
                    "de": "Tschechische Äquivalente"
                  },
                  "contents": [
                    {
                      "text": "fosfátová analýza"
                    }
                  ]
                },
                {
                  "title": {
                    "cz": "Anglické ekvivalenty",
                    "en": "English equivalents",
                    "de": "Englische Äquivalente"
                  },
                  "contents": [
                    {
                      "text": "phosphate analysis",
                      "quotes": [
                        {
                          "title": "Phosphate Analysis, 2020.",
                          "date": "[cit. 2020-09-15].",
                          "locationUrl": " http://archwort.dainst.org/en/term/4149",
                          "source": {
                            "label": "*iDAI.vocab / Archwort* [online]. Berlin : German Archaeological Institute (DAI).",
                            "url": "https://archwort.dainst.org/de/vocab/"
                          }
                        }
                      ]
                    },
                    {
                      "text": "phosphate survey",
                      "quotes": [
                        {
                          "title": "Phosphate Survey, 2020.",
                          "date": "[cit. 2020-07-01].",
                          "locationUrl": "http://purl.org/heritagedata/schemes/agl_et/concepts/145152",
                          "source": {
                            "label": "*FISH Event Thesaurus* [online]. London: Collections Trust.",
                            "url": "http://purl.org/heritagedata/schemes/agl_et"
                          }
                        }
                      ]
                    },
                    {
                      "text": "phosphate analysis",
                      "quotes": [
                        {
                          "locationPage": "s. 8.",
                          "source": {
                            "label": "JOHN, Jan, Ondřej CHVOJKA a Tereza KRIŠTUFOVÁ, 2009. *Česko-anglicko-německý slovníček pro studenty archeologie*. Plzeň: Katedra antropologie, Fakulta filozofická, Západočeská univerzita v Plzni. ISBN 978-80-7043-843-5",
                            "url": "https://www.knihovny.cz/Record/vkol.SVK01-000949747"
                          }
                        }
                      ]
                    }
                  ]
                },
                {
                  "title": {
                    "cz": "Německé ekvivalenty",
                    "en": "German equivalents",
                    "de": "Deutsche Äquivalente"
                  },
                  "contents": [
                    {
                      "text": "Phosphatanalyse (e)",
                      "quotes": [
                        {
                          "locationPage": "s. 146",
                          "source": {
                            "label": "KOŠNAR, Lubomír, 2010. *Německo-český a česko-německý archeologický slovník*. Praha 2010. ISBN 978-80-246-1757-2",
                            "url": "https://www.knihovny.cz/Record/svkpk.PNA01-000522041"
                          }
                        }
                      ]
                    }
                  ]
                },
                {
                  "title": {
                    "cz": "Komentář",
                    "en": "Comment",
                    "de": "Kommentar"
                  },
                  "contents": [
                    {
                      "text": "chemická metoda využívaná při archeologické prospekci. Sleduje množství fosforečnanu vápenatého, produktu rozkladu organických hmot v jámách, chatách, příkopech, hrobech, apod. Vzorky půd pro fosfátové analýzy se většinou odebírají speciálními vrtáky. Fosfor z půdy lze extrahovat různými způsoby a rovněž k jeho stanovení v extraktu lze užít řadu metod klasické chemické analýzy i postupu fyzikálně chemických. To vedlo k řadě modifikací fosfátové analýzy, z nichž každá má své přednosti a pochopitelně i nedostatky či omezení. Rozdíly v dosazených výsledcích lze hledat zejména v druhu extrakčních činidel, jimiž jsou fosfáty uvolňovány z půdy, v půdě samé a někdy i ve způsobu stanoveni vyextrahovaných fosfátů. Z extrakčních činidel je ve fosfátové prospekci často užívána 20% kyselina chlorovodíková a také kyselina dusičná. Dalším používaným činidlem může být kyselina octová s 5% koncentrací. Pro stanovení fosforu mohou být v nejjednodušším případě použity barevné reakce na filtračním papíru (známé jako test Gundlachův). V dřívějších dobách bylo přesné vyhodnocení obsahu fosfátů prováděno gravimetricky srážením fosfomolybdenanu molybdenanem amonným, separací a zvážením utvořené sraženiny (metoda příliš časově náročná - nevhodná pro velké množství vzorku, zbytečně velká přesnost). Z moderních fyzikálně chemických metod stanovení se využívá reakce fosforečnanů s molybdenanem amonným a chloridem cínatým (nebo kyselinou askorbovou) za vzniku molybdenové modře, nebo se vytváří žlutě zbarveny komplex s molybdenanem amonným a vanadičnanem amonným. Zabarvené roztoky se potom fotometrují při určitých vlnových délkách světla, které odpovídají jejich maximální absorpci. Lze je přímo stanovit i spektrometrií atomovou emisní s indukčně vázaným plazmatem (ICPAES) společně s dalšími prvky. Zajímavý způsob stanoveni fosfátů (např. v moči a při hnojařském pokusnictví) je titrace roztokem dusičnanu uranylu za horka na tzv. indikátor, kyselinu karmínovou, známou též jako košenila.",
                      "language": "CS",
                      "quotes": [
                        {
                          "locationPage": "s. 22-23.",
                          "source": {
                            "label": "HLOŽEK, Martin, 2008. *Encyklopedie moderních metod v archeologii: Archeometrie*. Praha: Nakladatelství Libri. ISBN 978-80-7277-230-8.",
                            "url": "https://www.knihovny.cz/Record/vkol.SVK01-000882560"
                          }
                        }
                      ]
                    }
                  ]
                }
              ]
            }
motyc commented 3 years ago

@stanislavvelcev Stando a nejsou to vlastně dvě odlišné funkce? Považuji ze svého pohledu za dobré, aby byl export jednotný a odpovídal si jak v případě exportu dílčích hesel, tak při exportu celku. Navíc export pro uživatele by měl již obsahovat přiřazené pURL atd. To, co popisuješ, je jistě praktické mít, ale nejde vlastně o jinou funkci pro administrátora?

stanislavvelcev commented 3 years ago

@motyc OK, máš pravdu. V tom případě jsou obě možnosti v pořádku. @VladoKundrat Export importního formátu z databáze se tedy bude řešit skriptem podobně jako import?