Francesco 2 年之前
父节点
当前提交
b8b8885ae4
共有 2 个文件被更改,包括 86 次插入44 次删除
  1. 54 38
      js/lettera.js
  2. 32 6
      js/lettera_query.js

+ 54 - 38
js/lettera.js

@@ -62,53 +62,68 @@ function myFunction_b(value, index, array) {
 
 // Esegue le queries
 async function fillPageContents(){
-	val = await doJsonQuery(query1);
-	stringifyResponse(val);
-	val = await doJsonQuery(querySegnatura);
-	stringifyResponse(val);
-	val = await doJsonQuery(queryAreaLinguistica);
-	stringifyResponse(val);
-	val = await doJsonQuery(queryDescrizione);
-	stringifyResponse(val);
-	val = await doJsonQuery(queryTipo);
-	stringifyResponse(val);
-	val = await doJsonQuery(querySiglaOVI);
-	stringifyResponse(val);
-	val = await doJsonQuery(queryTitolo);
-	stringifyResponse(val);
-	val = await doJsonQuery(queryTestoLemmatizzato);
-	stringifyResponse(val);
-	val = await doJsonQuery(queryEdizione);
-	stringifyResponse(val);
-	val = await doJsonQuery(queryRaccolta);
-	stringifyResponse(val);	
-	putValuesInHTML();
+	var out = {};
+	// val = await doJsonQuery(query1);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(querySegnatura);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(queryAreaLinguistica);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(queryDescrizione);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(queryTipo);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(querySiglaOVI);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(queryTitolo);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(queryTestoLemmatizzato);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(queryEdizione);
+	// stringifyResponse(val);
+	// val = await doJsonQuery(queryRaccolta);
+	// stringifyResponse(val);
+	out.toponimi = await doJsonQuery(queryToponimo);
+	//putValuesInHTML();
+	console.log("PROT", Object.getPrototypeOf(out));
+	var strunz = new Strunz();
+	console.log("str", Object.getPrototypeOf(strunz));
+	return out;
+}
+
+class Strunz{
+	constructor(){
+		this.puzzo = "";
+		this.merda = "";
+	}
 }
 
 // Con la risposta (stringhificata) delle queries, aggiorna la pagina
 function putValuesInHTML(){
   	//Attention! This is a rough patch-up!
-  	queryString = queryStringOutput.replaceAll("}}{", "},")
-	console.log("Stringified Response:", queryString);
-	queryOutput = JSON.parse(queryString);
+//  	queryString = queryStringOutput.replaceAll("}}{", "},")
+	console.log("Stringified Response:", queryStringOutput);
+	//queryOutput = JSON.parse(queryStringOutput);
+	queryOutput = {};
+
+	console.log('QO', queryOutput2);
   
-	//console.log("Stringified Response:", queryStringOutput);
 	//queryOutput = JSON.parse(queryStringOutput);
 	//
 	// Query buone
 	if(queryOutput.titolo) document.getElementById("title").innerHTML = queryOutput.titolo.value;
-	if(queryOutput.titolo) document.getElementById("mittente_id").innerHTML = queryOutput.mittente.value;
-	if(queryOutput.titolo) document.getElementById("destinatario_id").innerHTML = queryOutput.destinatario.value;
-	if(queryOutput.titolo) document.getElementById("descrizione_id").innerHTML = queryOutput.descrizione.value;
-	if(queryOutput.titolo) document.getElementById("luogo_partenza_id").innerHTML = queryOutput.luogo_partenza.value;
-	if(queryOutput.titolo) document.getElementById("luogo_arrivo_id").innerHTML = queryOutput.luogo_arrivo.value;
-	if(queryOutput.titolo) document.getElementById("data_partenza_id").innerHTML = queryOutput.data_partenza.value;
-	if(queryOutput.titolo) document.getElementById("data_arrivo_id").innerHTML = queryOutput.data_arrivo.value;
-	if(queryOutput.titolo) document.getElementById("lingua_id").innerHTML = queryOutput.lingua.value;
-	if(queryOutput.titolo) document.getElementById("area_linguistica_id").innerHTML = queryOutput.area_linguistica.value;
-	if(queryOutput.titolo) document.getElementById("segnatura_id").innerHTML = queryOutput.segnatura_OVI.value;
-	if(queryOutput.titolo) document.getElementById("edizione_id").innerHTML = queryOutput.edizione.value;
-	if(queryOutput.titolo) document.getElementById("trascrizione_id").innerHTML = queryOutput.testo_lemmatizzato.value;
+	if(queryOutput.mittente) document.getElementById("mittente_id").innerHTML = queryOutput.mittente.value;
+	if(queryOutput.destinatario) document.getElementById("destinatario_id").innerHTML = queryOutput.destinatario.value;
+	if(queryOutput.descrizione) document.getElementById("descrizione_id").innerHTML = queryOutput.descrizione.value;
+	if(queryOutput.luogo_partenza) document.getElementById("luogo_partenza_id").innerHTML = queryOutput.luogo_partenza.value;
+	if(queryOutput.luogo_arrivo) document.getElementById("luogo_arrivo_id").innerHTML = queryOutput.luogo_arrivo.value;
+	if(queryOutput.data_partenza) document.getElementById("data_partenza_id").innerHTML = queryOutput.data_partenza.value;
+	if(queryOutput.data_arrivo) document.getElementById("data_arrivo_id").innerHTML = queryOutput.data_arrivo.value;
+	if(queryOutput.lingua) document.getElementById("lingua_id").innerHTML = queryOutput.lingua.value;
+	if(queryOutput.area_linguistica) document.getElementById("area_linguistica_id").innerHTML = queryOutput.area_linguistica.value;
+	if(queryOutput.segnatura_OVI) document.getElementById("segnatura_id").innerHTML = queryOutput.segnatura_OVI.value;
+	if(queryOutput.edizione) document.getElementById("edizione_id").innerHTML = queryOutput.edizione.value;
+	if(queryOutput.testo_lemmatizzato) document.getElementById("trascrizione_id").innerHTML = queryOutput.testo_lemmatizzato.value;
 	//
 	// Query ancora farlocche
 	
@@ -117,4 +132,5 @@ function putValuesInHTML(){
 }
 
 // Dà il via alle queries + riempimento HTML
-fillPageContents();
+var pageContents = fillPageContents();
+console.log(pageContents);

+ 32 - 6
js/lettera_query.js

@@ -1,5 +1,5 @@
 
-// Raccatto i parametri dall'URL -- mi aspetto un parametro di nome 'link'!
+// Recupero i parametri dall'URL -- mi aspetto un parametro di nome 'link'!
 thisUrlParams = {};
 window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
     thisUrlParams[key] = value;
@@ -8,24 +8,38 @@ console.log('URL get params: ', thisUrlParams);
 
 
 // Funzioni per eseguire le queries
+queryOutput2 = {};
+
+function addResponseToOutput(key, val){
+    resultArray = val['results']['bindings'];
+    queryOutput2[key] = resultArray;
+}
+
 function prepareQueryURL(query){
     sparqlEndpoint = 'http://dev.restore.ovi.cnr.it:8890/sparql/';
     sparqlUrlParams = '?default-graph-uri=&query=' + encodeURIComponent(query) + '&output=json&callback=?';
     return sparqlEndpoint + sparqlUrlParams;
 }
-function doJsonQuery(query){
+
+async function doJsonQuery(query, isUnique = false){
 
     queryURL = prepareQueryURL(query);
 
-    response = $.ajax({//OGGETTO
+    response = await $.ajax({//OGGETTO
 
         url: queryURL,
         dataType: "json",
         success: function (data){},
-        error: function (e) {}
+        error: function (e) {
+            console.log("Exception in query:", e);
+        }
     });
 
-    return response;
+    let out = response['results']['bindings'];
+    if(!isUnique) return out;
+    if(!out.length) throw "Letter not found";
+    if(out.length>1) throw "Ambiguity -- multiple letters matching URI";
+    return out;
 
 }
 
@@ -37,9 +51,10 @@ function stringifyResponse(val){
     for(i = 0; i < resultArray.length; i++){
         out = out + JSON.stringify(resultArray[i])
     }
-    queryStringOutput = (queryStringOutput + out).replace("}{",",");
+    queryStringOutput = (queryStringOutput + out).replaceAll("}{",",");
 }
 
+
 ////////////////////
 // TESTI DELLE QUERY
 ////////////////////
@@ -134,3 +149,14 @@ crm:P2_has_type ?racc_type ; \
 rdfs:label ?raccolta . \
 ?racc_type rdfs:label 'Raccolta'. \
 }"
+
+queryToponimo = prefixes + "SELECT DISTINCT ?link_toponimo ?toponimo \
+WHERE {<" + thisUrlParams.link + "> crm:P67_refers_to ?link_toponimo . \
+?link_toponimo rdfs:label ?toponimo ; \
+crm:P2_has_type 'Toponimo' . \
+}"
+
+queryAntroponimo = prefixes + "SELECT DISTINCT * \
+WHERE {<" + thisUrlParams.link + "> crm:P67_refers_to ?link_antroponimo . \
+?link_antroponimo rdfs:label ?antroponimo; \
+crm:P2_has_type 'Antroponimo'}"