aggiunta logica della GUI nel json, rinominate variabili x i filtri

This commit is contained in:
Luca Trupiano 2022-10-07 19:54:50 +02:00
parent 50b9cd541e
commit 628b1aa225
1 changed files with 45 additions and 38 deletions

View File

@ -248,10 +248,10 @@ $(document).ready(function() {
var sostantivoJson = {
"filtrisostantivo": {
"Numero": ["Singolare", "Plurale"],
"Genere lemma": ["Lemma femminile", "Lemma maschile"],
"Genere forma": ["Forma femminile", "Forma maschile"],
"Genere_lemma": ["Lemma femminile", "Lemma maschile"],
"Genere_forma": ["Forma femminile", "Forma maschile"],
"riflpers": ["In locuzione"],
"Declinazione sostantivo": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"],
"Declinazione_sostantivo": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"],
}
}
@ -260,13 +260,13 @@ $(document).ready(function() {
"Classe": ["1ª", "2ª"],
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Con oggetto indiretto": ["Con oggetto indiretto"],
"Tipo aggettivo": ["Qualsiasi tipo aggettivo", "Qualificativo", "Indefinito", "Interrogativo", "Esclamativo", "Numerale", "Dimostrativo", "Relativo", "Possessivo", "In locuzione"],
"Con_oggetto_indiretto": ["Con oggetto indiretto"],
"Tipo_aggettivo": ["Qualsiasi tipo aggettivo", "Qualificativo", "Indefinito", "Interrogativo", "Esclamativo", "Numerale", "Dimostrativo", "Relativo", "Possessivo", "In locuzione"],
"Grado": ["Qualsiasi grado", "Comparativo di maggioranza", "Comparativo di minoranza", "Comparativo di uguaglianza", "Superlativo relativo", "Superlativo assoluto"],
"Tipo di Complemento": ["Qualsiasi tipo di Complemento", "Introdotto da A", "Introdotto da CON", "Introdotto da CONTRO", "Introdotto da DA", "Introdotto da DI", "Introdotto da IN",
"Tipo_di_Complemento": ["Qualsiasi tipo di Complemento", "Introdotto da A", "Introdotto da CON", "Introdotto da CONTRO", "Introdotto da DA", "Introdotto da DI", "Introdotto da IN",
"Introdotto da PER", "Introdotto da SU", "Introdotto da TRA", "Introdotto da VERSO", "Introdotto da SOPRA",
"Introdotto da SOTTO", "Introdotto da DINANZI", "Introdotto da prep.", "Oggetto ind.", "Ogg. indi. + compl. con DI", "Ogg. ind. pronom."],
"Tipo di frase": ["Qualsiasi tipo di frase", "Con infinito retto da A", "Con infinito retto da DA", "Con infinito retto da DI", "Con infinito retto da PER",
"Tipo_di_frase": ["Qualsiasi tipo di frase", "Con infinito retto da A", "Con infinito retto da DA", "Con infinito retto da DI", "Con infinito retto da PER",
"Con infinito retto da SE", "Con subordinata all'indic.", "Con subordinata al cong.", "In locuzione imp.+infinito",
"In locuzione imp.+che+indic.", "In locuzione imp.+che+cong.", "In locuzione imp.+se+indic.", "In locuzione imp.+se+cong.",
"In locuzione imp.+come+indic.", "In locuzione imp.+quando+indic.", "In locuzione imp.+perché+cong.", "In locuzione imp.+a+infinito"]
@ -277,12 +277,12 @@ $(document).ready(function() {
"filtripronome": {
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Classe/Persona": ["1ª", "2ª", "3ª"],
"Classe_Persona": ["1ª", "2ª", "3ª"],
"Tipo": ["Qualsiasi tipo", "Personale", "Riflessivo", "Interrogativo", "Esclamativo", "Dimostrativo", "Relativo", "Possessivo"],
"Forma (Personali/Riflessivi)": ["Qualsiasi forma (Personali/Riflessivi)", "Libero", "Libero in Composizione", "Proclitico", "Enclitico"],
"Funzione (Personali)": ["Qualsiasi funzione (Personali)", "Libero - soggetto", "Libero - soggetto impersonale", "Libero - complemento", "Libero - rafforzativo",
"Forma_Personali_Riflessivi": ["Qualsiasi forma (Personali-Riflessivi)", "Libero", "Libero in Composizione", "Proclitico", "Enclitico"],
"Funzione_Personali": ["Qualsiasi funzione (Personali)", "Libero - soggetto", "Libero - soggetto impersonale", "Libero - complemento", "Libero - rafforzativo",
"Clitico - accusativo", "Clitico - dativo", "Clitico - partitivo"],
"Tipo (Riflessivi)": ["Qualsiasi tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"]
"Tipo_Riflessivi": ["Qualsiasi tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"]
}
}
@ -304,17 +304,17 @@ $(document).ready(function() {
var preposizioneJson = {
"filtripreposizione": {
"Tipo I": ["Propria", "Impropria"],
"Tipo preposizione": ["Qualsiasi tipo preposizione", "Semplice", "Articolata", "In locuzione", "In locuzione separata"],
"Tipo_I": ["Propria", "Impropria"],
"Tipo_preposizione": ["Qualsiasi tipo preposizione", "Semplice", "Articolata", "In locuzione", "In locuzione separata"],
"Sintassi": ["Qualsiasi sintassi", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Finale",
"Causale", "Concessiva", "Consecutiva", "Temporale", "Modale", "Eccettuativa", "Esclusiva",
"Limitativa", "Comparativa", "Avversativa"],
"Complemento (I)": ["Qualsiasi complemento (I)", "Di stato in luogo", "Di moto a luogo", "Di moto da luogo", "Di moto per luogo",
"Complemento_(I)": ["Qualsiasi complemento (I)", "Di stato in luogo", "Di moto a luogo", "Di moto da luogo", "Di moto per luogo",
"Di luogo", "Predicativo del soggetto", "Predicativo dell'oggetto", "Di distanza",
"Di tempo determinato", "Di tempo continuato", "Di tempo", "Di termine", "Di vantaggio",
"Di svantaggio", "Di specificazione", "Di modo", "Di mezzo", "Di compagnia",
"Di unione", "Di allontanamento/separazione", "Di materia"],
"Complemento (II)": ["Qualsiasi complemento (II)", "Di limitazione", "Di qualità", "Di causa", "Di agente", "Di causa efficiente", "Di fine o scopo",
"Di unione", "Di allontanamento-separazione", "Di materia"],
"Complemento_(II)": ["Qualsiasi complemento (II)", "Di limitazione", "Di qualità", "Di causa", "Di agente", "Di causa efficiente", "Di fine o scopo",
"Di paragone", "Di argomento", "Distributivo", "Di sostituzione", "Di estensione", "Di rapporto",
"Di esclusione", "Di peso", "Di quantità", "Di colpa", "Di denominazione", "partitivo",
"Di abbondanza-privazione", "Di origine-provenienza", "Concessivo", "Di effetto", "Di pena",
@ -412,9 +412,10 @@ $(document).ready(function() {
var claListLen = 0;
var condListLen = 0;
var logicExprString = ``;
var guiLogicString = ``;
var execQuery = ``;
var queryFields = []; // Contiene le intestazioni di colonna della tabella dei risultati
var queryJson = JSON.parse('{"EsprLogica":""}');
var queryJson = JSON.parse('{"EsprLogica":"","LogicaGui":""}');
queryJson.LiDaVersion = "1.0";
queryJson.Clausola0 = JSON.parse('{"queryText": "", "lemma_forma": "lemma", "TipoClausola": "0", "Attiva": "0"}');
@ -497,7 +498,6 @@ $(document).ready(function() {
// Funzione di creazione delle subclausole grammaticali basate sul valore scelto
function addCatgramSubcla(tabPaneId,selectedValue){
var dettagliBox = $("#" + tabPaneId + " .dettaglifiltri");
//var dettagliBox = $(this).parent().parent().siblings(".dettaglifiltri");
dettagliBox.html("");
if (Object.keys(categorie).includes(selectedValue)) {
var filtro = categorie[selectedValue]
@ -516,7 +516,7 @@ $(document).ready(function() {
var label1 = $('<label />');
var label2 = $('<label />');
rbfieldset.attr('id', tabPaneId + keys[key]);
rbfieldset.attr('id', tabPaneId + keys[key].replace(/\s/g, ''));
rbfieldset.attr('class', 'bn');
flexdiv1.attr('class', 'custom-control custom-radio custom-control-inline');
flexdiv2.attr('class', 'custom-control custom-radio custom-control-inline');
@ -524,16 +524,16 @@ $(document).ready(function() {
input2.attr('class', 'custom-control-input');
input1.attr('type', 'radio');
input2.attr('type', 'radio');
input1.attr('id', tabPaneId + vals[0]);
input2.attr('id', tabPaneId + vals[1]);
input1.attr('id', tabPaneId + vals[0].replace(/\s/g, ''));
input2.attr('id', tabPaneId + vals[1].replace(/\s/g, ''));
input1.attr('value', vals[0]);
input2.attr('value', vals[1]);
input1.attr('name', tabPaneId + keys[key]);
input2.attr('name', tabPaneId + keys[key]);
label1.attr('class', 'custom-control-label');
label2.attr('class', 'custom-control-label');
label1.attr('for', tabPaneId + vals[0]);
label2.attr('for', tabPaneId + vals[1]);
label1.attr('for', tabPaneId + vals[0].replace(/\s/g, ''));
label2.attr('for', tabPaneId + vals[1].replace(/\s/g, ''));
label1.append(vals[0]);
label2.append(vals[1]);
@ -556,7 +556,7 @@ $(document).ready(function() {
flexdiv1 = $('<div />');
input1 = $('<input />');
label1 = $('<label />');
rbfieldset.attr('id', tabPaneId + keys[key]);
rbfieldset.attr('id', tabPaneId + keys[key].replace(/\s/g, ''));
rbfieldset.attr('class', 'bn');
flexdiv1.attr('class', 'custom-control custom-checkbox custom-control-inline');
input1.attr('class', 'custom-control-input');
@ -579,7 +579,7 @@ $(document).ready(function() {
var element = $('<div />');
element.attr('class', ' col-8 form-group px-0 pb-1 m-0');
var select = $('<select class="form-control custom-select"/>');
select.attr('id', tabPaneId + keys[key]);
select.attr('id', tabPaneId + keys[key].replace(/\s/g, ''));
select.attr('title', keys[key]);
select.attr('name', keys[key]);
for (var val in vals) {
@ -766,6 +766,7 @@ $(document).ready(function() {
if (claListLen == 0 && condListLen == 0) {
$('#sortable0').html(emptyClaList);
queryJson.EsprLogica = "";
queryJson.LogicaGui = "";
}
tabID = 0;
};
@ -850,9 +851,11 @@ $(document).ready(function() {
};
};
});
logicExprString = parseCond("#sortable0", "AND");
logicExprString = parseCond("#sortable0", "AND", 0);
guiLogicString = parseCond("#sortable0", "AND", 1);
$("#sparqlquery").val(logicExprString);
queryJson.EsprLogica = logicExprString.split(' ');
queryJson.LogicaGui = guiLogicString.split(' ');
};
// Funzione di refresh dei collegamenti tra elementi sortable
@ -869,29 +872,29 @@ $(document).ready(function() {
};
// Funzione di parsing delle clausole e delle condizioni logiche
function parseCond(sortableList, condType){
function parseCond(sortableList, condType, gui){
var condText = "";
var items = $(sortableList).children("li");
var itemsText = [];
$(items).each(function() {
if ($(this).hasClass("condLIand")) {
var andID = "#" + $(this).children("ul").attr("id");
var andText = parseCond(andID, "AND");
var andText = parseCond(andID, "AND", gui);
if (andText.length){
itemsText.push(andText);
};
};
if ($(this).hasClass("condLIor")) {
var orID = "#" + $(this).children("ul").attr("id");
var orText = parseCond(orID, "OR");
var orText = parseCond(orID, "OR", gui);
if (orText.length){
itemsText.push(orText);
};
};
if ($(this).hasClass("claLI")) {
if ($(this).find("input")[0].checked == true){
var claText = $(this).find(".clatext").text();
var claNum = "Clausola" + claText.substr(0,claText.indexOf('.'));
var claText = $(this).find(".clatext").text();
var claNum = "Clausola" + claText.substr(0,claText.indexOf('.'));
if (gui || ($(this).find("input")[0].checked == true)){
itemsText.push(claNum);
};
};
@ -901,7 +904,11 @@ $(document).ready(function() {
case 0:
break;
case 1:
condText += itemsText[0];
if (gui) {
condText = "( " + condType + " " + itemsText[0] + " )";
} else {
condText += itemsText[0];
}
break;
default:
condText = "( " + condType + " ";
@ -952,12 +959,12 @@ $(document).ready(function() {
$("#cla0 #queryText").val(queryJson["Clausola0"].queryText);
};
// 4 e 5:
var logicExpr = queryJson.EsprLogica;
guiLogicString = queryJson.LogicaGui;
var clauCount = 0;
var clau2Make = "";
for (var i=0; i < logicExpr.length; i++) {
for (var i=0; i < guiLogicString.length; i++) {
//console.log("- " + logicExpr[i]);
switch (logicExpr[i]) {
switch (guiLogicString[i]) {
case "(":
//console.log("(");
break;
@ -993,7 +1000,8 @@ $(document).ready(function() {
switch ($("#cla" + i + ks[j])[0].type) {
case "fieldset":
var sval = queryJson["Clausola" + i][ks[j]]
$("#cla" + tabID + sval).attr("checked",true);
$("#cla" + tabID + sval.replace(/\s/g, '')).attr("checked",true);
console.log(sval);
break;
case "select-one":
$("#cla" + i + ks[j]).val([queryJson["Clausola" + i][ks[j]]])
@ -1002,7 +1010,6 @@ $(document).ready(function() {
};
};
};
console.log();
break;
case "Sintattico":
addSyntCla(active);