Spaces:
Sleeping
Sleeping
Commit
·
b31324c
0
Parent(s):
Duplicate from gianma/classificatoreEurovocTest
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +34 -0
- Example1.txt +200 -0
- Example2.txt +75 -0
- README.md +14 -0
- app.py +213 -0
- e_1.txt +1 -0
- e_2.txt +1 -0
- e_3.txt +1 -0
- e_4.txt +1 -0
- e_5.txt +1 -0
- libs/__init__.py +0 -0
- libs/eurovoc/EurovocTh.py +460 -0
- libs/eurovoc/__init__.py +0 -0
- libs/eurovoc/eurovoc_xml/desc_bg.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_bs.xml +4 -0
- libs/eurovoc/eurovoc_xml/desc_cs.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_da.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_de.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_el.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_en.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_es.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_et.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_fi.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_fr.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_ga.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_hr.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_hu.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_it.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_lt.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_lv.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_mk.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_mt.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_nl.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_no.xml +4 -0
- libs/eurovoc/eurovoc_xml/desc_pl.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_pt.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_ro.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_sk.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_sl.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_sq.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_sr.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_sv.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_thes.xml +0 -0
- libs/eurovoc/eurovoc_xml/desc_tr.xml +4 -0
- libs/eurovoc/eurovoc_xml/descripteur.dtd +41 -0
- libs/eurovoc/eurovoc_xml/descripteur_thesaurus.dtd +36 -0
- libs/eurovoc/eurovoc_xml/dom_bg.xml +4 -0
- libs/eurovoc/eurovoc_xml/dom_cs.xml +4 -0
- libs/eurovoc/eurovoc_xml/dom_da.xml +4 -0
- libs/eurovoc/eurovoc_xml/dom_de.xml +4 -0
.gitattributes
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
Example1.txt
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
9.3.2023
|
| 3 |
+
|
| 4 |
+
IT
|
| 5 |
+
|
| 6 |
+
Gazzetta ufficiale dell’Unione europea
|
| 7 |
+
|
| 8 |
+
L 71/37
|
| 9 |
+
|
| 10 |
+
Rettifica del regolamento (UE) 2022/123 del Parlamento europeo e del Consiglio, del 25 gennaio 2022, relativo a un ruolo rafforzato dell’Agenzia europea per i medicinali nella preparazione alle crisi e nella loro gestione in relazione ai medicinali e ai dispositivi medici
|
| 11 |
+
|
| 12 |
+
( Gazzetta ufficiale dell'Unione europea L 20 del 31 gennaio 2022 )
|
| 13 |
+
|
| 14 |
+
Pagina 11, articolo 1, paragrafo 1, lettera a):
|
| 15 |
+
|
| 16 |
+
anziché:
|
| 17 |
+
|
| 18 |
+
«a)
|
| 19 |
+
|
| 20 |
+
preparare, prevenire, coordinare e gestire l’impatto di emergenze di sanità pubblica sui medicinali e sui dispositivi medici e di eventi gravi sui medicinali e sui dispositivi medici a livello dell’Unione;»
|
| 21 |
+
|
| 22 |
+
leggasi:
|
| 23 |
+
|
| 24 |
+
«a)
|
| 25 |
+
|
| 26 |
+
preparare, prevenire, coordinare e gestire l’impatto di emergenze di sanità pubblica sui medicinali e sui dispositivi medici e di eventi gravi sui medicinali a livello dell’Unione;».
|
| 27 |
+
|
| 28 |
+
Pagina 14, articolo 4, paragrafo 2:
|
| 29 |
+
|
| 30 |
+
anziché:
|
| 31 |
+
|
| 32 |
+
«2. Per agevolare il monitoraggio di cui al paragrafo 1, le autorità nazionali competenti per i medicinali, agendo tramite i punti di contatto unici di cui all’articolo 3, paragrafo 6, o la piattaforma di cui all’articolo 13 («Piattaforma europea di monitoraggio delle carenze — European shortages monitoring platform — ESMP»), una volta pienamente operativa, riferiscono tempestivamente all’Agenzia […].»
|
| 33 |
+
|
| 34 |
+
leggasi:
|
| 35 |
+
|
| 36 |
+
«2. Per agevolare il monitoraggio di cui al paragrafo 1, le autorità nazionali competenti per i medicinali, agendo tramite i punti di contatto unici di cui all’articolo 3, paragrafo 6, secondo comma, o la piattaforma di cui all’articolo 13 (“Piattaforma europea di monitoraggio delle carenze — European shortages monitoring platform — ESMP”), una volta pienamente operativa, riferiscono tempestivamente all’Agenzia […].».
|
| 37 |
+
|
| 38 |
+
Pagina 16, articolo 8, paragrafo 1:
|
| 39 |
+
|
| 40 |
+
anziché:
|
| 41 |
+
|
| 42 |
+
«1. Per il periodo in cui è in corso un’emergenza di sanità pubblica o dopo il riconoscimento di un evento grave di cui all’articolo 4, paragrafo 3, fino a quando è confermato che è stato fatto fronte all’evento grave sufficientemente ai sensi dell’articolo 4, paragrafo 4, l’MSSG comunica periodicamente i risultati del monitoraggio di cui all’articolo 7 alla Commissione e ai punti di contatto unici di cui all’articolo 3, paragrafo 6, e segnala in particolare eventuali carenze effettive o potenziali dei medicinali inclusi negli elenchi dei medicinali critici o qualsiasi evento suscettibile di comportare il verificarsi di un evento grave.»
|
| 43 |
+
|
| 44 |
+
leggasi:
|
| 45 |
+
|
| 46 |
+
«1. Per il periodo in cui è in corso un’emergenza di sanità pubblica o dopo il riconoscimento di un evento grave di cui all’articolo 4, paragrafo 3, fino a quando è confermato che è stato fatto fronte all’evento grave sufficientemente ai sensi dell’articolo 4, paragrafo 4, l’MSSG comunica periodicamente i risultati del monitoraggio di cui all’articolo 7 alla Commissione e ai punti di contatto unici di cui all’articolo 3, paragrafo 6, secondo comma, e segnala in particolare eventuali carenze effettive o potenziali dei medicinali inclusi negli elenchi dei medicinali critici o qualsiasi evento suscettibile di comportare il verificarsi di un evento grave.».
|
| 47 |
+
|
| 48 |
+
Pagina 16, articolo 8, paragrafo 2:
|
| 49 |
+
|
| 50 |
+
anziché:
|
| 51 |
+
|
| 52 |
+
«2. Su richiesta della Commissione o di uno o più punti di contatto unici di cui all’articolo 3, paragrafo 6, l’MSSG fornisce dati aggregati e previsioni della domanda a sostegno dei suoi risultati e delle sue conclusioni. A tale riguardo, l’MSSG: […]»
|
| 53 |
+
|
| 54 |
+
leggasi:
|
| 55 |
+
|
| 56 |
+
«2. Su richiesta della Commissione o di uno o più punti di contatto unici di cui all’articolo 3, paragrafo 6, secondo comma, l’MSSG fornisce dati aggregati e previsioni della domanda a sostegno dei suoi risultati e delle sue conclusioni. A tale riguardo, l’MSSG: […]».
|
| 57 |
+
|
| 58 |
+
Pagina 18, articolo 9, paragrafo 2, lettera d):
|
| 59 |
+
|
| 60 |
+
anziché:
|
| 61 |
+
|
| 62 |
+
«d)
|
| 63 |
+
|
| 64 |
+
chiede informazioni sui medicinali negli elenchi dei medicinali critici al punto di contatto unico di cui all’articolo 3, paragrafo 6, sulla base delle serie di informazioni di cui all’articolo 6, paragrafo 4, e fissa un termine per la trasmissione di dette informazioni qualora non siano disponibili sull’ESMP.»
|
| 65 |
+
|
| 66 |
+
leggasi:
|
| 67 |
+
|
| 68 |
+
«d)
|
| 69 |
+
|
| 70 |
+
chiede informazioni sui medicinali negli elenchi dei medicinali critici ai punti di contatto unici di cui all’articolo 3, paragrafo 6, secondo comma, sulla base delle serie di informazioni di cui all’articolo 6, paragrafo 4, e fissa un termine per la trasmissione di dette informazioni qualora non siano disponibili sull’ESMP.».
|
| 71 |
+
|
| 72 |
+
Pagina 18, articolo 10, paragrafo 2, secondo comma:
|
| 73 |
+
|
| 74 |
+
anziché:
|
| 75 |
+
|
| 76 |
+
«I titolari delle autorizzazioni all’immissione in commercio di cui al primo comma del presente paragrafo trasmettono le informazioni richieste entro il termine fissato dall’Agenzia, tramite i punti di contatto unici di cui all’articolo 9, paragrafo 2, lettera b), utilizzando i metodi e i sistemi di monitoraggio e comunicazione stabiliti a norma dell’articolo 9, paragrafo 1, lettere b) e c), rispettivamente. Detti titolari delle autorizzazioni all’immissione in commercio forniscono, se necessario, aggiornamenti.»
|
| 77 |
+
|
| 78 |
+
leggasi:
|
| 79 |
+
|
| 80 |
+
«I titolari delle autorizzazioni all’immissione in commercio di cui al primo comma del presente paragrafo trasmettono le informazioni richieste entro il termine fissato dall’Agenzia, tramite i punti di contatto unici di cui all’articolo 9, paragrafo 2, lettera a), utilizzando i metodi e i sistemi di monitoraggio e comunicazione stabiliti a norma dell’articolo 9, paragrafo 1, lettere b) e c), rispettivamente. Detti titolari delle autorizzazioni all’immissione in commercio forniscono, se necessario, aggiornamenti.».
|
| 81 |
+
|
| 82 |
+
Pagina 19, articolo 11, paragrafo 1, lettera a):
|
| 83 |
+
|
| 84 |
+
anziché:
|
| 85 |
+
|
| 86 |
+
«a)
|
| 87 |
+
|
| 88 |
+
presentare la serie di informazioni di cui all’articolo 6, paragrafo 4, compresi i dati disponibili e stimati sul volume della domanda e sulle previsioni della domanda, tramite il punto di contatto unico di cui all’articolo 3, paragrafo 6, e servendosi dei metodi e dei sistemi di comunicazione stabiliti a norma dell’articolo 9, paragrafo 1, lettere b) e c), rispettivamente;»
|
| 89 |
+
|
| 90 |
+
leggasi:
|
| 91 |
+
|
| 92 |
+
«a)
|
| 93 |
+
|
| 94 |
+
presentare la serie di informazioni di cui all’articolo 9, paragrafo 2, lettera d), compresi i dati disponibili e stimati sul volume della domanda e sulle previsioni della domanda, tramite il punto di contatto unico di cui all’articolo 3, paragrafo 6, secondo comma, servendosi dei metodi e dei sistemi di comunicazione stabiliti a norma dell’articolo 9, paragrafo 1, lettere b) e c), rispettivamente;».
|
| 95 |
+
|
| 96 |
+
Pagina 20, articolo 11, paragrafo 3:
|
| 97 |
+
|
| 98 |
+
anziché:
|
| 99 |
+
|
| 100 |
+
«3. Qualora gli Stati membri dispongano di informazioni in aggiunta a quelle da fornire ai sensi dei paragrafi 1 e 2 del presente articolo sui volumi di vendita e sui volumi delle prescrizioni dei medicinali, che comprovano l’esistenza di una carenza effettiva o potenziale di un medicinale incluso negli elenchi dei medicinali critici, compresi i dati di cui all’articolo 23 bis, terzo comma, della direttiva 2001/83/CE, forniscono immediatamente tali informazioni all’MSSG tramite i loro rispettivi punti di contatto unici di cui all’articolo 3, paragrafo 6, del presente regolamento.»
|
| 101 |
+
|
| 102 |
+
leggasi:
|
| 103 |
+
|
| 104 |
+
«3. Qualora gli Stati membri dispongano di informazioni in aggiunta a quelle da fornire ai sensi dei paragrafi 1 e 2 del presente articolo sui volumi di vendita e sui volumi delle prescrizioni dei medicinali che comprovano l’esistenza di una carenza effettiva o potenziale di un medicinale incluso negli elenchi dei medicinali critici, compresi i dati di cui all’articolo 23 bis, terzo comma, della direttiva 2001/83/CE, forniscono immediatamente tali informazioni all’MSSG tramite i loro rispettivi punti di contatto unici di cui all’articolo 3, paragrafo 6, secondo comma, del presente regolamento.».
|
| 105 |
+
|
| 106 |
+
Pagina 21, articolo 13, paragrafo 3, lettera b):
|
| 107 |
+
|
| 108 |
+
anziché:
|
| 109 |
+
|
| 110 |
+
«b)
|
| 111 |
+
|
| 112 |
+
gli Stati membri utilizzano l’ESMP per comunicare le informazioni relative ai medicinali inclusi negli elenchi dei medicinali critici all’Agenzia, tramite i punti di contatto unici di cui all’articolo 9, paragrafo 1, lettera d), conformemente agli articoli 9 e 11.»
|
| 113 |
+
|
| 114 |
+
leggasi:
|
| 115 |
+
|
| 116 |
+
«b)
|
| 117 |
+
|
| 118 |
+
gli Stati membri utilizzano l’ESMP per comunicare le informazioni relative ai medicinali inclusi negli elenchi dei medicinali critici all’Agenzia, tramite i punti di contatto unici di cui all’articolo 3, paragrafo 6, secondo comma, conformemente agli articoli 9 e 11.».
|
| 119 |
+
|
| 120 |
+
Pagina 21, articolo 13, paragrafo 4, lettera b):
|
| 121 |
+
|
| 122 |
+
anziché:
|
| 123 |
+
|
| 124 |
+
«b)
|
| 125 |
+
|
| 126 |
+
gli Stati membri utilizzano l’ESMP per informare l’Agenzia in merito alle carenze di medicinali suscettibili di comportare il verificarsi di un’emergenza di sanità pubblica o di un evento grave a norma dell’articolo 4, paragrafo 2, tramite i punti di contatto unici di cui all’articolo 9, paragrafo 1, lettera e).»
|
| 127 |
+
|
| 128 |
+
leggasi:
|
| 129 |
+
|
| 130 |
+
«b)
|
| 131 |
+
|
| 132 |
+
gli Stati membri utilizzano l’ESMP per informare l’Agenzia in merito alle carenze di medicinali suscettibili di comportare il verificarsi di un’emergenza di sanità pubblica o di un evento grave a norma dell’articolo 4, paragrafo 2, tramite i punti di contatto unici di cui all’articolo 3, paragrafo 6, secondo comma.».
|
| 133 |
+
|
| 134 |
+
Pagina 28, articolo 22, paragrafo 2:
|
| 135 |
+
|
| 136 |
+
anziché:
|
| 137 |
+
|
| 138 |
+
«2. Ai fini dell’articolo 25, paragrafo 2, l’MDSSG adotta e rende accessibile al pubblico la serie di informazioni di cui all’articolo 25, paragrafo 2, lettere b) e c), che è necessaria per monitorare l’offerta e la domanda dei dispositivi medici inclusi nell’elenco dei dispositivi critici per l’emergenza di sanità pubblica e informa il gruppo di lavoro di cui all’articolo 21, paragrafo 5, di tale serie di informazioni.»
|
| 139 |
+
|
| 140 |
+
leggasi:
|
| 141 |
+
|
| 142 |
+
«2. Ai fini dell’articolo 25, paragrafo 2, l’MDSSG adotta e rende accessibile al pubblico la serie di informazioni di cui all’articolo 25, paragrafo 2, lettere c) e d), che è necessaria per monitorare l’offerta e la domanda dei dispositivi medici inclusi nell’elenco dei dispositivi critici per l’emergenza di sanità pubblica e informa il gruppo di lavoro di cui all’articolo 21, paragrafo 5, di tale serie di informazioni.».
|
| 143 |
+
|
| 144 |
+
Pagina 28, articolo 24, paragrafo 1:
|
| 145 |
+
|
| 146 |
+
anziché:
|
| 147 |
+
|
| 148 |
+
«1. Per il periodo in cui è in corso l’emergenza di sanità pubblica, l’MDSSG comunica periodicamente i risultati del monitoraggio di cui all’articolo 23 alla Commissione e ai punti di contatto unici di cui all’articolo 25, paragrafo 2, lettera a), segnalando in particolare eventuali carenze effettive o potenziali dei dispositivi medici inclusi nell’elenco dei dispositivi critici per l’emergenza di sanità pubblica.»
|
| 149 |
+
|
| 150 |
+
leggasi:
|
| 151 |
+
|
| 152 |
+
«1. Per il periodo in cui è in corso l’emergenza di sanità pubblica, l’MDSSG comunica periodicamente i risultati del monitoraggio di cui all’articolo 23 alla Commissione e ai punti di contatto unici di cui all’articolo 21, paragrafo 5, secondo comma, segnalando in particolare eventuali carenze effettive o potenziali dei dispositivi medici inclusi nell’elenco dei dispositivi critici per l’emergenza di sanità pubblica.».
|
| 153 |
+
|
| 154 |
+
Pagina 29, articolo 24, paragrafo 5:
|
| 155 |
+
|
| 156 |
+
anziché:
|
| 157 |
+
|
| 158 |
+
«5. Se richiesto dalla Commissione, l’MDSSG può provvedere al coordinamento delle misure adottate dalle autorità nazionali competenti per i dispositivi medici, dai fabbricanti di dispositivi medici, dagli organismi notificati e da altri soggetti, ove opportuno, per prevenire o mitigare carenze effettive o potenziali di dispositivi medici nel contesto di un’emergenza di sanità pubblica o di un evento grave.»
|
| 159 |
+
|
| 160 |
+
leggasi:
|
| 161 |
+
|
| 162 |
+
«5. Se richiesto dalla Commissione, l’MDSSG può provvedere al coordinamento delle misure adottate dalle autorità nazionali competenti per i dispositivi medici, dai fabbricanti di dispositivi medici, dagli organismi notificati e da altri soggetti, ove opportuno, per prevenire o mitigare carenze effettive o potenziali di dispositivi medici nel contesto di un’emergenza di sanità pubblica.».
|
| 163 |
+
|
| 164 |
+
Pagina 31, articolo 27, paragrafo 1, lettera a):
|
| 165 |
+
|
| 166 |
+
anziché:
|
| 167 |
+
|
| 168 |
+
«a)
|
| 169 |
+
|
| 170 |
+
presentare la serie di informazioni di cui all’articolo 22, paragrafo 2, comprese le informazioni disponibili sui fabbisogni in relazione ai dispositivi medici inclusi nell’elenco dei dispositivi critici per l’emergenza di sanità pubblica, e i dati disponibili e stimati su volume della domanda e previsioni di domanda per tali dispositivi medici, tramite il rispettivo punto di contatto unico di cui all’articolo 25, paragrafo 2, lettera a), servendosi dei metodi e dei sistemi di monitoraggio e comunicazione stabiliti a norma dell’articolo 25, paragrafo 1, lettera b);»
|
| 171 |
+
|
| 172 |
+
leggasi:
|
| 173 |
+
|
| 174 |
+
«a)
|
| 175 |
+
|
| 176 |
+
presentare la serie di informazioni di cui all’articolo 25, paragrafo 2, lettera d), comprese le informazioni disponibili sui fabbisogni in relazione ai dispositivi medici inclusi nell’elenco dei dispositivi critici per l’emergenza di sanità pubblica, e i dati disponibili e stimati su volume della domanda e previsioni di domanda per tali dispositivi medici, tramite il rispettivo punto di contatto unico di cui all’articolo 21, paragrafo 5, secondo comma, servendosi dei metodi e dei sistemi di monitoraggio e comunicazione stabiliti a norma dell’articolo 25, paragrafo 1, lettera b);».
|
| 177 |
+
|
| 178 |
+
Pagina 32, articolo 27, paragrafo 3:
|
| 179 |
+
|
| 180 |
+
anziché:
|
| 181 |
+
|
| 182 |
+
«3. Se dispongono di informazioni in aggiunta a quelle da fornire ai sensi dei paragrafi 1 e 2 del presente articolo, che comprovano l’esistenza di una carenza effettiva o potenziale di dispositivi medici, gli Stati membri trasmettono immediatamente tali informazioni all’MDSSG tramite i rispettivi punti di contatto unici di cui all’articolo 25, paragrafo 2, lettera a).»
|
| 183 |
+
|
| 184 |
+
leggasi:
|
| 185 |
+
|
| 186 |
+
«3. Se dispongono di informazioni in aggiunta a quelle da fornire ai sensi dei paragrafi 1 e 2 del presente articolo, che comprovano l’esistenza di una carenza effettiva o potenziale di dispositivi medici, gli Stati membri trasmettono immediatamente tali informazioni all’MDSSG tramite i rispettivi punti di contatto unici di cui all’articolo 21, paragrafo 5, secondo comma.».
|
| 187 |
+
|
| 188 |
+
Pagina 32, articolo 27, paragrafo 4, lettera b):
|
| 189 |
+
|
| 190 |
+
anziché:
|
| 191 |
+
|
| 192 |
+
«b)
|
| 193 |
+
|
| 194 |
+
tengono conto delle raccomandazioni di cui all’articolo 24, paragrafo 3, e degli orientamenti di cui all’articolo 28, lettera b), e coordinano le loro azioni relative alle azioni adottate a livello dell’Unione a norma dell’articolo 12, lettera a);»
|
| 195 |
+
|
| 196 |
+
leggasi:
|
| 197 |
+
|
| 198 |
+
«b)
|
| 199 |
+
|
| 200 |
+
tengono conto delle raccomandazioni di cui all’articolo 24, paragrafo 3, e degli orientamenti di cui all’articolo 28, lettera b), e coordinano le loro azioni relative alle azioni adottate a livello dell’Unione a norma dell’articolo 28, lettera a);».
|
Example2.txt
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
25.5.2023
|
| 2 |
+
|
| 3 |
+
IT
|
| 4 |
+
|
| 5 |
+
Gazzetta ufficiale dell’Unione europea
|
| 6 |
+
|
| 7 |
+
L 137/21
|
| 8 |
+
|
| 9 |
+
DECISIONE (UE) 2023/1022 DEL PARLAMENTO EUROPEO E DEL CONSIGLIO
|
| 10 |
+
|
| 11 |
+
del 10 maggio 2023
|
| 12 |
+
|
| 13 |
+
relativa alla mobilitazione del Fondo europeo di adeguamento alla globalizzazione per i lavoratori espulsi dal lavoro a seguito di una domanda presentata dalla Spagna — EGF/2022/003 ES/Alu Ibérica
|
| 14 |
+
|
| 15 |
+
IL PARLAMENTO EUROPEO E IL CONSIGLIO DELL’UNIONE EUROPEA,
|
| 16 |
+
|
| 17 |
+
visto il trattato sul funzionamento dell’Unione europea,
|
| 18 |
+
|
| 19 |
+
visto il regolamento (UE) 2021/691 del Parlamento europeo e del Consiglio, del 28 aprile 2021, sul Fondo europeo di adeguamento alla globalizzazione per i lavoratori espulsi dal lavoro (FEG) e che abroga il regolamento (UE) n. 1309/2013 (1), in particolare l’articolo 15, paragrafo 1, primo comma,
|
| 20 |
+
|
| 21 |
+
visto l’accordo interistituzionale, del 16 dicembre 2020, tra il Parlamento europeo, il Consiglio dell’Unione europea e la Commissione europea sulla disciplina di bilancio, sulla cooperazione in materia di bilancio e sulla sana gestione finanziaria, nonché su nuove risorse proprie, compresa una tabella di marcia verso l’introduzione di nuove risorse proprie (2), in particolare il punto 9,
|
| 22 |
+
|
| 23 |
+
vista la proposta della Commissione europea,
|
| 24 |
+
|
| 25 |
+
considerando quanto segue:
|
| 26 |
+
|
| 27 |
+
(1)
|
| 28 |
+
|
| 29 |
+
Il Fondo europeo di adeguamento alla globalizzazione per i lavoratori espulsi dal lavoro (FEG) mira a dimostrare solidarietà e promuovere un’occupazione dignitosa e sostenibile nell’Unione offrendo assistenza ai lavoratori collocati in esubero e ai lavoratori autonomi la cui attività sia cessata in caso di eventi di ristrutturazione significativi e sostenendoli affinché ritornino quanto prima a un’occupazione dignitosa e sostenibile.
|
| 30 |
+
|
| 31 |
+
(2)
|
| 32 |
+
|
| 33 |
+
Il FEG non deve superare un importo annuo massimo di 186 milioni di EUR (a prezzi 2018), come disposto dall’articolo 8 del regolamento (UE, Euratom) 2020/2093 del Consiglio (3).
|
| 34 |
+
|
| 35 |
+
(3)
|
| 36 |
+
|
| 37 |
+
Il 30 novembre 2022 la Spagna ha presentato una domanda di mobilitazione del FEG in relazione a casi di espulsione dal lavoro nell’impresa Alu Ibérica LC S.L. in Spagna. Tale domanda è stata integrata con ulteriori informazioni secondo quanto previsto all’articolo 8, paragrafo 5, del regolamento (UE) 2021/691. La domanda è conforme alle condizioni per la concessione di un contributo finanziario a valere sul FEG, come disposto all’articolo 13 del regolamento (UE) 2021/691.
|
| 38 |
+
|
| 39 |
+
(4)
|
| 40 |
+
|
| 41 |
+
È pertanto opportuno procedere alla mobilitazione del FEG per erogare un contributo finanziario di 1 275 000 EUR in relazione alla domanda presentata dalla Spagna.
|
| 42 |
+
|
| 43 |
+
(5)
|
| 44 |
+
|
| 45 |
+
Al fine di ridurre al minimo i tempi di mobilitazione del FEG, è opportuno che la presente decisione si applichi a decorrere dalla data della sua adozione,
|
| 46 |
+
|
| 47 |
+
HANNO ADOTTATO LA PRESENTE DECISIONE:
|
| 48 |
+
|
| 49 |
+
Articolo 1
|
| 50 |
+
|
| 51 |
+
Nel quadro del bilancio generale dell’Unione per l’esercizio 2023, il Fondo europeo di adeguamento alla globalizzazione per i lavoratori espulsi dal lavoro è mobilitato per erogare l’importo di 1 275 000 EUR in stanziamenti di impegno e di pagamento.
|
| 52 |
+
|
| 53 |
+
Articolo 2
|
| 54 |
+
|
| 55 |
+
La presente decisione entra in vigore il giorno della pubblicazione nella Gazzetta ufficiale dell’Unione europea. Essa si applica a decorrere dal 10 maggio 2023.
|
| 56 |
+
|
| 57 |
+
Fatto a Strasburgo, il 10 maggio 2023.
|
| 58 |
+
|
| 59 |
+
Per il Parlamento europeo
|
| 60 |
+
|
| 61 |
+
La presidente
|
| 62 |
+
|
| 63 |
+
R. METSOLA
|
| 64 |
+
|
| 65 |
+
Per il Consiglio
|
| 66 |
+
|
| 67 |
+
Il presidente
|
| 68 |
+
|
| 69 |
+
J. ROSWALL
|
| 70 |
+
|
| 71 |
+
(1) GU L 153 del 3.5.2021, pag. 48.
|
| 72 |
+
|
| 73 |
+
(2) GU L 433 I del 22.12.2020, pag. 28.
|
| 74 |
+
|
| 75 |
+
(3) Regolamento (UE, Euratom) 2020/2093 del Consiglio, del 17 dicembre 2020, che stabilisce il quadro finanziario pluriennale per il periodo 2021-2027 (GU L 433 I del 22.12.2020, pag. 11).
|
README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: TestModel
|
| 3 |
+
emoji: 📄🌍
|
| 4 |
+
colorFrom: yellow
|
| 5 |
+
colorTo: green
|
| 6 |
+
sdk: gradio
|
| 7 |
+
sdk_version: 3.32.0
|
| 8 |
+
app_file: app.py
|
| 9 |
+
pinned: false
|
| 10 |
+
license: apache-2.0
|
| 11 |
+
duplicated_from: gianma/classificatoreEurovocTest
|
| 12 |
+
---
|
| 13 |
+
|
| 14 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
app.py
ADDED
|
@@ -0,0 +1,213 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
from os import environ
|
| 3 |
+
from transformers import pipeline, AutoModelForSequenceClassification
|
| 4 |
+
from libs.eurovoc.EurovocTh import EurovocTh
|
| 5 |
+
|
| 6 |
+
api_key = environ.get("api_key")
|
| 7 |
+
|
| 8 |
+
def app(input, filter_strategy, relevence_threshold, k, length_management_strategy, token_overlap, results_merge_stategy, drop_last):
|
| 9 |
+
|
| 10 |
+
th = EurovocTh()
|
| 11 |
+
|
| 12 |
+
domain_classifier_pipeline = pipeline(model="gianma/classifierEUtopLevelLongerTrain", tokenizer="gianma/classifierEUtopLevelLongerTrain", use_auth_token=api_key)
|
| 13 |
+
length_limit = domain_classifier_pipeline.tokenizer.model_max_length
|
| 14 |
+
|
| 15 |
+
eu_th_classifier_pipeline = pipeline(model="gianma/classifierEUtopLevelLongerTrain", tokenizer='gianma/classifierEUtopLevelLongerTrain', use_auth_token=api_key)
|
| 16 |
+
length_limit = eu_th_classifier_pipeline.tokenizer.model_max_length
|
| 17 |
+
|
| 18 |
+
kwargs = {'padding':True,'truncation':True,'max_length':length_limit}
|
| 19 |
+
|
| 20 |
+
kwargs['top_k'] = domain_classifier_pipeline.model.num_labels
|
| 21 |
+
|
| 22 |
+
if length_management_strategy=='solo inizio':
|
| 23 |
+
res = domain_classifier_pipeline(input, **kwargs)
|
| 24 |
+
res = parse_results(res) # convert to expected format for gradio interface
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
elif length_management_strategy=='intero documento':
|
| 30 |
+
res = execute_pipeline_su_chunks(domain_classifier_pipeline, input, length_limit,drop_last = drop_last, token_overlap=token_overlap, merge_strategy =results_merge_stategy ,pipeline_kwargs=kwargs)
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
if filter_strategy == 'soglia di confidenza':
|
| 34 |
+
res = {k:v for k,v in res.items() if v >= relevence_threshold}
|
| 35 |
+
elif filter_strategy == 'top k':
|
| 36 |
+
rev_res = sorted([(v,k) for k,v in res.items()], reverse=True)
|
| 37 |
+
res = {k:v for (v,k) in rev_res[:k] }
|
| 38 |
+
|
| 39 |
+
# label fullname
|
| 40 |
+
res = {f'{k} - {th.get_label(k)}':v for k,v in res.items()}
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
return res
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
def execute_pipeline_su_chunks(pipeline, input_string, max_length, drop_last = False, token_overlap=0, merge_strategy ='avg' ,pipeline_kwargs={}):
|
| 47 |
+
tokens = pipeline.tokenizer.tokenize(input_string)
|
| 48 |
+
results = {}
|
| 49 |
+
|
| 50 |
+
overlap_len = int(max_length * token_overlap)
|
| 51 |
+
shift_len = max_length - overlap_len
|
| 52 |
+
|
| 53 |
+
start = 0
|
| 54 |
+
end = max_length
|
| 55 |
+
|
| 56 |
+
iterations = 0
|
| 57 |
+
|
| 58 |
+
while start < len(tokens):
|
| 59 |
+
chunk_tokens = tokens[start:end]
|
| 60 |
+
|
| 61 |
+
start += shift_len
|
| 62 |
+
end = start + max_length
|
| 63 |
+
|
| 64 |
+
is_last = not (start < len(tokens))
|
| 65 |
+
|
| 66 |
+
if not (is_last and drop_last):
|
| 67 |
+
chunk_string = pipeline.tokenizer.convert_tokens_to_string(chunk_tokens)
|
| 68 |
+
chunck_res = pipeline(chunk_string, **pipeline_kwargs)
|
| 69 |
+
chunck_res = parse_results(chunck_res) # convert to expected format for gradio interface
|
| 70 |
+
|
| 71 |
+
if results != {}:
|
| 72 |
+
new_results = {}
|
| 73 |
+
for k, v in results.items():
|
| 74 |
+
if merge_strategy == 'avg':
|
| 75 |
+
new_results[k] = v + chunck_res[k]
|
| 76 |
+
elif merge_strategy == 'max':
|
| 77 |
+
new_results[k] = max(v, chunck_res[k])
|
| 78 |
+
results = new_results
|
| 79 |
+
else:
|
| 80 |
+
results = chunck_res
|
| 81 |
+
|
| 82 |
+
iterations += 1
|
| 83 |
+
|
| 84 |
+
if merge_strategy == 'avg':
|
| 85 |
+
results = {k:v/iterations for k,v in results.items()}
|
| 86 |
+
|
| 87 |
+
return results
|
| 88 |
+
|
| 89 |
+
|
| 90 |
+
def parse_results(res):
|
| 91 |
+
return {el['label']:el['score'] for el in res} # convert to expected format for gradio interface
|
| 92 |
+
|
| 93 |
+
def load_example(evt: gr.SelectData):
|
| 94 |
+
|
| 95 |
+
txt = None
|
| 96 |
+
choice = evt.value
|
| 97 |
+
print(choice)
|
| 98 |
+
if choice == 'esempio 1':
|
| 99 |
+
with open('Example1.txt') as f:
|
| 100 |
+
txt = f.read()
|
| 101 |
+
elif choice == 'esempio 2':
|
| 102 |
+
with open('Example2.txt') as f:
|
| 103 |
+
txt = f.read()
|
| 104 |
+
else:
|
| 105 |
+
txt = 'no choice'
|
| 106 |
+
|
| 107 |
+
return txt
|
| 108 |
+
|
| 109 |
+
def load_example_from_list(l):
|
| 110 |
+
|
| 111 |
+
choice = l[0]
|
| 112 |
+
|
| 113 |
+
txt = ''
|
| 114 |
+
|
| 115 |
+
try:
|
| 116 |
+
fn = f'e_{choice}.txt'
|
| 117 |
+
with open(fn) as f:
|
| 118 |
+
txt = f.read()
|
| 119 |
+
except Exception as e:
|
| 120 |
+
print(e)
|
| 121 |
+
txt = ''
|
| 122 |
+
|
| 123 |
+
return txt
|
| 124 |
+
|
| 125 |
+
samples = [
|
| 126 |
+
['1', "Accordo tra l'Unione europea e il Principato del Liechtenstein ai fini dell'applicazione di talune disposizioni della decisione 2008/615/GAI del Consiglio sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera, della decisione 2008/616/GAI del Consiglio relativa all'attuazione della decisione 2008/615/GAI sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera, compreso l'allegato, e della decisione quadro 2009/905/GAI del Consiglio sull'accreditamento dei fornitori di servizi forensi che effettuano attività di laboratorio", ['28 QUESTIONI SOCIALI, 36 SCIENZE, 04 VITA POLITICA, 72 GEOGRAFIA, 10 UNIONE EUROPEA, 48 TRASPORTO, 32 ISTRUZIONE E COMUNICAZIONE, 08 RELAZIONI INTERNAZIONALI']],
|
| 127 |
+
['2', "Causa C-377/21: Sentenza della Corte (Settima Sezione) del 7 luglio 2022 (domanda di pronuncia pregiudiziale proposta dalla Cour du travail de Mons — Belgio) — Ville de Mons, Zone de secours Hainaut — Centre / RM (Rinvio pregiudiziale – Politica sociale – Direttiva 97/81/CE – Accordo quadro sul lavoro a tempo parziale – Clausola 4 – Principio di non discriminazione – Principio del pro rata temporis – Presa in considerazione, ai fini del calcolo della retribuzione di un vigile del fuoco professionista assunto a tempo pieno, dell’anzianità da quest’ultimo acquisita in qualità di vigile del fuoco volontario, secondo il principio del pro rata temporis)", ['12 DIRITTO, 52 AMBIENTE, 28 QUESTIONI SOCIALI, 44 OCCUPAZIONE E LAVORO']],
|
| 128 |
+
['3', "Parere del Comitato economico e sociale europeo in merito alla «Proposta di regolamento del Parlamento europeo e del Consiglio che modifica il regolamento (UE) 2018/848 relativo alla produzione biologica per quanto riguarda la sua data di applicazione e alcune altre date in esso previste» [COM(2020) 483 final – 2020/0231 (COD)]", ['56 AGRICOLTURA, SILVICOLTURA E PESCA, 28 QUESTIONI SOCIALI, 20 SCAMBI ECONOMICI E COMMERCIALI, 10 UNIONE EUROPEA, 60 AGROALIMENTARE']],
|
| 129 |
+
['4', "Causa C-675/15 P: Impugnazione proposta il 15 dicembre 2015 dalla The Tea Board avverso la sentenza del Tribunale (Ottava Sezione) del 2 ottobre 2015, causa T-626/13, The Tea Board/Ufficio per l’armonizzazione nel mercato interno (marchi, disegni e modelli)", ['68 INDUSTRIA, 64 PRODUZIONE, TECNOLOGIA E RICERCA, 32 ISTRUZIONE E COMUNICAZIONE']],
|
| 130 |
+
['5', "Decisione del Parlamento europeo del 12 dicembre 2013 di non sollevare obiezioni al regolamento delegato della Commissione, del 30 ottobre 2013, che modifica gli allegati I, II e IV del regolamento (UE) n. 978/2012 relativo all'applicazione di un sistema di preferenze tariffarie generalizzate (C(2013)07167 — 2013/2929(DEA))", "76 ORGANIZZAZIONI INTERNAZIONALI, 72 GEOGRAFIA, 16 ECONOMIA, 20 SCAMBI ECONOMICI E COMMERCIALI"]
|
| 131 |
+
]
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
|
| 135 |
+
with gr.Blocks() as interface:
|
| 136 |
+
|
| 137 |
+
gr.Markdown("""
|
| 138 |
+
# Classificatore domini EuroVoc
|
| 139 |
+
|
| 140 |
+
Strumento che permette la classificazione di un documento rispetto alle 546 classi del livello superiore della [classificazione EuroVoc](https://eur-lex.europa.eu/browse/eurovoc.html?locale=it).
|
| 141 |
+
""")
|
| 142 |
+
|
| 143 |
+
with gr.Row():
|
| 144 |
+
with gr.Column():
|
| 145 |
+
|
| 146 |
+
input_text = gr.Textbox(label='Testo da classificare', lines=3, placeholder='inserire qui il testo che si desidera classificare')
|
| 147 |
+
|
| 148 |
+
with gr.Accordion("Opzioni"):
|
| 149 |
+
|
| 150 |
+
with gr.Box():
|
| 151 |
+
filter_strategy = gr.Radio(['top k', 'soglia di confidenza',], value='top k', visible=False)
|
| 152 |
+
gr.Markdown("""
|
| 153 |
+
### Strategia di filtraggio dei risultati
|
| 154 |
+
|
| 155 |
+
Indica se mostrare solamente le k classi ritenute più probabili oppure se riportare le classi associate ad un punteggio maggiore o uguale alla soglia di confidenza indicata
|
| 156 |
+
""")
|
| 157 |
+
with gr.Tab("top k") as tab_top_k:
|
| 158 |
+
s_k = gr.Slider(1, 546, step= 1, value=6, label='k')
|
| 159 |
+
with gr.Tab("soglia di confidenza") as tab_confidence:
|
| 160 |
+
s_confidence = gr.Slider(0, 1, value=0.5,label='valore soglia',)
|
| 161 |
+
tab_confidence.select(lambda :"soglia di confidenza", None, filter_strategy)
|
| 162 |
+
tab_top_k.select(lambda:'top k', None, filter_strategy)
|
| 163 |
+
|
| 164 |
+
with gr.Box():
|
| 165 |
+
gr.Markdown("""
|
| 166 |
+
### Strategia di elaborazione del documento
|
| 167 |
+
""")
|
| 168 |
+
|
| 169 |
+
# simplification
|
| 170 |
+
document_reading_strategy = gr.Radio(['solo inizio','intero documento'], value = 'solo inizio', label="Indica se analizzare solamente la prima porzione del documento (più veloce) o se eseguire più classificazioni rispetto alle diverse porzioni del documento unendone i risultati")
|
| 171 |
+
|
| 172 |
+
|
| 173 |
+
#document_reading_strategy = gr.Radio(['solo inizio', 'intero documento'], value='solo inizio', visible=False)
|
| 174 |
+
#with gr.Tab("solo inizio") as tab_beginning_only:
|
| 175 |
+
# gr.Markdown("Opzione migliore come velocità di elaborazione")
|
| 176 |
+
#with gr.Tab("intero documento") as tab_whole_document:
|
| 177 |
+
# gr.Markdown("Attenzione: questa opzione allunga i tempi di elaborazione")
|
| 178 |
+
chunk_overlap = gr.Slider(0, 0.5, value=0.5, label='sovrapposizione porzioni documento', info='indica la percentuale di sovrapposizione tra le diverse porzioni di testo analizzate', visible=False)
|
| 179 |
+
combine_strategy = gr.Radio(['avg', 'max'], value='max', label='strategia per la combinazione dei risultati dei chunk', info='avg indica di considerare il valore medio delle classificazioni eseguite sulle diverse porzioni del documento, mentre max prenderà i valori massimi (aumenta il numero di classi rilevanti)', visible=False)
|
| 180 |
+
exclude_last = gr.Checkbox(value=True, label='escludi ultimo chuck', info='permette di rimuovere l\' ultima porzione del testo quando viene analizzato compretamente per evitare di elaborare un porzione troppo ridotta', visible=False)
|
| 181 |
+
#tab_beginning_only.select(lambda:'solo inizio', None, document_reading_strategy)
|
| 182 |
+
#tab_whole_document.select(lambda:'intero documento', None, document_reading_strategy)
|
| 183 |
+
|
| 184 |
+
|
| 185 |
+
with gr.Accordion("Esempi", open=False):
|
| 186 |
+
nome_esempio = gr.Textbox(visible=False)
|
| 187 |
+
titolo = gr.Textbox(visible=False)
|
| 188 |
+
ground_truth_esempio = gr.Textbox(visible=False)
|
| 189 |
+
|
| 190 |
+
data = gr.Dataset(components=[nome_esempio, titolo, ground_truth_esempio], samples=samples, label='Cliccare su un esempio per caricarlo', headers=["#", "Titolo", "Ground Truth"])
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
data.click(load_example_from_list, data, input_text)
|
| 194 |
+
|
| 195 |
+
#examples = gr.Dropdown(
|
| 196 |
+
# [' ', 'esempio 1', 'esempio 2'],
|
| 197 |
+
# label="Esempi"
|
| 198 |
+
#)
|
| 199 |
+
#examples.select(load_example, inputs=None, outputs=input_text)
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
|
| 203 |
+
with gr.Row():
|
| 204 |
+
clear_button = gr.Button("Cancella testo")
|
| 205 |
+
classify_button = gr.Button("Classifica", variant='primary')
|
| 206 |
+
|
| 207 |
+
with gr.Column():
|
| 208 |
+
outputs = gr.Label()
|
| 209 |
+
|
| 210 |
+
clear_button.click(fn=lambda: None, inputs=None, outputs=input_text)
|
| 211 |
+
classify_button.click(app, inputs=[input_text,filter_strategy, s_confidence, s_k, document_reading_strategy, chunk_overlap, combine_strategy, exclude_last], outputs=outputs)
|
| 212 |
+
|
| 213 |
+
interface.launch()
|
e_1.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
10.7.2019 IT Gazzetta ufficiale dell'Unione europea L 184/3 ACCORDO tra l'Unione europea e il Principato del Liechtenstein ai fini dell'applicazione di talune disposizioni della decisione 2008/615/GAI del Consiglio sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera, della decisione 2008/616/GAI del Consiglio relativa all'attuazione della decisione 2008/615/GAI sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera, compreso l'allegato, e della decisione quadro 2009/905/GAI del Consiglio sull'accreditamento dei fornitori di servizi forensi che effettuano attività di laboratorio L'UNIONE EUROPEA, da una parte, e IL PRINCIPATO DEL LIECHTENSTEIN, dall'altra, in seguito denominate congiuntamente «parti contraenti», DESIDEROSE di migliorare la cooperazione di polizia e giudiziaria tra gli Stati membri dell'Unione europea e il Principato del Liechtenstein, fatte salve le norme per la tutela della libertà individuale, CONSIDERANDO che le attuali relazioni fra le parti contraenti, in particolare il protocollo tra l'Unione europea, la Comunità europea, la Confederazione svizzera e il Principato del Liechtenstein sull'adesione del Principato del Liechtenstein all'accordo tra l'Unione europea, la Comunità europea e la Confederazione svizzera riguardante l'associazione della Confederazione svizzera all'attuazione, all'applicazione e allo sviluppo dell'acquis di Schengen (1), sono caratterizzate da una stretta cooperazione nella lotta contro la criminalità, SOTTOLINEANDO il comune interesse delle parti contraenti di garantire che la cooperazione di polizia tra gli Stati membri dell'Unione europea e il Principato del Liechtenstein funzioni in modo efficace, rapido e compatibile con i principi fondamentali dei loro sistemi giuridici nazionali e nel rispetto dei diritti individuali e dei principi della Convenzione europea per la salvaguardia dei diritti dell'uomo e delle libertà fondamentali, firmata a Roma il 4 novembre 1950, CONSAPEVOLI che la decisione quadro 2006/960/GAI del Consiglio, del 18 dicembre 2006, relativa alla semplificazione dello scambio di informazioni ed intelligence tra le autorità degli Stati membri dell'Unione europea incaricate dell'applicazione della legge (2), contiene già norme che consentono alle autorità di contrasto degli Stati membri dell'Unione europea e del Principato del Liechtenstein di scambiarsi le informazioni e l'intelligence esistenti rapidamente ed efficacemente ai fini dello svolgimento di indagini penali o di operazioni di intelligence criminale, CONSAPEVOLI che, per stimolare la cooperazione internazionale nel settore dell'applicazione della legge, è di fondamentale importanza poter scambiare informazioni precise in modo rapido ed efficace, CONSAPEVOLI che lo scopo è l'introduzione di procedure che promuovano mezzi rapidi, efficaci ed economici di scambio delle informazioni e che, per l'uso congiunto dei dati, tali procedure dovrebbero stabilire le responsabilità rispettive e prevedere adeguate garanzie dell'esattezza e della sicurezza dei dati stessi durante la loro trasmissione e archiviazione, nonché procedure per la registrazione dello scambio di dati e restrizioni all'uso delle informazioni scambiate, SOTTOLINEANDO che il presente accordo contiene pertanto disposizioni basate sulle principali disposizioni della decisione 2008/615/GAI del Consiglio, del 23 giugno 2008, sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera (3), della decisione 2008/616/GAI del Consiglio, del 23 giugno 2008, relativa all'attuazione della decisione 2008/615/GAI sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera (4), e del suo allegato, e della decisione quadro 2009/905/GAI del Consiglio, del 30 novembre 2009, sull'accreditamento dei fornitori di servizi forensi che effettuano attività di laboratorio (5), e destinate a migliorare lo scambio di informazioni, consentendo agli Stati membri dell'Unione europea e al Principato del Liechtenstein di concedersi reciprocamente diritti di accesso ai rispettivi schedari automatizzati di analisi del DNA, sistemi automatizzati di identificazione dattiloscopica e dati di immatricolazione dei veicoli, SOTTOLINEANDO che, nel caso di dati provenienti da schedari nazionali di analisi del DNA e da sistemi automatizzati di identificazione dattiloscopica, un sistema di riscontro positivo o negativo (hit/no hit) dovrebbe consentire allo Stato che effettua la consultazione di chiedere in un secondo tempo allo Stato che gestisce lo schedario dati personali specifici e, se necessario, ulteriori informazioni mediante procedure di assistenza reciproca, comprese quelle adottate ai sensi della decisione quadro 2006/960/GAI del Consiglio, CONSIDERANDO che tali disposizioni renderebbero notevolmente più rapide le attuali procedure che consentono agli Stati membri dell'Unione europea e al Principato del Liechtenstein di accertare se un altro Stato disponga delle informazioni di cui ha bisogno e, in caso affermativo, quale sia tale Stato, CONSIDERANDO che il raffronto transfrontaliero dei dati aprirà una nuova dimensione nella lotta alla criminalità e che le informazioni ottenute raffrontando i dati offriranno nuovi approcci alle indagini e svolgeranno dunque un ruolo cruciale nell'assistenza alle autorità di contrasto e alle autorità giudiziarie degli Stati, CONSIDERANDO che le norme si basano sul collegamento in rete delle banche dati nazionali degli Stati, CONSIDERANDO che, nel rispetto di determinate condizioni, gli Stati dovrebbero poter trasmettere dati personali e non personali per migliorare lo scambio di informazioni al fine di prevenire i reati e di tutelare l'ordine e la sicurezza pubblici in relazione ad eventi di rilievo a dimensione transfrontaliera, CONSAPEVOLI che, oltre a migliorare lo scambio di informazioni, è necessario disciplinare altre forme di collaborazione più stretta tra le autorità di polizia, in particolare mediante operazioni di sicurezza congiunte (quali i pattugliamenti congiunti), CONSIDERANDO che il sistema di riscontro positivo o negativo offre una struttura di raffronto dei profili anonimi, nella quale i dati personali supplementari sono scambiati solo dopo un riscontro positivo e la cui trasmissione e il cui ricevimento sono disciplinati dal diritto nazionale, comprese le norme relative all'assistenza giudiziaria, e che in tal modo si garantisce un sistema adeguato di protezione dei dati, essendo inteso che la trasmissione di dati personali a un altro Stato richiede un livello adeguato di protezione dei dati da parte dello Stato ricevente, CONSIDERANDO che il Principato del Liechtenstein dovrebbe sostenere le spese operative derivanti, per le sue autorità, dall'applicazione del presente accordo, CONSAPEVOLI che, poiché l'accreditamento dei fornitori di servizi forensi che effettuano attività di laboratorio è una tappa importante in direzione di uno scambio più sicuro ed efficace delle prove scientifiche, alcune disposizioni della decisione quadro 2009/905/GAI del Consiglio dovrebbero essere rispettate dal Principato del Liechtenstein, CONSIDERANDO che, a norma del presente accordo, il trattamento dei dati personali da parte delle autorità del Principato del Liechtenstein a fini di prevenzione, accertamento o indagine in materia di terrorismo e criminalità transfrontaliera dovrebbe rispettare un livello di protezione dei dati personali, a norma del diritto nazionale del Principato del Liechtenstein, che sia conforme alla direttiva (UE) 2016/680 del Parlamento europeo e del Consiglio, del 27 aprile 2016, relativa alla protezione delle persone fisiche con riguardo al trattamento dei dati personali da parte delle autorità competenti a fini di prevenzione, indagine, accertamento e perseguimento di reati o esecuzione di sanzioni penali, nonché alla libera circolazione di tali dati e che abroga la decisione quadro 2008/977/GAI del Consiglio (6), BASANDOSI sulla fiducia reciproca tra gli Stati membri dell'Unione europea e il Principato del Liechtenstein nella struttura e nel funzionamento dei loro sistemi giuridici, TENENDO CONTO che, in base al trattato tra la Confederazione svizzera e il Principato del Liechtenstein sulla cooperazione nell'ambito dei sistemi d'informazione svizzeri relativi per le impronte digitali e per profili del DNA (7), i paesi condividono la stessa banca dati e gli stessi sistemi per lo scambio di informazioni, relativi rispettivamente ai profili del DNA e ai dati dattiloscopici, RICONOSCENDO che le disposizioni delle convenzioni bilaterali e multilaterali rimangono applicabili per tutte le questioni non contemplate dal presente accordo, HANNO DECISO DI CONCLUDERE IL PRESENTE ACCORDO: Articolo 1 Oggetto e finalità 1. Fatto salvo il presente accordo, gli articoli da 1 a 24, l'articolo 25, paragrafo 1, gli articoli da 26 a 32 e l'articolo 34 della decisione 2008/615/GAI del Consiglio sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera, si applicano nelle relazioni bilaterali tra il Principato del Liechtenstein e ciascuno degli Stati membri. 2. Fatto salvo il presente accordo, gli articoli da 1 a 19 e l'articolo 21 della decisione 2008/616/GAI del Consiglio relativa all'attuazione della decisione 2008/615/GAI sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera, compreso l'allegato, ad esclusione del capo 4, punto 1, del medesimo, si applicano nelle relazioni bilaterali tra il Principato del Liechtenstein e ciascuno degli Stati membri. 3. Le dichiarazioni formulate dagli Stati membri ai sensi delle decisioni 2008/615/GAI e 2008/616/GAI del Consiglio si applicano parimenti nelle loro relazioni bilaterali con il Principato del Liechtenstein. 4. Fatto salvo il presente accordo, gli articoli da 1 a 5 e l'articolo 6, paragrafo 1, della decisione quadro 2009/905/GAI del Consiglio sull'accreditamento dei fornitori di servizi forensi che effettuano attività di laboratorio si applicano nelle relazioni bilaterali tra il Principato del Liechtenstein e ciascuno degli Stati membri. Articolo 2 Definizioni Ai fini del presente accordo, si applicano le seguenti definizioni: 1) «parti contraenti»: l'Unione europea e il Principato del Liechtenstein; 2) «Stato membro»: uno Stato membro dell'Unione europea; 3) «Stato»: uno Stato membro o il Principato del Liechtenstein. Articolo 3 Applicazione e interpretazione uniformi 1. Al fine di assicurare che le disposizioni di cui all'articolo 1 siano applicate e interpretate il più uniformemente possibile, le parti contraenti si tengono costantemente aggiornate sull'evoluzione della giurisprudenza della Corte di giustizia dell'Unione europea e dei competenti organi giurisdizionali del Principato del Liechtenstein relativa a dette disposizioni. A tal fine è istituito un meccanismo che assicura una costante trasmissione reciproca di detta giurisprudenza. 2. Il Principato del Liechtenstein ha diritto di presentare alla Corte di giustizia dell'Unione europea memorie o osservazioni scritte quando detta Corte è stata adita da un organo giurisdizionale di uno Stato membro perché si pronunci in via pregiudiziale sull'interpretazione di una delle disposizioni di cui all'articolo 1. Articolo 4 Risoluzione delle controversie Ogni controversia tra il Principato del Liechtenstein e uno Stato membro sull'interpretazione o sull'applicazione del presente accordo o di una delle disposizioni di cui all'articolo 1 nonché delle modifiche che le riguardino può essere deferita da una delle parti della controversia ai rappresentanti dei governi degli Stati membri e del Principato del Liechtenstein all'uopo riuniti, ai fini di una sua celere composizione. Articolo 5 Modifiche 1. Nel caso in cui si renda necessaria una modifica delle disposizioni di cui all'articolo 1, l'Unione europea ne informa quanto prima il Principato del Liechtenstein e ne raccoglie le eventuali osservazioni. 2. Qualsiasi modifica delle disposizioni di cui all'articolo 1 è notificata dall'Unione europea, non appena adottata, al Principato del Liechtenstein. Il Principato del Liechtenstein decide autonomamente se accettare il contenuto della modifica e se dargli attuazione nel proprio ordinamento giuridico interno. La decisione è notificata all'Unione europea entro tre mesi dalla data della notifica di cui al primo comma. 3. Qualora possa essere vincolato dal contenuto della modifica soltanto dopo che siano stati soddisfatti i requisiti costituzionali, il Principato del Liechtenstein ne informa l'Unione europea al momento della notifica. Il Principato del Liechtenstein informa immediatamente e per iscritto l'Unione europea dell'adempimento di tutti i requisiti costituzionali. Se non è richiesto un referendum, la notifica ha luogo immediatamente dopo la scadenza del termine referendario. Se è richiesto un referendum, il Principato del Liechtenstein dispone, per effettuare la notifica, di un termine massimo di diciotto mesi a decorrere dalla notifica dell'Unione europea. Con decorrenza dalla data stabilita per l'entrata in vigore della modifica per quanto riguarda il Principato del Liechtenstein e fino alla notifica di quest'ultimo circa l'adempimento dei requisiti costituzionali, il Principato del Liechtenstein applica provvisoriamente, ove possibile, il contenuto della modifica in questione. 4. Se il Principato del Liechtenstein non accetta il contenuto della modifica, il presente accordo è sospeso. Le parti contraenti convocano una riunione per esaminare ogni possibilità volta a mantenere il buon funzionamento del presente accordo, compresa la possibilità di riconoscere l'equivalenza delle normative. La sospensione è revocata non appena il Principato del Liechtenstein comunica di accettare il contenuto della modifica o se le parti contraenti convengono di applicare nuovamente il presente accordo. 5. Se alla scadenza del termine di sei mesi di sospensione le parti contraenti non hanno deciso di applicarlo nuovamente, il presente accordo cessa di applicarsi. 6. I paragrafi 4 e 5 del presente accordo non si applicano alle modifiche apportate ai capi 3, 4 o 5 della decisione 2008/615/GAI del Consiglio o all'articolo 17 della decisione 2008/616/GAI del Consiglio che il Principato del Liechtenstein ha indicato all'Unione europea come non accettabili, precisandone i motivi. In tali casi, fatto salvo l'articolo 10 del presente accordo, le disposizioni pertinenti nella versione precedente la modifica continuano ad applicarsi alle relazioni bilaterali tra il Principato del Liechtenstein e ciascuno degli Stati membri. Articolo 6 Riesame Le parti contraenti convengono di procedere a un riesame comune del presente accordo entro cinque anni a decorrere dalla sua entrata in vigore. Il riesame verte in particolare sull'attuazione pratica, sull'interpretazione e sugli sviluppi dell'accordo e include altresì aspetti quali le conseguenze di un'ulteriore evoluzione dell'Unione europea relativa alle materie del presente accordo. Articolo 7 Relazione con altri strumenti 1. Il Principato del Liechtenstein può continuare ad applicare accordi o intese bilaterali o multilaterali in materia di cooperazione transfrontaliera con Stati membri in vigore alla data di conclusione del presente accordo, nella misura in cui tali accordi o intese non siano incompatibili con gli obiettivi del presente accordo. Il Principato del Liechtenstein notifica all'Unione europea gli accordi o le intese che continueranno ad applicarsi. 2. Il Principato del Liechtenstein può concludere o mettere in vigore altri accordi o intese bilaterali o multilaterali in materia di cooperazione transfrontaliera con Stati membri dopo l'entrata in vigore del presente accordo, nella misura in cui tali accordi o intese prevedano l'estensione o l'ampliamento degli obiettivi del presente accordo. Il Principato del Liechtenstein notifica tali nuovi accordi o intese all'Unione europea entro tre mesi dalla loro firma o, in caso di accordi o intese firmati prima dell'entrata in vigore del presente accordo, entro tre mesi dalla loro entrata in vigore. 3. Gli accordi e le intese di cui ai paragrafi 1 e 2 non incidono sui rapporti con Stati membri che non ne siano parti. 4. Il presente accordo lascia impregiudicati gli accordi esistenti in materia di assistenza giudiziaria o di reciproco riconoscimento delle decisioni giudiziarie. Articolo 8 Notifiche, dichiarazioni ed entrata in vigore 1. Ciascuna parte contraente notifica all'altra la conclusione delle procedure richieste per l'espressione del suo consenso a essere vincolata dal presente accordo. 2. L'Unione europea può esprimere il suo consenso a essere vincolata dal presente accordo anche qualora le decisioni relative al trattamento di dati personali da trasmettere o già trasmessi a norma della decisione 2008/615/GAI del Consiglio non siano state ancora prese per tutti gli Stati membri. 3. L'articolo 5, paragrafi 1 e 2, si applica in via provvisoria a decorrere dalla data della firma del presente accordo. 4. Il termine di tre mesi previsto dall'articolo 5, paragrafo 2, secondo comma, concernente le modifiche delle disposizioni di cui all'articolo 1 adottate dopo la firma del presente accordo ma prima della sua entrata in vigore comincia a decorrere il giorno dell'entrata in vigore del presente accordo. 5. Al momento della notifica ai sensi del paragrafo 1 o a una data successiva, ove previsto, il Principato del Liechtenstein presenta le dichiarazioni previste di cui all'articolo 1, paragrafo 3. 6. Il presente accordo entra in vigore il primo giorno del terzo mese successivo alla data dell'ultima notifica di cui al paragrafo 1. 7. La trasmissione di dati personali ai sensi del presente accordo da parte degli Stati membri e del Principato del Liechtenstein avviene solo dopo il recepimento delle disposizioni del capo 6 della decisione 2008/615/GAI del Consiglio nel diritto nazionale degli Stati interessati da detta trasmissione. Per accertare se tale sia il caso del Principato del Liechtenstein, sono effettuate una visita di valutazione e un'esperienza pilota in base a condizioni e modalità concordate con il Principato del Liechtenstein e analoghe a quelle cui sono soggetti gli Stati membri a norma del capo 4 dell'allegato della decisione 2008/616/GAI del Consiglio. Sulla base di una relazione globale di valutazione, e secondo fasi uguali a quelle seguite per l'avvio degli scambi automatizzati di dati negli Stati membri, il Consiglio stabilisce la data o le date a decorrere dalle quali gli Stati membri possono comunicare dati personali al Principato del Liechtenstein a norma del presente accordo. 8. Il Principato del Liechtenstein attua e applica le disposizioni della direttiva (UE) 2016/680 del Parlamento europeo e del Consiglio. Il Principato del Liechtenstein comunica alla Commissione europea il testo delle principali disposizioni adottate nel settore disciplinato da tale direttiva. 9. Gli articoli da 1 a 24, l'articolo 25, paragrafo 1, gli articoli da 26 a 32 e l'articolo 34 della decisione quadro 2009/905/GAI del Consiglio sono attuati e applicati dal Principato del Liechtenstein. Il Principato del Liechtenstein comunica alla Commissione europea il testo delle principali disposizioni adottate nel settore disciplinato da tale decisione quadro del Consiglio. 10. Le autorità competenti del Principato del Liechtenstein non applicano le disposizioni del capo 2 della decisione 2008/615/GAI del Consiglio finché il Principato del Liechtenstein non abbia attuato e applicato le misure di cui ai paragrafi 8 e 9 del presente articolo. Articolo 9 Adesione di nuovi Stati membri all'Unione europea L'adesione di nuovi Stati membri all'Unione europea instaura diritti e obblighi ai sensi del presente accordo fra tali nuovi Stati membri e il Principato del Liechtenstein. Articolo 10 Denuncia 1. Il presente accordo può essere denunciato in qualsiasi momento da una delle parti contraenti mediante deposito della notifica di denuncia all'altra parte contraente. 2. La denuncia del presente accordo in conformità del paragrafo 1 ha efficacia sei mesi dopo il deposito della notifica di denuncia. Il presente accordo è redatto in duplice esemplare in lingua bulgara, ceca, croata, danese, estone, finlandese, francese, greca, inglese, italiana, lettone, lituana, maltese, neerlandese, polacca, portoghese, rumena, slovacca, slovena, spagnola, svedese, tedesca e ungherese, ciascun testo facente ugualmente fede. Съставено в Брюксел на двадесет и седми юни две хиляди и деветнадесета година. Hecho en Bruselas, el veintisiete de junio de dos mil diecinueve. V Bruselu dne dvacátého sedmého června dva tisíce devatenáct. Udfærdiget i Bruxelles den syvogtyvende juni to tusind og nitten. Geschehen zu Brüssel am siebenundzwanzigsten Juni zweitausendneunzehn. Kahe tuhande üheksateistkümnenda aasta juunikuu kahekümne seitsmendal päeval Brüsselis. Έγινε στις Βρυξέλλες, στις είκοσι εφτά Ιουνίου δύο χιλιάδες δεκαεννέα. Done at Brussels on the twenty-seventh day of June in the year two thousand and nineteen. Fait à Bruxelles, le vingt-sept juin deux mille dix-neuf. Sastavljeno u Bruxellesu dvadeset sedmog lipnja godine dvije tisuće devetnaeste. Fatto a Bruxelles, addì ventisette giugno duemiladiciannove. Briselē, divi tūkstoši deviņpadsmitā gada divdesmit septītajā jūnijā. Priimta du tūkstančiai devynioliktų metų birželio dvidešimt septintą dieną Briuselyje. Kelt Brüsszelben, a kétezer-tizenkilencedik év június havának huszonhetedik napján. Magħmul fi Brussell, fis-sebgħa u għoxrin jum ta' Ġunju fis-sena elfejn u dsatax. Gedaan te Brussel, zevenentwintig juni tweeduizend negentien. Sporządzono w Brukseli dnia dwudziestego siódmego czerwca roku dwa tysiące dziewiętnastego. Feito em Bruxelas, em vinte e sete de junho de dois mil e dezanove. Întocmit la Bruxelles la douăzeci și șapte iunie două mii nouăsprezece. V Bruseli dvadsiateho siedmeho júna dvetisícdevätnásť. V Bruslju, dne sedemindvajsetega junija leta dva tisoč devetnajst. Tehty Brysselissä kahdentenakymmenentenäseitsemäntenä päivänä kesäkuuta vuonna kaksituhattayhdeksäntoista. Som skedde i Bryssel den tjugosjunde juni år tjugohundranitton. За Европейския съюз Рог la Unión Europea Za Evropskou unii For Den Europæiske Union Für die Europäische Union Euroopa Liidu nimel Για την Ευρωπαϊκή Ένωση For the European Union Pour l'Union européenne Za Europsku uniju Per l'Unione europea Eiropas Savienības vārdā – Europos Sąjungos vardu Az Európai Unió részéről Għall-Unjoni Ewropea Voor de Europese Unie W imieniu Unii Europejskiej Pela União Europeia Pentru Uniunea Europeană Za Európsku úniu Za Evropsko unijo Euroopan unionin puolesta För Europeiska unionen За Княжество Лихтенщайн Por el Principado de Liechtenstein Za Lichtenštejnské knížectví For Fyrstendømmet Liechtenstein Für das Fürstentum Liechtenstein Liechtensteini Vürstiriigi nimel Για το Πριγκιπάτο του Λιχτενστάιν For the Principality of Liechtenstein Pour la Principauté de Liechtenstein Za Kneževinu Lihtenštajn Per il Principato del Liechtenstein Lihtenšteinas Firstistes vārdā – Lichtenšteino Kunigaikštystės vardu A Liechtensteini Hercegség részéről Għall-Prinċipat tal-Liechtenstein Voor het Vorstendom Liechtenstein W imieniu Księstwa Liechtensteinu Pelo Principado do Listenstaine Pentru Principatul Liechtenstein Za Lichtenštajnské kniežatstvo Za Kneževino Lihtenštajn Liechtensteinin ruhtinaskunnan puolesta För Furstendömet Liechtenstein (1) GU UE L 160 del 18.6.2011, pag. 3. (2) GU UE L 386 del 29.12.2006, pag. 89. (3) GU UE L 210 del 6.8.2008, pag. 1. (4) GU UE L 210 del 6.8.2008, pag. 12. (5) GU UE L 322 del 9.12.2009, pag. 14. (6) GU UE L 119 del 4.5.2016, pag. 89. (7) Raccolta ufficiale del Liechtenstein LGBl.-Nr. 2006.75; raccolta sistematica del Liechtenstein LR 0.369.101.2. Dichiarazione delle parti contraenti al momento della firma dell'accordo L'Unione europea e il Principato del Liechtenstein, parti contraenti dell'accordo ai fini dell'applicazione di talune disposizioni della decisione 2008/615/GAI del Consiglio sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera, della decisione 2008/616/GAI del Consiglio relativa all'attuazione della decisione 2008/615/GAI sul potenziamento della cooperazione transfrontaliera, soprattutto nella lotta al terrorismo e alla criminalità transfrontaliera, compreso l'allegato, e della decisione quadro 2009/905/GAI del Consiglio sull'accreditamento dei fornitori di servizi forensi che effettuano attività di laboratorio («accordo»), dichiarano che: Per effettuare gli scambi di dati relativi al profilo DNA, dati dattiloscopici e dati di immatricolazione dei veicoli, è necessario che il Principato del Liechtenstein stabilisca con ogni Stato membro connessioni bilaterali per ciascuna di queste categorie. Per rendere questo compito più agevole, il Principato del Liechtenstein è destinatario di qualsiasi documento disponibile, software specifico ed elenco di contatti utili. Il Principato del Liechtenstein può fruire di un partenariato informale con gli Stati membri che hanno già realizzato simili scambi al fine di condividere le esperienze acquisite e beneficiare in tal modo di un'assistenza pratica e tecnica. Le modalità di tali partenariati sono concordate direttamente tra gli Stati interessati. Gli esperti del Liechtenstein possono in qualsiasi momento far capo alla presidenza del Consiglio, alla Commissione europea o a esperti riconosciuti nei settori riguardo ai quali desiderano ottenere informazioni, chiarimenti o assistenza di altro tipo. Del pari, nella misura in cui si tratti di elaborare proposte o comunicazioni in collegamento con gli Stati membri, la Commissione può allo stesso modo contattare il Principato del Liechtenstein. Gli esperti del Liechtenstein possono essere invitati a partecipare a riunioni nel cui ambito gli esperti degli Stati membri discutono gli aspetti tecnici direttamente connessi con l'applicazione e lo sviluppo delle succitate decisioni del Consiglio.
|
e_2.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
22.8.2022 IT Gazzetta ufficiale dell’Unione europea C 318/18 Sentenza della Corte (Settima Sezione) del 7 luglio 2022 (domanda di pronuncia pregiudiziale proposta dalla Cour du travail de Mons — Belgio) — Ville de Mons, Zone de secours Hainaut — Centre / RM (Causa C-377/21) (1) (Rinvio pregiudiziale - Politica sociale - Direttiva 97/81/CE - Accordo quadro sul lavoro a tempo parziale - Clausola 4 - Principio di non discriminazione - Principio del pro rata temporis - Presa in considerazione, ai fini del calcolo della retribuzione di un vigile del fuoco professionista assunto a tempo pieno, dell’anzianità da quest’ultimo acquisita in qualità di vigile del fuoco volontario, secondo il principio del pro rata temporis) (2022/C 318/24) Lingua processuale: il francese Giudice del rinvio Cour du travail de Mons Parti nel procedimento principale Ricorrente: Ville de Mons, Zone de secours Hainaut — Centre Resistente: RM Dispositivo La clausola 4 dell’accordo quadro sul lavoro a tempo parziale, concluso il 6 giugno 1997, che figura in allegato alla direttiva 97/81/CE del Consiglio, del 15 dicembre 1997, relativa all’accordo quadro sul lavoro a tempo parziale concluso dall’UNICE, dal CEEP e dalla CES, deve essere interpretata nel senso che essa non osta ad una normativa nazionale che, ai fini del calcolo della retribuzione dei vigili del fuoco professionisti assunti a tempo pieno, computa, a titolo di anzianità retributiva, i servizi precedentemente prestati a tempo parziale, in qualità di vigile del fuoco volontario, secondo il principio del pro rata temporis, vale a dire in funzione delle prestazioni effettivamente svolte. (1) GU C 391 del 27.9.2021
|
e_3.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
11.1.2021 IT Gazzetta ufficiale dell’Unione europea C 10/67 Parere del Comitato economico e sociale europeo in merito alla «Proposta di regolamento del Parlamento europeo e del Consiglio che modifica il regolamento (UE) 2018/848 relativo alla produzione biologica per quanto riguarda la sua data di applicazione e alcune altre date in esso previste» [COM(2020) 483 final – 2020/0231 (COD)] (2021/C 10/13) Consultazione Parlamento europeo, 14.9.2020 Consiglio, 14.9.2020 Base giuridica Articolo 43, paragrafo 2, e articolo 304 del trattato sul funzionamento dell’Unione europea Sezione competente Agricoltura, sviluppo rurale, ambiente Adozione in sessione plenaria 29.10.2020 Sessione plenaria n. 555 Esito della votazione (favorevoli/contrari/astenuti) 209/0/9 Avendo concluso che il contenuto della proposta è pienamente soddisfacente e non richiede alcun commento da parte sua, il Comitato, nel corso della 555a sessione plenaria dei giorni 27, 28 e 29 ottobre 2020 (seduta del 29 ottobre 2020), ha deciso di esprimere parere favorevole al testo proposto con 209 voti favorevoli, 0 voti contrari e 9 astensioni. Bruxelles, 29 ottobre 2020 La presidente del Comitato economico e sociale europeo Christa SCHWENG
|
e_4.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
21.3.2016 IT Gazzetta ufficiale dell’Unione europea C 106/15 Impugnazione proposta il 15 dicembre 2015 dalla The Tea Board avverso la sentenza del Tribunale (Ottava Sezione) del 2 ottobre 2015, causa T-626/13, The Tea Board/Ufficio per l’armonizzazione nel mercato interno (marchi, disegni e modelli) (Causa C-675/15 P) (2016/C 106/17) Lingua processuale: l’inglese Parti Ricorrente: The Tea Board (rappresentanti: M.C. Maier, A. Nordemann, avvocati) Altre parti nel procedimento: Ufficio per l’armonizzazione nel mercato interno (marchi, disegni e modelli), Delta Lingerie Conclusioni della ricorrente La ricorrente chiede che la Corte voglia: — annullare la sentenza impugnata del Tribunale del 2 ottobre 2015, causa T-626/13, nella parte in cui il Tribunale ha respinto il ricorso in relazione ai seguenti servizi contraddistinti dal marchio richiesto rientranti nelle classi 35 e 38: Consulenza commerciale per la creazione o l’utilizzo di punti vendita al dettaglio e di centrali d’acquisto per la vendita al dettaglio e la pubblicità; servizi di promozione delle vendite (per conto terzi), pubblicità, gestione d’affari commerciali, amministrazione commerciale, pubblicità on-line su rete informatica, distribuzione di materiale pubblicitario (pieghevoli, prospetti, giornali gratuiti, campioni), abbonamenti a giornali per conto terzi; informazioni o ragguagli in materia di affari; organizzazione d’eventi e d’esposizioni per scopi commerciali o pubblicitari, servizi di concessionarie pubblicitarie, locazione di spazi pubblicitari, pubblicità radiofonica e televisiva, sponsorizzazione pubblicitaria. (Classe 35) Telecomunicazioni, trasmissione di messaggi e immagini assistita al computer, servizi di radiodiffusione interattiva relativa alla presentazione del prodotto, della comunicazione tramite terminali di computer, comunicazione (trasmissione) su rete informatica globale, aperto e chiuso. (Classe 38) — se del caso, rinviare la causa al Tribunale, — condannare il convenuto alle spese. Motivi e principali argomenti 1. L’impugnazione è volta al parziale annullamento della sentenza del Tribunale del 2 ottobre 2015, causa T-626/13, nella parte in cui il Tribunale ha respinto il ricorso in relazione ai servizi contraddistinti dal marchio controverso rientranti nelle classi 35 e 38. 2. L’impugnazione si basa su due motivi: violazione dell’articolo 8, paragrafo 1, lettera b), del regolamento sul marchio comunitario (1) e violazione dell’articolo 8, paragrafo 5, del regolamento sul marchio comunitario. 3. La ricorrente sostiene che la funzione principale di un marchio comunitario collettivo ai sensi dell’articolo 66, paragrafo 2, del regolamento sul marchio comunitario, composto da una indicazione che serve a designare la provenienza geografica dei prodotti contraddistinti, non è di servire da indicazione della provenienza commerciale, ma solo di garantire la provenienza collettiva dei prodotti o servizi offerti e venduti sotto il marchio, vale a dire che i prodotti provengono da un’impresa che si trova nella zona geografica adottata come marchio comunitario collettivo e che è autorizzata a utilizzare il marchio comunitario collettivo. 4. Di conseguenza, ad avviso della ricorrente si deve affermare che, nell’ambito dell’articolo 8, paragrafo 1, lettera b), del regolamento sul marchio comunitario, la provenienza geografica deve essere presa in considerazione come fattore rilevante — o nel valutare la somiglianza dei prodotti e/o servizi di cui trattasi e/o nell’effettuare una valutazione globale del rischio di confusione. 5. Pertanto, nel comparare prodotti e/o servizi di un marchio comunitario collettivo anteriore ai sensi dell’articolo 66, paragrafo 2, del regolamento sul marchio comunitario, composto da un’indicazione geografica, con quelli di un marchio comunitario singolo, la ricorrente ritiene che non sia decisivo se i prodotti e servizi di cui trattasi sono simili con riferimento alla loro natura, alla loro estensione, ai loro consumatori finali e/o ai loro canali di distribuzione. Piuttosto, si deve verificare se i prodotti e/o servizi di cui trattasi possano avere la stessa provenienza geografica. 6. L’interpretazione della ricorrente dell’articolo 66, paragrafo 2, del regolamento sul marchio comunitario deriva: 1) dalla logica interna del regolamento n. 207/2009, in particolare dal fatto che i. l’articolo 66, paragrafo 2, del regolamento sul marchio comunitario costituisce un’eccezione all’interno del regolamento n. 207/2009 in quanto, ai sensi dell’articolo 7, paragrafo 1, lettera c), del regolamento sul marchio comunitario, sono esclusi dalla registrazione i marchi composti esclusivamente da segni o indicazioni che in commercio possono servire per designare la provenienza geografica del prodotto o di prestazione del servizio, ii. ai sensi dell’articolo 67, paragrafo 2, del regolamento sul marchio comunitario, il regolamento d’uso di un marchio comunitario collettivo composto da un’indicazione geografica deve autorizzare le persone i cui prodotti o servizi provengano dalla zona geografica in questione a diventare membri dell’associazione titolare del marchio e, di conseguenza, un marchio comunitario collettivo composto da un’indicazione geografica non è mai in grado di contraddistinguere prodotti o servizi dei membri dell’associazione titolare del marchio da quelli di altre imprese. 2) da un’interpretazione di tale disposizione alla luce del regolamento n. 1151/2012 (2) e dell’accordo sugli aspetti dei diritti di proprietà intellettuale attinenti al commercio (in prosieguo: l’«Accordo TRIPS»), secondo cui le indicazioni geografiche dovrebbero godere di un livello di tutela elevato, e secondo cui dovrebbero essere vietate rappresentazioni di un prodotto che indica o suggerisce che il prodotto in questione proviene da una zona geografica diversa dall’effettivo luogo di provenienza, cosicché il pubblico è indotto in errore in relazione alla provenienza geografica del prodotto. 7. La ricorrente sostiene che le qualità accertate dal Tribunale in connessione con DARJEELING possono anche essere trasferite a servizi quali la consulenza commerciale o servizi di telecomunicazione e sono in grado di rafforzare il potere attrattivo del marchio controverso a tal riguardo. Inoltre, la ricorrente osserva che il Tribunale non ha fornito una motivazione sostanziale, nella sua sentenza, in merito alla ragione per cui le qualità associate al marchio DARJEELING non potrebbero essere trasferite a servizi rientranti nelle classi 35 e 38, il che costituisce di per sè un errore di diritto. (1) Regolamento (CE) n. 207/2009 del Consiglio, del 26 febbraio 2009, sul marchio comunitario (GU L 78, pag. 1). (2) Regolamento (UE) n. 1151/2012 del Parlamento europeo e del Consiglio, del 21 novembre 2012, sui regimi di qualità dei prodotti agricoli e alimentari (GU L 343, pag. 1).
|
e_5.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
15.12.2016 IT Gazzetta ufficiale dell’Unione europea C 468/423 P7_TA(2013)0592 Decisione di non sollevare obiezioni a un atto delegato: modifiche agli allegati I, II e IV del regolamento (UE) n. 978/2012 relativo all'applicazione di un sistema di preferenze tariffarie generalizzate Decisione del Parlamento europeo del 12 dicembre 2013 di non sollevare obiezioni al regolamento delegato della Commissione, del 30 ottobre 2013, che modifica gli allegati I, II e IV del regolamento (UE) n. 978/2012 relativo all'applicazione di un sistema di preferenze tariffarie generalizzate (C(2013)07167 — 2013/2929(DEA)) (2016/C 468/86) Il Parlamento europeo, — visto il regolamento delegato della Commissione (C(2013)07167), — vista la lettera il data 25 novembre 2013 della Commissione, con cui quest'ultima chiede al Parlamento di dichiarare che non solleverà obiezioni al regolamento delegato, — vista la lettera del 2 dicembre 2013 della commissione per il commercio internazionale al presidente della Conferenza dei presidenti di commissione, — visto l'articolo 290 del trattato sul funzionamento dell'Unione europea, — visto il regolamento (UE) n. 978/2012 del Parlamento europeo e del Consiglio, del 25 ottobre 2012, relativo all'applicazione di un sistema di preferenze tariffarie generalizzate e che abroga il regolamento (CE) n. 732/2008 (1) del Consiglio, in particolare l'articolo 3, paragrafo 2, l'articolo 5, paragrafo 3, e l'articolo 17, paragrafo 2, — visto l'articolo 87 bis, paragrafo 6, del suo regolamento, A. considerando che la Commissione ha sottolineato il carattere essenziale di una decisione del Parlamento entro il 16 dicembre 2013, alla luce della necessità di pubblicare il regolamento delegato entro il 1o gennaio 2014 per consentire il tempestivo reinserimento del Myanmar/Birmania e l'inclusione del Sud Sudan nel sistema SPG; 1. dichiara di non sollevare obiezioni al regolamento delegato; 2. incarica il suo Presidente di trasmettere la presente decisione al Consiglio e alla Commissione. (1) GU L 303 del 31.10.2012, pag. 1.
|
libs/__init__.py
ADDED
|
File without changes
|
libs/eurovoc/EurovocTh.py
ADDED
|
@@ -0,0 +1,460 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import xml.etree.ElementTree as ET
|
| 2 |
+
from os import path
|
| 3 |
+
from collections import defaultdict
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
class EurovocTh:
|
| 7 |
+
"""
|
| 8 |
+
utility to map eurovoc thesaurus to natual language labels (for all the languages)
|
| 9 |
+
and manage/navigate its hierarchy
|
| 10 |
+
"""
|
| 11 |
+
|
| 12 |
+
def __init__(self, language='it'):
|
| 13 |
+
"""initialize the class with the choosen language
|
| 14 |
+
|
| 15 |
+
:param str language: language to be used for returning the thsaurus informations, defaults to 'it'
|
| 16 |
+
"""
|
| 17 |
+
|
| 18 |
+
if language not in __class__.get_available_languages():
|
| 19 |
+
raise UnknownParameterException(f'Unknown language {language} choose among th available ones')
|
| 20 |
+
|
| 21 |
+
self.language = language
|
| 22 |
+
self.__load_language_data(language)
|
| 23 |
+
|
| 24 |
+
with open(path.join(path.dirname(path.realpath(__file__)), f"eurovoc_xml/relation_bt.xml")) as f:
|
| 25 |
+
relations_tree = ET.parse(f)
|
| 26 |
+
|
| 27 |
+
self.eurovoc_version = relations_tree.getroot().attrib['VERSION']
|
| 28 |
+
|
| 29 |
+
# dictionary containing the set of ids the key is in a broader than relation with
|
| 30 |
+
# i.e. the key is NARROWER/MORE SPECIFIC than its set-value ids
|
| 31 |
+
self._relation_bt = defaultdict(lambda : set())
|
| 32 |
+
|
| 33 |
+
for record in relations_tree.findall('RECORD'):
|
| 34 |
+
self._relation_bt[record.find('SOURCE_ID').text].add(record.find('CIBLE_ID').text)
|
| 35 |
+
|
| 36 |
+
# build inverse realtion wrt broader term
|
| 37 |
+
# i.e. here the key will be BROADER than its set-values
|
| 38 |
+
self._relation_nt = defaultdict(lambda : set())
|
| 39 |
+
for k, v_set in self._relation_bt.items():
|
| 40 |
+
for v in v_set:
|
| 41 |
+
self._relation_nt[v].add(k)
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
with open(path.join(path.dirname(path.realpath(__file__)),f"eurovoc_xml/desc_thes.xml")) as f:
|
| 45 |
+
th_rel_tree = ET.parse(f)
|
| 46 |
+
|
| 47 |
+
# dictionary containing the set of th ids (MAY BE MULTIPLE) for each eurovoc id
|
| 48 |
+
self._id_th_relation = defaultdict(lambda: set())
|
| 49 |
+
for record in th_rel_tree.findall('RECORD'):
|
| 50 |
+
self._id_th_relation[record.find('DESCRIPTEUR_ID').text].add(record.find('THESAURUS_ID').text)
|
| 51 |
+
# there is also the information about the level of the descripteur that may be extracted if needed (boolena in french Oui/No)
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
self._dom_th_relation = defaultdict(lambda: set())
|
| 55 |
+
for th_id in self.get_thesaurus():
|
| 56 |
+
self._dom_th_relation[th_id[:2]].add(th_id)
|
| 57 |
+
|
| 58 |
+
self._th_id_relation = defaultdict(lambda: set())
|
| 59 |
+
for id in self.get_ids():
|
| 60 |
+
for th in self._id_th_relation[id]:
|
| 61 |
+
self._th_id_relation[th].add(id)
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
def __load_language_data(self, language:str):
|
| 65 |
+
"""load language files in the object
|
| 66 |
+
|
| 67 |
+
:param str language: string describing the language to be loaded
|
| 68 |
+
"""
|
| 69 |
+
|
| 70 |
+
# parse data content for the choosen language
|
| 71 |
+
with open(path.join(path.dirname(path.realpath(__file__)), f"eurovoc_xml/desc_{language}.xml")) as f:
|
| 72 |
+
descriptors_tree = ET.parse(f)
|
| 73 |
+
|
| 74 |
+
with open(path.join(path.dirname(path.realpath(__file__)),f"eurovoc_xml/thes_{language}.xml")) as f:
|
| 75 |
+
th_descriptors_tree = ET.parse(f)
|
| 76 |
+
|
| 77 |
+
with open(path.join(path.dirname(path.realpath(__file__)),f"eurovoc_xml/dom_{language}.xml")) as f:
|
| 78 |
+
domains_tree = ET.parse(f)
|
| 79 |
+
|
| 80 |
+
# create id-label dictionary for the eurovoc descirptors, microthesaurus and domain
|
| 81 |
+
self._labels_dic = {
|
| 82 |
+
record.find('DESCRIPTEUR_ID').text:record.find('LIBELLE').text
|
| 83 |
+
for record in descriptors_tree.getroot()
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
self._th_labels_dic = {
|
| 87 |
+
record.find('THESAURUS_ID').text:record.find('LIBELLE').text
|
| 88 |
+
for record in th_descriptors_tree.getroot()
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
self._dom_labels_dic = {
|
| 92 |
+
record.find('DOMAINE_ID').text:record.find('LIBELLE').text
|
| 93 |
+
for record in domains_tree.getroot()
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
# create dictionary with the optional definitions for the eurovoc ids
|
| 97 |
+
self._label_def = {
|
| 98 |
+
record.find('DESCRIPTEUR_ID').text:record.find('DEF').text
|
| 99 |
+
for record in descriptors_tree.getroot()
|
| 100 |
+
if record.find('DEF') is not None
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
def get_leaves(self):
|
| 105 |
+
""" returns wurovoc_classifiers leaves
|
| 106 |
+
"""
|
| 107 |
+
try:
|
| 108 |
+
return self._leaves
|
| 109 |
+
except AttributeError:
|
| 110 |
+
self._leaves = set(self.get_ids()).difference(self._relation_nt.keys()) # build leaves set
|
| 111 |
+
return self._leaves
|
| 112 |
+
|
| 113 |
+
|
| 114 |
+
def is_leaf(self, id:str):
|
| 115 |
+
""" return whether the provided eurovoc_classifier is a leaf in the eurovoc thesaurus
|
| 116 |
+
:param id: eurovoc identified
|
| 117 |
+
"""
|
| 118 |
+
return id in self.get_leaves()
|
| 119 |
+
|
| 120 |
+
|
| 121 |
+
def get_top_level_ids(self):
|
| 122 |
+
try:
|
| 123 |
+
return self._top_level_ids
|
| 124 |
+
except AttributeError:
|
| 125 |
+
self._top_level_ids = set(self.get_ids()).difference(self._relation_bt.keys()) # build leaves set
|
| 126 |
+
return self._top_level_ids
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
def is_top_level(self, id:str):
|
| 130 |
+
""" return whether the provided eurovoc_classifier is a top level term (i.e. first term under the microthesurus entries) in the eurovoc thesaurus
|
| 131 |
+
:param id: eurovoc identified
|
| 132 |
+
"""
|
| 133 |
+
return id in self.get_top_level_ids()
|
| 134 |
+
|
| 135 |
+
|
| 136 |
+
def switch_language(self, new_language):
|
| 137 |
+
"""
|
| 138 |
+
:param new_language the language to switch the class to
|
| 139 |
+
"""
|
| 140 |
+
|
| 141 |
+
if new_language not in __class__.get_available_languages():
|
| 142 |
+
raise UnknownParameterException(f'Unknown language {new_language} choose among th available ones')
|
| 143 |
+
|
| 144 |
+
self.__load_language_data(new_language)
|
| 145 |
+
self.language = new_language
|
| 146 |
+
|
| 147 |
+
|
| 148 |
+
def get_level_ids(self, hierarchy_level:str):
|
| 149 |
+
"""
|
| 150 |
+
:param hierarchy_level eurovoc hierarchy level string
|
| 151 |
+
"""
|
| 152 |
+
if hierarchy_level == "eurovoc_dom":
|
| 153 |
+
return self.get_domains()
|
| 154 |
+
elif hierarchy_level == "eurovoc_th":
|
| 155 |
+
return self.get_thesaurus()
|
| 156 |
+
elif hierarchy_level == "eurovoc_classifiers_top_level":
|
| 157 |
+
return self.get_top_level_ids()
|
| 158 |
+
elif hierarchy_level == "eurovoc_classifiers":
|
| 159 |
+
return self.get_ids()
|
| 160 |
+
else:
|
| 161 |
+
UnknownParameterException(f'level {hierarchy_level} not implemented')
|
| 162 |
+
|
| 163 |
+
|
| 164 |
+
def get_domains(self):
|
| 165 |
+
"""
|
| 166 |
+
:return the list of all the domain identifiers available
|
| 167 |
+
"""
|
| 168 |
+
return list(self._dom_labels_dic.keys())
|
| 169 |
+
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
def get_thesaurus(self):
|
| 173 |
+
"""
|
| 174 |
+
:return the list of all the microthesaurus identifiers available
|
| 175 |
+
"""
|
| 176 |
+
return list(self._th_labels_dic.keys())
|
| 177 |
+
|
| 178 |
+
|
| 179 |
+
|
| 180 |
+
def get_ids(self):
|
| 181 |
+
"""
|
| 182 |
+
:return the list of all the eurovoc identifiers available
|
| 183 |
+
"""
|
| 184 |
+
return list(self._labels_dic.keys())
|
| 185 |
+
|
| 186 |
+
|
| 187 |
+
def get_level_label(self, id:str, hierarchy_level:str):
|
| 188 |
+
"""
|
| 189 |
+
:param hierarchy_level eurovoc hierarchy level string
|
| 190 |
+
"""
|
| 191 |
+
if hierarchy_level == "eurovoc_dom":
|
| 192 |
+
return self.get_dom_label(id)
|
| 193 |
+
elif hierarchy_level == "eurovoc_th":
|
| 194 |
+
return self.get_th_label(id)
|
| 195 |
+
elif hierarchy_level == "eurovoc_classifiers":
|
| 196 |
+
return self.get_label(id)
|
| 197 |
+
else:
|
| 198 |
+
UnknownParameterException(f'level {hierarchy_level} not implemented')
|
| 199 |
+
|
| 200 |
+
|
| 201 |
+
def get_th_label(self, id:str):
|
| 202 |
+
"""
|
| 203 |
+
retrieve the label for a given microthesaurus entry
|
| 204 |
+
:param id the identifier to use, string
|
| 205 |
+
:return a string containing the label for the provided id
|
| 206 |
+
|
| 207 |
+
:throw UnknownParameterException if id is not recognised
|
| 208 |
+
"""
|
| 209 |
+
try:
|
| 210 |
+
return self._th_labels_dic[id]
|
| 211 |
+
except KeyError:
|
| 212 |
+
UnknownParameterException(f'identifier {id} not found')
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
|
| 216 |
+
def get_dom_label(self, id:str):
|
| 217 |
+
"""
|
| 218 |
+
retrieve the label for a given thesaurus (domain) entry
|
| 219 |
+
:param id the identifier to use, string
|
| 220 |
+
:return a string containing the label for the provided id
|
| 221 |
+
|
| 222 |
+
:throw if the id is not recognized
|
| 223 |
+
"""
|
| 224 |
+
try:
|
| 225 |
+
return self._dom_labels_dic[id]
|
| 226 |
+
except KeyError:
|
| 227 |
+
UnknownParameterException(f'identifier {id} not found')
|
| 228 |
+
|
| 229 |
+
|
| 230 |
+
|
| 231 |
+
def get_th_dom(self, id:str):
|
| 232 |
+
"""
|
| 233 |
+
retrieve the thesaurus (domain) for a given michrothesaurus entry
|
| 234 |
+
:param id the identifier to use, string
|
| 235 |
+
:return a string containing the label for the provided id
|
| 236 |
+
|
| 237 |
+
:throw if the id is not recognized
|
| 238 |
+
"""
|
| 239 |
+
|
| 240 |
+
if id in self.get_thesaurus():
|
| 241 |
+
assert(len(id) == 4)
|
| 242 |
+
return id[:2]
|
| 243 |
+
else:
|
| 244 |
+
raise UnknownParameterException(f"identifier {id} not found")
|
| 245 |
+
|
| 246 |
+
|
| 247 |
+
# todo code usage check
|
| 248 |
+
def get_dom_th(self, id:str):
|
| 249 |
+
"""
|
| 250 |
+
retrieve the michortesaurus values related to the thesaurus (domain) entry
|
| 251 |
+
:param id the identifier to use, string
|
| 252 |
+
:return a set of string ids
|
| 253 |
+
|
| 254 |
+
:thow UnknownParameterException if the id is not recognised
|
| 255 |
+
"""
|
| 256 |
+
try:
|
| 257 |
+
return self._dom_th_relation[id]
|
| 258 |
+
except KeyError:
|
| 259 |
+
UnknownParameterException(f'identifier {id} not found')
|
| 260 |
+
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
# todo code usage check
|
| 264 |
+
def get_id_th(self, id:str):
|
| 265 |
+
"""
|
| 266 |
+
retrieve the microthesaurus categories for a given eurovoc identifier
|
| 267 |
+
:param id the identifier to use, string
|
| 268 |
+
:return a set of strings containing the label for the provided id or None if the id is not recognized
|
| 269 |
+
|
| 270 |
+
:thow UnknownParameterException if the id is not recognised
|
| 271 |
+
"""
|
| 272 |
+
try:
|
| 273 |
+
return self._id_th_relation[id]
|
| 274 |
+
except KeyError:
|
| 275 |
+
raise UnknownParameterException(f"identifier {id} not found")
|
| 276 |
+
|
| 277 |
+
|
| 278 |
+
|
| 279 |
+
# todo code usage check
|
| 280 |
+
def get_th_id(self, id:str):
|
| 281 |
+
"""
|
| 282 |
+
retrieve the eurovoc classification id related to the given michortesaurus value
|
| 283 |
+
:param id the identifier to use, string
|
| 284 |
+
:return a set of string ids, possibly empty
|
| 285 |
+
|
| 286 |
+
:thow UnknownParameterException if the id is not recognised
|
| 287 |
+
"""
|
| 288 |
+
try:
|
| 289 |
+
return self._th_id_relation[id]
|
| 290 |
+
except KeyError:
|
| 291 |
+
UnknownParameterException(f'identifier {id} not found')
|
| 292 |
+
|
| 293 |
+
|
| 294 |
+
|
| 295 |
+
def get_dom_id(self, id:str):
|
| 296 |
+
"""retrieve all the eurovoc ids under a certain domain
|
| 297 |
+
|
| 298 |
+
:param str id: domain identifier
|
| 299 |
+
:return: set of eurovoc identifiers
|
| 300 |
+
"""
|
| 301 |
+
ths = self.get_dom_th(id)
|
| 302 |
+
ids_to_merge = [self.get_th_id(th_id) for th_id in ths]
|
| 303 |
+
return set().union(*ids_to_merge)
|
| 304 |
+
|
| 305 |
+
|
| 306 |
+
|
| 307 |
+
def get_id_dom(self, id:str):
|
| 308 |
+
"""retrieve the domains associated to a certain eurovoc identifier
|
| 309 |
+
|
| 310 |
+
:param str id: eurovoc identifier
|
| 311 |
+
:return : set of eurovoc domains
|
| 312 |
+
"""
|
| 313 |
+
ths = self.get_id_th(id)
|
| 314 |
+
return {self.get_th_dom(th_id) for th_id in ths}
|
| 315 |
+
|
| 316 |
+
|
| 317 |
+
@staticmethod
|
| 318 |
+
def get_available_languages():
|
| 319 |
+
"""
|
| 320 |
+
:return a list with the strings corrresponfing to available languages
|
| 321 |
+
"""
|
| 322 |
+
with open(path.join(path.dirname(path.realpath(__file__)), "eurovoc_xml/language.xml")) as f:
|
| 323 |
+
languages_tree = ET.parse(f)
|
| 324 |
+
|
| 325 |
+
languages = [language.find('LIBELLE').text for language in languages_tree.getroot()]
|
| 326 |
+
|
| 327 |
+
return languages
|
| 328 |
+
|
| 329 |
+
|
| 330 |
+
|
| 331 |
+
def get_id_number(self):
|
| 332 |
+
"""
|
| 333 |
+
:return the number of ids
|
| 334 |
+
"""
|
| 335 |
+
return len(self.get_ids())
|
| 336 |
+
|
| 337 |
+
|
| 338 |
+
|
| 339 |
+
def get_label(self, id:str):
|
| 340 |
+
"""
|
| 341 |
+
retrieve the label for a give identifier
|
| 342 |
+
:param id the identifier to use, string
|
| 343 |
+
:return a string containing the label for the provided id or None if the id is not recognized
|
| 344 |
+
|
| 345 |
+
:thow UnknownParameterException if the id is not recognised
|
| 346 |
+
"""
|
| 347 |
+
try:
|
| 348 |
+
return self._labels_dic[id]
|
| 349 |
+
except KeyError:
|
| 350 |
+
UnknownParameterException(f'identifier {id} not found')
|
| 351 |
+
|
| 352 |
+
|
| 353 |
+
|
| 354 |
+
def get_broader_ids(self, id:str):
|
| 355 |
+
"""
|
| 356 |
+
:param id: a string of the searched id
|
| 357 |
+
:return the set of immediately broader terms for the given id possibly empty
|
| 358 |
+
"""
|
| 359 |
+
try:
|
| 360 |
+
return self._relation_bt[id]
|
| 361 |
+
except KeyError:
|
| 362 |
+
return {}
|
| 363 |
+
|
| 364 |
+
def get_narrower_ids(self, id:str):
|
| 365 |
+
"""
|
| 366 |
+
:param id: a string of the searched id
|
| 367 |
+
:return the set of immediately broader terms for the given id possibly empty
|
| 368 |
+
"""
|
| 369 |
+
try:
|
| 370 |
+
return self._relation_nt[id]
|
| 371 |
+
except KeyError:
|
| 372 |
+
return {}
|
| 373 |
+
|
| 374 |
+
|
| 375 |
+
def project_to_top_level(self, id):
|
| 376 |
+
""" utility to "project" eurovoc classifiers to the top level (remenmenr this is NOT a tree, but rather a DAG)
|
| 377 |
+
"""
|
| 378 |
+
assert id in self.get_ids()
|
| 379 |
+
|
| 380 |
+
if self.is_top_level(id):
|
| 381 |
+
return {id}
|
| 382 |
+
|
| 383 |
+
to_project = {id}
|
| 384 |
+
projected = set()
|
| 385 |
+
|
| 386 |
+
while to_project != set():
|
| 387 |
+
id_to_be_processed = to_project.pop()
|
| 388 |
+
for id in self.get_broader_ids(id_to_be_processed):
|
| 389 |
+
if self.is_top_level(id):
|
| 390 |
+
projected.add(id)
|
| 391 |
+
else:
|
| 392 |
+
to_project.add(id)
|
| 393 |
+
|
| 394 |
+
return projected
|
| 395 |
+
|
| 396 |
+
|
| 397 |
+
def project_to_top_level_multiple(self, ids):
|
| 398 |
+
""" project to top level all the ids in a given set
|
| 399 |
+
"""
|
| 400 |
+
return set().union(*[self.project_to_top_level(id) for id in ids])
|
| 401 |
+
|
| 402 |
+
|
| 403 |
+
|
| 404 |
+
def get_all_broader_ids(self, id:str):
|
| 405 |
+
"""
|
| 406 |
+
:param id: a string of the searched id
|
| 407 |
+
:retrun the set of all the ids that are broader (i.e. higher in the hierarchy) for the given id
|
| 408 |
+
"""
|
| 409 |
+
try:
|
| 410 |
+
broader_ids = self.get_broader_ids(id)
|
| 411 |
+
|
| 412 |
+
return_ids = set().union(broader_ids)
|
| 413 |
+
|
| 414 |
+
for b_id in broader_ids:
|
| 415 |
+
|
| 416 |
+
return_ids = return_ids.union(self.get_all_broader_ids(b_id))
|
| 417 |
+
|
| 418 |
+
return return_ids
|
| 419 |
+
|
| 420 |
+
except KeyError:
|
| 421 |
+
return {}
|
| 422 |
+
|
| 423 |
+
|
| 424 |
+
def convert_ids_from_to(self, ids, input_level, target_level):
|
| 425 |
+
if input_level=='eurovoc_dom' and target_level=='eurovoc_th':
|
| 426 |
+
ids_to_merge = [self.get_dom_th(dom) for dom in ids]
|
| 427 |
+
return set().union(*ids_to_merge)
|
| 428 |
+
|
| 429 |
+
elif input_level=='eurovoc_dom' and target_level=='eurovoc_classifiers':
|
| 430 |
+
ids_to_merge = [self.get_dom_id(dom) for dom in ids]
|
| 431 |
+
return set().union(*ids_to_merge)
|
| 432 |
+
|
| 433 |
+
elif input_level=='eurovoc_th' and target_level=='eurovoc_dom':
|
| 434 |
+
return {self.get_th_dom(th) for th in ids}
|
| 435 |
+
|
| 436 |
+
elif input_level=='eurovoc_th' and target_level=='eurovoc_classifiers':
|
| 437 |
+
ids_to_merge = [self.get_th_id(th) for th in ids]
|
| 438 |
+
return set().union(*ids_to_merge)
|
| 439 |
+
|
| 440 |
+
elif input_level=='eurovoc_classifiers' and target_level=='eurovoc_dom':
|
| 441 |
+
ids_to_merge = [self.get_id_dom(id) for id in ids]
|
| 442 |
+
return set().union(*ids_to_merge)
|
| 443 |
+
|
| 444 |
+
elif input_level=='eurovoc_classifiers' and target_level=='eurovoc_th':
|
| 445 |
+
ids_to_merge = [self.get_id_th(id) for id in ids]
|
| 446 |
+
return set().union(*ids_to_merge)
|
| 447 |
+
|
| 448 |
+
else:
|
| 449 |
+
raise Exception(f"Invalid conversion from {input_level} to {target_level}")
|
| 450 |
+
|
| 451 |
+
|
| 452 |
+
class UnknownParameterException(Exception):
|
| 453 |
+
def __init__(self, message):
|
| 454 |
+
self.message = message
|
| 455 |
+
|
| 456 |
+
|
| 457 |
+
|
| 458 |
+
#it may also be possible to get terms that are related to another
|
| 459 |
+
#but I'm not sure whether it may be usefull or not
|
| 460 |
+
|
libs/eurovoc/__init__.py
ADDED
|
File without changes
|
libs/eurovoc/eurovoc_xml/desc_bg.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_bs.xml
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!DOCTYPE DESCRIPTEUR
|
| 3 |
+
SYSTEM "descripteur.dtd">
|
| 4 |
+
<DESCRIPTEUR LNG="bs" VERSION="4.17"><RECORD><DESCRIPTEUR_ID>933</DESCRIPTEUR_ID><LIBELLE>financijska godina</LIBELLE></RECORD></DESCRIPTEUR>
|
libs/eurovoc/eurovoc_xml/desc_cs.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_da.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_de.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_el.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_en.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_es.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_et.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_fi.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_fr.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_ga.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_hr.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_hu.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_it.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_lt.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_lv.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_mk.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_mt.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_nl.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_no.xml
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!DOCTYPE DESCRIPTEUR
|
| 3 |
+
SYSTEM "descripteur.dtd">
|
| 4 |
+
<DESCRIPTEUR LNG="no" VERSION="4.17"><RECORD><DESCRIPTEUR_ID>1123</DESCRIPTEUR_ID><LIBELLE>fusjon</LIBELLE></RECORD><RECORD><DESCRIPTEUR_ID>1856</DESCRIPTEUR_ID><LIBELLE>veterinærmedisin</LIBELLE></RECORD><RECORD><DESCRIPTEUR_ID>1913</DESCRIPTEUR_ID><LIBELLE>tvangsmigrasjon</LIBELLE></RECORD><RECORD><DESCRIPTEUR_ID>3862</DESCRIPTEUR_ID><LIBELLE>administrativ sanksjon</LIBELLE></RECORD><RECORD><DESCRIPTEUR_ID>392</DESCRIPTEUR_ID><LIBELLE>utgift</LIBELLE></RECORD><RECORD><DESCRIPTEUR_ID>950</DESCRIPTEUR_ID><LIBELLE>uttransportering</LIBELLE></RECORD><RECORD><DESCRIPTEUR_ID>c_25e0bb6d</DESCRIPTEUR_ID><LIBELLE>termalvann</LIBELLE></RECORD><RECORD><DESCRIPTEUR_ID>c_d701b19c</DESCRIPTEUR_ID><LIBELLE>skadegjører</LIBELLE></RECORD></DESCRIPTEUR>
|
libs/eurovoc/eurovoc_xml/desc_pl.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_pt.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_ro.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_sk.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_sl.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_sq.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_sr.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_sv.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_thes.xml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
libs/eurovoc/eurovoc_xml/desc_tr.xml
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!DOCTYPE DESCRIPTEUR
|
| 3 |
+
SYSTEM "descripteur.dtd">
|
| 4 |
+
<DESCRIPTEUR LNG="tr" VERSION="4.17"><RECORD><DESCRIPTEUR_ID>388</DESCRIPTEUR_ID><LIBELLE>Euratom Tedarik Ajansı</LIBELLE></RECORD><RECORD><DESCRIPTEUR_ID>c_25e0bb6d</DESCRIPTEUR_ID><LIBELLE>termal su</LIBELLE></RECORD></DESCRIPTEUR>
|
libs/eurovoc/eurovoc_xml/descripteur.dtd
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!-- DTD for the Concepts and their PT in the language DESCRIPTEUR/@LNG -->
|
| 2 |
+
<!ELEMENT DESCRIPTEUR (RECORD+)>
|
| 3 |
+
<!ATTLIST DESCRIPTEUR
|
| 4 |
+
LNG CDATA #REQUIRED
|
| 5 |
+
VERSION CDATA #REQUIRED >
|
| 6 |
+
<!-- version is the EUROVOC release number; LNG is the language of the PT (LIBELLE) in the document instance -->
|
| 7 |
+
|
| 8 |
+
<!ELEMENT RECORD (DESCRIPTEUR_ID, LIBELLE, DEF?)>
|
| 9 |
+
<!-- Each record contains
|
| 10 |
+
- one concept ID (ev:ThesaurusConcept/dc:identifier)
|
| 11 |
+
- its PT [LIBELLE]
|
| 12 |
+
- the occasional definition note with that PT [DEF]
|
| 13 |
+
-->
|
| 14 |
+
|
| 15 |
+
<!ELEMENT DESCRIPTEUR_ID (#PCDATA)><!-- ev:ThesaurusConcept/dc:identifer -->
|
| 16 |
+
<!-- The concept identifier
|
| 17 |
+
ev:ThesaurusConcept/dc:identifer
|
| 18 |
+
-->
|
| 19 |
+
<!ELEMENT LIBELLE (#PCDATA)>
|
| 20 |
+
<!-- the PT of the concept
|
| 21 |
+
ev:ThesaurusConcept/xl:prefLabel/xl:literalForm[@xml:lang = /DESCRIPTEUR/@LNG]
|
| 22 |
+
|
| 23 |
+
Each PT
|
| 24 |
+
- must appear in the alphabetic index of that language.
|
| 25 |
+
- if the concept is a country with a country code, the country code must be given in the index (descripteur_thesaurus_pdf.dtd) - ??
|
| 26 |
+
- must list the micro thesaurus (descripteur_thesaurus_pdf.dtd and thesaurus.dtd) - MT
|
| 27 |
+
- must list the occasional socpe notes in that language (scope_note_pdf.dtd) - SN
|
| 28 |
+
- must list the occasional history notes in that language (scope_note_pdf.dtd) - HN
|
| 29 |
+
- must list the occasional definition notes in that language (DEF) - DEF
|
| 30 |
+
- must list the occasional synonyms (used_for_pdf.dtd) - UF
|
| 31 |
+
- must list the occasional compound synonyms (compound_non_pt.dtd) - UF+
|
| 32 |
+
- must list the associative relations (relation_rt.dtd) language independent (use PT) - RT
|
| 33 |
+
- must list the hierarchical narrower relations (inverse of relation_bt.dtd) language independent (use PT) - NT
|
| 34 |
+
- must list the occasional use-instead concept (relation_ui_pdf.dtd) language independent - UI
|
| 35 |
+
-->
|
| 36 |
+
<!ATTLIST LIBELLE
|
| 37 |
+
FORM (fullname | shortname | acronym) #IMPLIED>
|
| 38 |
+
<!-- occasional indication of the form of a term -->
|
| 39 |
+
|
| 40 |
+
<!ELEMENT DEF (#PCDATA)>
|
| 41 |
+
<!-- string(ev:ThesaurusConcept/xl:prefLabel[ev:language = /DESCRIPTEUR/@LNG]/skos:definition) -->
|
libs/eurovoc/eurovoc_xml/descripteur_thesaurus.dtd
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!-- DTD for the language independent Concept-MicroThesaurus relation -->
|
| 2 |
+
<!ELEMENT DESCRIPTEUR_THESAURUS (RECORD+)>
|
| 3 |
+
<!ATTLIST DESCRIPTEUR_THESAURUS
|
| 4 |
+
VERSION CDATA #REQUIRED >
|
| 5 |
+
<!-- version is the EUROVOC release number -->
|
| 6 |
+
|
| 7 |
+
<!ELEMENT RECORD (THESAURUS_ID, DESCRIPTEUR_ID, TOPTERM)>
|
| 8 |
+
<!-- Each record lists a concept and relates it to 1 micro thesaurus and to one top term
|
| 9 |
+
a concept may appear multiple times because it can be under more than 1 top term or in more than 1 micro thesaurus
|
| 10 |
+
|
| 11 |
+
ev:ThesaurusConcept
|
| 12 |
+
-->
|
| 13 |
+
|
| 14 |
+
<!ELEMENT THESAURUS_ID (#PCDATA)>
|
| 15 |
+
<!-- The identifier of the micor thesaurus
|
| 16 |
+
ev:ThesaurusConcept[skos:inScheme = ev:MicroThesaurus]/dc:identifier
|
| 17 |
+
-->
|
| 18 |
+
|
| 19 |
+
<!ELEMENT DESCRIPTEUR_ID (#PCDATA)>
|
| 20 |
+
<!-- The identifier of a concept
|
| 21 |
+
ev:ThesaurusConcept[skos:inScheme = THESAURUS_ID]/dc:identifer
|
| 22 |
+
-->
|
| 23 |
+
<!ATTLIST DESCRIPTEUR_ID
|
| 24 |
+
COUNTRY (yes | no) 'no'
|
| 25 |
+
ISO_COUNTRY_CODE CDATA #IMPLIED >
|
| 26 |
+
<!--
|
| 27 |
+
If the concept is (or was) a country, the attribute country must be set to 'yes'
|
| 28 |
+
If the country has an ISO country code, the country code must be given by the attribute ISO_COUNTRY_CODE (upper case)
|
| 29 |
+
The country code is a synonym in special characteristic for all languages
|
| 30 |
+
-->
|
| 31 |
+
|
| 32 |
+
<!ELEMENT TOPTERM (#PCDATA)>
|
| 33 |
+
<!-- The identifier of a top concept of the microthesaurus
|
| 34 |
+
|
| 35 |
+
ev:MicroThesaurus/skos:/hasTopConcept[skos:narrowerThransitive = DESCRIPTEUR_ID][skos:inScheme = THESAURUS_ID]/dc:identifer
|
| 36 |
+
-->
|
libs/eurovoc/eurovoc_xml/dom_bg.xml
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!DOCTYPE DOMAINES
|
| 3 |
+
SYSTEM "domaine.dtd">
|
| 4 |
+
<DOMAINES LNG="bg" VERSION="4.17"><RECORD><DOMAINE_ID>04</DOMAINE_ID><LIBELLE>ПОЛИТИКА</LIBELLE></RECORD><RECORD><DOMAINE_ID>08</DOMAINE_ID><LIBELLE>МЕЖДУНАРОДНИ ОТНОШЕНИЯ</LIBELLE></RECORD><RECORD><DOMAINE_ID>10</DOMAINE_ID><LIBELLE>ЕВРОПЕЙСКИ СЪЮЗ</LIBELLE></RECORD><RECORD><DOMAINE_ID>12</DOMAINE_ID><LIBELLE>ПРАВО</LIBELLE></RECORD><RECORD><DOMAINE_ID>16</DOMAINE_ID><LIBELLE>ИКОНОМИКА</LIBELLE></RECORD><RECORD><DOMAINE_ID>20</DOMAINE_ID><LIBELLE>ТЪРГОВИЯ</LIBELLE></RECORD><RECORD><DOMAINE_ID>24</DOMAINE_ID><LIBELLE>ФИНАНСИ</LIBELLE></RECORD><RECORD><DOMAINE_ID>28</DOMAINE_ID><LIBELLE>СОЦИАЛНИ ВЪПРОСИ</LIBELLE></RECORD><RECORD><DOMAINE_ID>32</DOMAINE_ID><LIBELLE>ОБРАЗОВАНИЕ И КОМУНИКАЦИИ</LIBELLE></RECORD><RECORD><DOMAINE_ID>36</DOMAINE_ID><LIBELLE>НАУКА</LIBELLE></RECORD><RECORD><DOMAINE_ID>40</DOMAINE_ID><LIBELLE>БИЗНЕС И КОНКУРЕНЦИЯ</LIBELLE></RECORD><RECORD><DOMAINE_ID>44</DOMAINE_ID><LIBELLE>РАБОТА И УСЛОВИЯ НА ТРУД</LIBELLE></RECORD><RECORD><DOMAINE_ID>48</DOMAINE_ID><LIBELLE>ТРАНСПОРТ</LIBELLE></RECORD><RECORD><DOMAINE_ID>52</DOMAINE_ID><LIBELLE>ОКОЛНА СРЕДА</LIBELLE></RECORD><RECORD><DOMAINE_ID>56</DOMAINE_ID><LIBELLE>ЗЕМЕДЕЛИЕ, ГОРСКО СТОПАНСТВО И РИБАРСТВО</LIBELLE></RECORD><RECORD><DOMAINE_ID>60</DOMAINE_ID><LIBELLE>ХРАНИТЕЛНО-ВКУСОВА ПРОМИШЛЕНОСТ</LIBELLE></RECORD><RECORD><DOMAINE_ID>64</DOMAINE_ID><LIBELLE>ПРОИЗВОДСТВО, ТЕХНОЛОГИИ И НАУЧНИ ИЗСЛЕДВАНИЯ</LIBELLE></RECORD><RECORD><DOMAINE_ID>66</DOMAINE_ID><LIBELLE>ЕНЕРГЕТИКА</LIBELLE></RECORD><RECORD><DOMAINE_ID>68</DOMAINE_ID><LIBELLE>ПРОМИШЛЕНОСТ</LIBELLE></RECORD><RECORD><DOMAINE_ID>72</DOMAINE_ID><LIBELLE>ГЕОГРАФИЯ</LIBELLE></RECORD><RECORD><DOMAINE_ID>76</DOMAINE_ID><LIBELLE>МЕЖДУНАРОДНИ ОРГАНИЗАЦИИ</LIBELLE></RECORD></DOMAINES>
|
libs/eurovoc/eurovoc_xml/dom_cs.xml
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!DOCTYPE DOMAINES
|
| 3 |
+
SYSTEM "domaine.dtd">
|
| 4 |
+
<DOMAINES LNG="cs" VERSION="4.17"><RECORD><DOMAINE_ID>04</DOMAINE_ID><LIBELLE>POLITICKÝ ŽIVOT</LIBELLE></RECORD><RECORD><DOMAINE_ID>08</DOMAINE_ID><LIBELLE>MEZINÁRODNÍ VZTAHY</LIBELLE></RECORD><RECORD><DOMAINE_ID>10</DOMAINE_ID><LIBELLE>EVROPSKÁ UNIE</LIBELLE></RECORD><RECORD><DOMAINE_ID>12</DOMAINE_ID><LIBELLE>PRÁVO</LIBELLE></RECORD><RECORD><DOMAINE_ID>16</DOMAINE_ID><LIBELLE>EKONOMIKA</LIBELLE></RECORD><RECORD><DOMAINE_ID>20</DOMAINE_ID><LIBELLE>OBCHOD</LIBELLE></RECORD><RECORD><DOMAINE_ID>24</DOMAINE_ID><LIBELLE>FINANČNICTVÍ</LIBELLE></RECORD><RECORD><DOMAINE_ID>28</DOMAINE_ID><LIBELLE>SOCIÁLNÍ OTÁZKY</LIBELLE></RECORD><RECORD><DOMAINE_ID>32</DOMAINE_ID><LIBELLE>VZDĚLÁVÁNÍ A KOMUNIKACE</LIBELLE></RECORD><RECORD><DOMAINE_ID>36</DOMAINE_ID><LIBELLE>VĚDA</LIBELLE></RECORD><RECORD><DOMAINE_ID>40</DOMAINE_ID><LIBELLE>PODNIKÁNÍ A HOSPODÁŘSKÁ SOUTĚŽ</LIBELLE></RECORD><RECORD><DOMAINE_ID>44</DOMAINE_ID><LIBELLE>ZAMĚSTNANOST A PRÁCE</LIBELLE></RECORD><RECORD><DOMAINE_ID>48</DOMAINE_ID><LIBELLE>DOPRAVA</LIBELLE></RECORD><RECORD><DOMAINE_ID>52</DOMAINE_ID><LIBELLE>ŽIVOTNÍ PROSTŘEDÍ</LIBELLE></RECORD><RECORD><DOMAINE_ID>56</DOMAINE_ID><LIBELLE>ZEMĚDĚLSTVÍ, LESNICTVÍ A RYBÁŘSTVÍ</LIBELLE></RECORD><RECORD><DOMAINE_ID>60</DOMAINE_ID><LIBELLE>ZEMĚDĚLSTVÍ A VÝŽIVA</LIBELLE></RECORD><RECORD><DOMAINE_ID>64</DOMAINE_ID><LIBELLE>VÝROBA, TECHNOLOGIE A VÝZKUM</LIBELLE></RECORD><RECORD><DOMAINE_ID>66</DOMAINE_ID><LIBELLE>ENERGETIKA</LIBELLE></RECORD><RECORD><DOMAINE_ID>68</DOMAINE_ID><LIBELLE>PRŮMYSL</LIBELLE></RECORD><RECORD><DOMAINE_ID>72</DOMAINE_ID><LIBELLE>GEOGRAFIE</LIBELLE></RECORD><RECORD><DOMAINE_ID>76</DOMAINE_ID><LIBELLE>MEZINÁRODNÍ ORGANIZACE</LIBELLE></RECORD></DOMAINES>
|
libs/eurovoc/eurovoc_xml/dom_da.xml
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!DOCTYPE DOMAINES
|
| 3 |
+
SYSTEM "domaine.dtd">
|
| 4 |
+
<DOMAINES LNG="da" VERSION="4.17"><RECORD><DOMAINE_ID>04</DOMAINE_ID><LIBELLE>POLITIK</LIBELLE></RECORD><RECORD><DOMAINE_ID>08</DOMAINE_ID><LIBELLE>INTERNATIONALE RELATIONER</LIBELLE></RECORD><RECORD><DOMAINE_ID>10</DOMAINE_ID><LIBELLE>DEN EUROPÆISKE UNION</LIBELLE></RECORD><RECORD><DOMAINE_ID>12</DOMAINE_ID><LIBELLE>LOVBESTEMMELSER</LIBELLE></RECORD><RECORD><DOMAINE_ID>16</DOMAINE_ID><LIBELLE>ØKONOMI</LIBELLE></RECORD><RECORD><DOMAINE_ID>20</DOMAINE_ID><LIBELLE>ØKONOMISK OG HANDELSMÆSSIGT SAMKVEM</LIBELLE></RECORD><RECORD><DOMAINE_ID>24</DOMAINE_ID><LIBELLE>FINANSER</LIBELLE></RECORD><RECORD><DOMAINE_ID>28</DOMAINE_ID><LIBELLE>SOCIALE SPØRGSMÅL</LIBELLE></RECORD><RECORD><DOMAINE_ID>32</DOMAINE_ID><LIBELLE>UDDANNELSE OG KOMMUNIKATION</LIBELLE></RECORD><RECORD><DOMAINE_ID>36</DOMAINE_ID><LIBELLE>VIDENSKAB</LIBELLE></RECORD><RECORD><DOMAINE_ID>40</DOMAINE_ID><LIBELLE>VIRKSOMHEDER OG KONKURRENCE</LIBELLE></RECORD><RECORD><DOMAINE_ID>44</DOMAINE_ID><LIBELLE>ARBEJDE OG BESKÆFTIGELSE</LIBELLE></RECORD><RECORD><DOMAINE_ID>48</DOMAINE_ID><LIBELLE>TRANSPORT</LIBELLE></RECORD><RECORD><DOMAINE_ID>52</DOMAINE_ID><LIBELLE>MILJØ</LIBELLE></RECORD><RECORD><DOMAINE_ID>56</DOMAINE_ID><LIBELLE>LANDBRUG, SKOVBRUG OG FISKERI</LIBELLE></RECORD><RECORD><DOMAINE_ID>60</DOMAINE_ID><LIBELLE>LANDBRUGSVAREINDUSTRI</LIBELLE></RECORD><RECORD><DOMAINE_ID>64</DOMAINE_ID><LIBELLE>PRODUKTION, TEKNOLOGI OG FORSKNING</LIBELLE></RECORD><RECORD><DOMAINE_ID>66</DOMAINE_ID><LIBELLE>ENERGI</LIBELLE></RECORD><RECORD><DOMAINE_ID>68</DOMAINE_ID><LIBELLE>INDUSTRI</LIBELLE></RECORD><RECORD><DOMAINE_ID>72</DOMAINE_ID><LIBELLE>GEOGRAFI</LIBELLE></RECORD><RECORD><DOMAINE_ID>76</DOMAINE_ID><LIBELLE>INTERNATIONALE ORGANISATIONER</LIBELLE></RECORD></DOMAINES>
|
libs/eurovoc/eurovoc_xml/dom_de.xml
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!DOCTYPE DOMAINES
|
| 3 |
+
SYSTEM "domaine.dtd">
|
| 4 |
+
<DOMAINES LNG="de" VERSION="4.17"><RECORD><DOMAINE_ID>04</DOMAINE_ID><LIBELLE>POLITISCHES LEBEN</LIBELLE></RECORD><RECORD><DOMAINE_ID>08</DOMAINE_ID><LIBELLE>INTERNATIONALE BEZIEHUNGEN</LIBELLE></RECORD><RECORD><DOMAINE_ID>10</DOMAINE_ID><LIBELLE>EUROPÄISCHE UNION</LIBELLE></RECORD><RECORD><DOMAINE_ID>12</DOMAINE_ID><LIBELLE>RECHT</LIBELLE></RECORD><RECORD><DOMAINE_ID>16</DOMAINE_ID><LIBELLE>WIRTSCHAFT</LIBELLE></RECORD><RECORD><DOMAINE_ID>20</DOMAINE_ID><LIBELLE>HANDEL</LIBELLE></RECORD><RECORD><DOMAINE_ID>24</DOMAINE_ID><LIBELLE>FINANZWESEN</LIBELLE></RECORD><RECORD><DOMAINE_ID>28</DOMAINE_ID><LIBELLE>SOZIALE FRAGEN</LIBELLE></RECORD><RECORD><DOMAINE_ID>32</DOMAINE_ID><LIBELLE>BILDUNG UND KOMMUNIKATION</LIBELLE></RECORD><RECORD><DOMAINE_ID>36</DOMAINE_ID><LIBELLE>WISSENSCHAFTEN</LIBELLE></RECORD><RECORD><DOMAINE_ID>40</DOMAINE_ID><LIBELLE>UNTERNEHMEN UND WETTBEWERB</LIBELLE></RECORD><RECORD><DOMAINE_ID>44</DOMAINE_ID><LIBELLE>BESCHÄFTIGUNG UND ARBEITSBEDINGUNGEN</LIBELLE></RECORD><RECORD><DOMAINE_ID>48</DOMAINE_ID><LIBELLE>VERKEHR</LIBELLE></RECORD><RECORD><DOMAINE_ID>52</DOMAINE_ID><LIBELLE>UMWELT</LIBELLE></RECORD><RECORD><DOMAINE_ID>56</DOMAINE_ID><LIBELLE>LAND- UND FORSTWIRTSCHAFT, FISCHEREI</LIBELLE></RECORD><RECORD><DOMAINE_ID>60</DOMAINE_ID><LIBELLE>AGRARERZEUGNISSE UND LEBENSMITTEL</LIBELLE></RECORD><RECORD><DOMAINE_ID>64</DOMAINE_ID><LIBELLE>PRODUKTION, TECHNOLOGIE UND FORSCHUNG</LIBELLE></RECORD><RECORD><DOMAINE_ID>66</DOMAINE_ID><LIBELLE>ENERGIE</LIBELLE></RECORD><RECORD><DOMAINE_ID>68</DOMAINE_ID><LIBELLE>INDUSTRIE</LIBELLE></RECORD><RECORD><DOMAINE_ID>72</DOMAINE_ID><LIBELLE>GEOGRAFIE</LIBELLE></RECORD><RECORD><DOMAINE_ID>76</DOMAINE_ID><LIBELLE>INTERNATIONALE ORGANISATIONEN</LIBELLE></RECORD></DOMAINES>
|