LiDa_Search/js/utils.js

99 lines
6.0 KiB
JavaScript
Raw Normal View History

2021-06-01 11:22:12 +02:00
//query
2022-09-29 14:54:49 +02:00
ontoSparqlQuery=`PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
2021-06-01 11:22:12 +02:00
PREFIX ecrm: <http://erlangen-crm.org/current/>
2022-09-29 14:54:49 +02:00
PREFIX hdn: <http://dantenetwork.it/data/commedia/>
2021-06-01 11:22:12 +02:00
PREFIX lemon: <http://lemon-model.net/lemon#>
2022-09-29 14:54:49 +02:00
PREFIX orl: <http://dantenetwork.it/ontology/ORL/>
2021-06-01 11:22:12 +02:00
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
2022-09-29 14:54:49 +02:00
PREFIX ontolex: <http://www.w3.org/ns/lemon/ontolex#>
PREFIX olires:<https://dantenetwork.it/ontology/OLIRes/>
2021-06-01 11:22:12 +02:00
2022-09-29 14:54:49 +02:00
SELECT (?form as ?IRIForma) ?Rappresentazione (?textver as ?Verso) ?NumVerso (?t_canto as ?Canto) (?t_cantica as ?Cantica)
2021-06-01 11:22:12 +02:00
WHERE {
2022-09-29 14:54:49 +02:00
?fa orl:occurrenceOf ?form;
ecrm:P148i_is_component_of ?ver .
?ver ecrm:P190_Has_Symbolic_Content ?textver;
olires:hasNumber ?NumVerso;
ecrm:P148i_is_component_of ?canto .
?canto ecrm:P102_has_title ?t_canto;
ecrm:P148i_is_component_of ?cantica .
?cantica ecrm:P102_has_title ?t_cantica .
?form ontolex:writtenRep ?Rappresentazione .
2021-06-01 11:22:12 +02:00
FILTER regex(?Rappresentazione,"^farò$","i") .
2022-09-29 14:54:49 +02:00
FILTER langMatches(lang(?Rappresentazione),"it")
2021-06-01 11:22:12 +02:00
}`
2022-09-29 14:54:49 +02:00
function writesparqlquery(query) {
2021-06-01 11:22:12 +02:00
return (query);
}
// write the query in natural language
function writesearchValue(form) {
var strq='il lemma';
var strcategoria='in tutte le categorie'
if (form.oggetto.value=='forma')
strq='la forma';
if (form.categoria.value!='all')
strcategoria='nella categoria '+ form.categoria.value;
return `Cerco: ${strq} ${form.query.value}, ${form.tipo.value}, ${strcategoria}`
}
// the basic initial query is parsed
function gimmespq(){
var SparqlParser = sparqljs.Parser;
var parser = new SparqlParser();
2022-09-29 14:54:49 +02:00
return parser.parse(ontoSparqlQuery);
2021-06-01 11:22:12 +02:00
}
// the query is transformed according the form values
function gimmespqfromjson(form){
const sparqlgen = sparqljs.Generator;
const generator = new sparqlgen({orl: "http://www.w3.org/2000/01/rdf-schema#" })
const parsedquery=gimmespq()
if (form.categoria.value!='all')
parsedquery.where[0].triples.push(JSON.parse(data21)[form.categoria.value]);
if (form.query.value!="")
switch(form.tipo.value) {
case 'parola':
parsedquery.where[1].expression.args[1].value="^"+form.query.value+"$";
break;
case 'sottostringa':
parsedquery.where[1].expression.args[1].value=form.query.value;
break;
case 'prefisso':
parsedquery.where[1].expression.args[1].value=form.query.value;
break;
case 'suffisso':
parsedquery.where[1].expression.args[1].value=form.query.value+"$";
break;
default:
parsedquery.where[1].expression.args[1].value="^"+form.query.value+"$";
};
return generator.stringify(parsedquery);
}
2022-09-29 14:54:49 +02:00
function getStatememts(){
return data21
}
data21 = `{"verbovolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/ontology/ORL/FormaVerboVolgare"}},
"sostantivovolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/ontology/ORL/FormaSostantivoVolgare"}},
"aggettivovolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/ontology/ORL/FormaAggettivoVolgare"}},
"avverbiovolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/ontology/ORL/FormaAvverbioVolgare"}},
"pronomevolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/ontology/ORL/FormaPronomeVolgare"}},
"congiunzionevolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/ontology/ORL/FormaCongiunzioneVolgare"}},
"articolovolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/resource/ORL/FormaArticoloVolgare"}},
"preposizionevolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/resource/ORL/FormaPreposizioneVolgare"}},
"interiezionevolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/resource/ORL/FormaInteriezioneVolgare"}},
"onomasticavolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/resource/ORL/FormaOnomasticaVolgare"}},
"citazionevolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/resource/ORL/FormaCitazioneVolgare"}},
"locuzionevolgare": {"subject": {"termType": "Variable", "value":"form"}, "predicate": {"termType":"NamedNode", "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}, "object": {"termType": "NamedNode", "value": "http://dantenetwork.it/resource/ORL/FormaLocuzioneVolgare"}}
2021-06-01 11:22:12 +02:00
}
`