Selaa lähdekoodia

analisi codice e documentazione endpoint

kora 6 kuukautta sitten
vanhempi
commit
9efeba1b98

+ 0 - 15
flask_be/DTOs/simple_get_query-request.json

@@ -1,15 +0,0 @@
-{
-    "queryList": [
-        {
-            "stringa": "__String__",
-            "espansa": "__Number__",
-            "raddoppiata": "__Number__",
-            "tipo": "__String__"
-        }
-    ],
-    "cooccorrenze": {
-        "distanza": "__String__",
-        "stesso_periodo": "__Number__",
-        "ordinate": "__Number__"
-    }
-}

+ 22 - 0
flask_be/doc/dubbi_bug_e_desiderata.txt

@@ -0,0 +1,22 @@
+FE (tutti a bassa priorità):
+    1. Checkbox 'Mostra Lemmi': nella ricerca per lemmi dovrebbe diventare 'Mostra Forme Associate'.
+    2. Nella ricerca di contesti (multipli), i valori di 'selected' nella richiesta sono sempre True invece di riflettere la selezione utente.
+    3. La chiamata a get_single_context prevede alcuni 'params' che non sembrano essere selezionabili da interfaccia, sono probabilmente hard-coded?
+
+
+BE:
+    1. Riguardare funzionamento e efficienza della ricerca per cooccorrenze (DURA!).
+    2. Terminare l'implementazione della de-pandizzazione.
+    3. simple_get_query: è splittabile nelle due funzionalità (occorrenze semplici vs. cooccorrenze)?
+    4. La struttura della request a get_single_context ricalca (nella prima parte, 'elem') quella della response a get_context. Forse questo è troppo complicato / troppo accoppiato?
+    5. Come è selezionata la larghezza di un contesto? Rivedere.
+    6. Gestione della ricerca diretta di contesti dopo aver cercato cooccorrenze (flusso diverso rispetto alla ricerca semplice): si può gestire diversamente?
+    7. 'pag' nella response di get_context: è un numero formattato come stringa...
+    8. La tipizzazione di alcuni parametri in request e/o response nei vari endpoint pare dubbia; i dubbi sono segnalati da una (?) nello yaml. Ricontrollare?
+    9. Alcune funzionalità previste non sono completamente implementate a BE, ricontrollare (spec. nelle cooccorrenze e nella ricerca dei contesti singoli).
+    10. Nella request alla ricerca di contesti, la chiave 'cod' è ambigua: è il codice di forma o di lemma?
+
+
+Interfaccia H2IOSC (prioritarie!):
+    1. Completare la definizione del documento OpenAPI.
+    2. Creazione del MANIFEST SEMANTICO: in sostanza, incastro tra gli elementi 'atomici' delle varie request e response (in particolare la response di get_context) e gli elementi dell'ontologia dei manoscritti del WP4.

+ 177 - 0
flask_be/doc/endpoints.yaml

@@ -0,0 +1,177 @@
+- /simple_get_query:
+    method: 'POST'
+    description: "Cerca: 1. occorrenze forme e/o lemmi con opzioni; 2. cooccorrenze di 2+ forme e/o lemmi restituendo direttamente anche i loro contesti."
+    input: 
+      queryList:
+        obj_type: "array"
+        element_structure:
+          espansa: "0 | 1"
+          raddoppiata: "0 | 1"
+          stringa": "string"
+          tipo: "forma | lemma | lemmaForma | formLemma"
+    output:
+        obj_type: "array"
+        element_structure_v1:
+          "cod": "number"
+          "forma": "string"
+          "occ": "number"
+        element_structure_v2:
+          "cat_gr": "controlled vocabulary"
+          "cod": "number"
+          "disambiguatore": "string"
+          "lemma": "string"
+          "occ": "number"
+        element_structure_v3:
+          "cat_gr": "controlled vocabulary"
+          "cod": "number"
+          "disambiguatore": "string"
+          "forma": "string"
+          "lemma": "string"
+          "occ": "number"
+        element_structure_v4: "see 'get_context' output"
+    splittable: "MAYBE"
+
+- /get_context:
+    method: 'POST'
+    description: "Ricerca dei contesti di una lista di forme e/o lemmi (--> normalmente selezionati ad interfaccia in base alla risposta ottenuta da una chiamata a simple_get_query)"
+    input:
+      queryList:
+        obj_type: "array"
+        element_structure_v1:
+          "cod": "number"
+          "forma": "string"
+          "occ": "number"
+          "selected": "bool"
+        element_structure_v2:
+          "cat_gr": "controlled vocabulary"
+          "cod": "number"
+          "disambiguatore": "string"
+          "lemma": "string"
+          "occ": "number"
+          "selected": "bool"
+        element_structure_v3:
+          "cat_gr": "controlled vocabulary"
+          "cod": "number"
+          "disambiguatore": "string"
+          "forma": "string"
+          "lemma": "string"
+          "occ": "number"
+          "selected": "bool"
+    output:
+      "Anno finale": "number"
+      "Anno iniziale": "number"
+      "Area generica": "controlled vocabulary (?)"
+      "Area specifica": "controlled vocabulary (?)"
+      "Autore": "string (authority?)"
+      "Curatore": "string (authority?)"
+      "Data codificata": "formatted date"
+      "Data descrittiva": "human-readable date"
+      "Forma": "controlled vocabulary"
+      "Genere": "controlled vocabulary"
+      "IQ": "controlled vocabulary"
+      "Rif_organico": "controlled vocabulary"
+      "Rig_completo": "controlled vocabulary"
+      "Tipo": "controlled vocabulary"
+      "Titolo": "string"
+      "Titolo Abbreviato": "string"
+      "backup_pfin": "number"
+      "backup_piniz": "number"
+      "cat_gr": "controlled vocabulary"
+      "cod": "number"
+      "col": "number"
+      "contesto": "string"
+      "contesto formattato": "string"
+      "disambiguatore": "controlled vocabulary"
+      "elemlen": "number"
+      "formattazione contesto":
+        object_type: "array"
+        element_type: "number"
+      "lemma": "string"
+      "links": "number"
+      "mappa": "number"
+      "ntx": "number"
+      "numbrano": "number"
+      "numorg": "number"
+      "numperiod": "number"
+      "pag": "string (?)"
+      "pfin": "number"
+      "pifin": "number"
+      "piniz": "number"
+      "pitxt": "number"
+      "riga": "number"
+      "sigla": "string"
+      "stanza": "number"
+      "tipostanza": "number"
+      "verso": "number"
+      "vol": "string (?)"
+    splittable: False
+
+- /get_single_context:
+    method: 'POST'
+    description: "Ricerca informazioni aggiuntive per un singolo contesto (--> normalmente selezionato ad  interfaccia tra quelli ottenuti in risposta da una chiamata a get_context)"
+    input:
+      structure:
+        elem: "== get_context output"
+        params:
+          "brani": "0 | 1"
+          "indice": "string (?)"
+          "parole": "number"
+          "periodi": "0 | 1"
+      nota1: "La struttura di 'elem' è forse troppo complicata? Forse andrebbe semplificata e/o disaccoppiata dall'endpoint precedente."
+      nota2: "I params non sono selezionabili da FE inoltre non sono sicuro che abbiano una implementazione corretta a BE."
+    output:
+      "Anno finale": "number"
+      "Anno iniziale": "number"
+      "Area generica": "controlled vocabulary (?)"
+      "Area specifica": "controlled vocabulary (?)"
+      "Autore": "controlled vocabulary (authority?)"
+      "Curatore": "controlled vocabulary (authority?)"
+      "Data codificata": "formatted date"
+      "Data descrittiva": "human-readable date"
+      "Forma": "controlled vocabulary"
+      "Genere": "controlled vocabulary"
+      "IQ": "controlled vocabulary"
+      "Rif_organico": "controlled vocabulary"
+      "Rig_completo": "controlled vocabulary"
+      "Tipo": "controlled vocabulary"
+      "Titolo": "string"
+      "Titolo Abbreviato": "string"
+      "backup_pfin": "number"
+      "backup_piniz": "number"
+      "cat_gr": "controlled vocabulary"
+      "cod": "number"
+      "col": "number"
+      "contesto": "string"
+      "contesto formattato": "string"
+      "disambiguatore": "controlled vocabulary"
+      "elemlen": "number"
+      "formattazione contesto":
+        object_type: "array"
+        element_type: "number"
+      "formattazione testo associato":
+        object_type: "array"
+        element_type: "number"
+      "lemma": "string"
+      "links": "number"
+      "mappa": "number"
+      "ntx": "number"
+      "numbrano": "number"
+      "numorg": "number"
+      "numperiod": "number"
+      "pag": "string (?)"
+      "pfin": "number"
+      "pifin": "number"
+      "piniz": "number"
+      "pitxt": "number"
+      "riga": "number"
+      "sigla": "string"
+      "stanza": "number"
+      "testo associato": "string"
+      "testo associato formattato": "string"
+      "tipostanza": "controlled vocabulary"
+      "verso": "number"
+      "vol": "string"
+    splittable: False
+
+
+