mapping filtri in query sparql, in progress

This commit is contained in:
cesare 2022-10-04 13:31:05 +02:00
parent b4b2b2d255
commit dceda0ee9b
2 changed files with 114 additions and 53 deletions

View File

@ -961,12 +961,12 @@
<fieldset id="numero" class="bn"> <fieldset id="numero" class="bn">
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="singolare" value="singolare" <input class="mr2 f6" type="radio" id="singolare" value="Singolare"
name="num"> <label for=" singolare" class="lh-copy">Singolare</label> name="Numero"> <label for=" singolare" class="lh-copy">Singolare</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="plurale" value="plurale" <input class="mr2 f6" type="radio" id="plurale" value="Plurale"
name="num"> <label for="plurale" class="lh-copy">Plurale</label> name="Numero"> <label for="plurale" class="lh-copy">Plurale</label>
</div> </div>
</fieldset> </fieldset>
</div> </div>
@ -975,17 +975,17 @@
<div class=" w-15 pa1 mr2"> <div class=" w-15 pa1 mr2">
<fieldset id="generelemma" class="bn"> <fieldset id="Genere lemma" class="bn">
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="lemmafemminile" <input class="mr2 f6" type="radio" id="lemmafemminile"
value="lemmafemminile" name="gel"> <label value="Lemma femminile" name="Genere lemma"> <label
for="lemmafemminile" class="lh-copy">Lemma di genere for="lemmafemminile" class="lh-copy">Lemma di genere
femminile</label> femminile</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="lemmamaschile" <input class="mr2 f6" type="radio" id="lemmamaschile"
value="lemmamaschile" name="gel"> <label value="Lemma maschile" name="Genere lemma"> <label
for="lemmamaschile" class="lh-copy">Lemma di genere for="lemmamaschile" class="lh-copy">Lemma di genere
maschile</label> maschile</label>
</div> </div>
@ -997,13 +997,13 @@
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="formafemminile" <input class="mr2 f6" type="radio" id="formafemminile"
value="formafemminile" name="gef"> <label value="Forma femminile" name="Genere forma"> <label
for="formafemminile" class="lh-copy">Forma di genere for="formafemminile" class="lh-copy">Forma di genere
femminile</label> femminile</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="formamaschile" <input class="mr2 f6" type="radio" id="formamaschile"
value="formamaschile" name="gef"> <label value="Forma maschile" name="Genere forma"> <label
for="formamaschile" class="lh-copy">Forma di genere for="formamaschile" class="lh-copy">Forma di genere
maschile</label> maschile</label>
</div> </div>
@ -1014,8 +1014,8 @@
<div class="fl w-100 w-70-ns "> <div class="fl w-100 w-70-ns ">
<fieldset id="riflpers" class="bn"> <fieldset id="riflpers" class="bn">
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2" type="checkbox" id="inlocuzione" <input class="mr2" name="riflpers" type="checkbox" id="inlocuzione"
value="inlocuzione"> <label for="inlocuzione" value="In locuzione"> <label for="inlocuzione"
class="lh-copy">In locuzione</label> class="lh-copy">In locuzione</label>
</div> </div>
@ -1029,12 +1029,12 @@
<div class=" w-15 pa2 mr2"> <div class=" w-15 pa2 mr2">
<select id="declsost" <select id="declsost"
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="declinazionesostantivo" onchange="" name="Declinazione sostantivo" onchange=""
title="Declinazione sotantivo"> title="Declinazione sotantivo">
<option value="">Tutte le declinazioni</option> <option value="">Tutte le declinazioni</option>
<option value="dsg">Prima</option> <option value="Prima declinazione">Prima declinazione</option>
<option value="dss">Seconda</option> <option value="Seconda declinazione">Seconda declinazione</option>
<option value="dst">Terza</option> <option value="Terza declinazione">Terza declinazione</option>
</select> </select>
</div> </div>
@ -1054,12 +1054,12 @@
<fieldset id="diatesi" class="bn"> <fieldset id="diatesi" class="bn">
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="attivo" value="attivo" <input class="mr2 f6" type="radio" id="attivo" value="Attivo"
name="dia"> <label for="attivo" class="lh-copy">Attivo</label> name="Diatesi"> <label for="Attivo" class="lh-copy">Attivo</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="passivo" value="passivo" <input class="mr2 f6" type="radio" id="passivo" value="Passivo"
name="dia"> <label for="passivo" class="lh-copy">Passivo</label> name="Diatesi"> <label for="Passivo" class="lh-copy">Passivo</label>
</div> </div>
</fieldset> </fieldset>
</div> </div>
@ -1074,12 +1074,12 @@
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="transitivo" <input class="mr2 f6" type="radio" id="transitivo"
value="transitivo" name="tra"> <label for="transitivo" value="Transitivo" name="Transitivita"> <label for="transitivo"
class="lh-copy">Transitivo</label> class="lh-copy">Transitivo</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="intransitivo" <input class="mr2 f6" type="radio" id="intransitivo"
value="intransitivo" name="tra"> <label value="Intransitivo" name="Transitivita"> <label
for="intransitivo" class="lh-copy">Intransitivo</label> for="intransitivo" class="lh-copy">Intransitivo</label>
</div> </div>
</fieldset> </fieldset>
@ -1091,12 +1091,12 @@
<fieldset id="genere" class="bn"> <fieldset id="genere" class="bn">
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="femminile" value="femminile" <input class="mr2 f6" type="radio" id="femminile" value="Femminile"
name="gen"> <label for="femminile" class="lh-copy">Femminile</label> name="Genere"> <label for="femminile" class="lh-copy">Femminile</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="maschile" value="maschile" <input class="mr2 f6" type="radio" id="maschile" value="Maschile"
name="gen"> <label for="maschile" class="lh-copy">Maschile</label> name="Genere"> <label for="maschile" class="lh-copy">Maschile</label>
</div> </div>
</fieldset> </fieldset>
</div> </div>
@ -1104,12 +1104,12 @@
<fieldset id="numero" class="bn"> <fieldset id="numero" class="bn">
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="singolare" value="singolare" <input class="mr2 f6" type="radio" id="singolare" value="Singolare"
name="num"> <label for="" singolare"" class="lh-copy">Singolare</label> name="Numero"> <label for="" singolare"" class="lh-copy">Singolare</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="plurale" value="plurale" <input class="mr2 f6" type="radio" id="plurale" value="Plurale"
name="num"> <label for="plurale" class="lh-copy">Plurale</label> name="Numero"> <label for="plurale" class="lh-copy">Plurale</label>
</div> </div>
</fieldset> </fieldset>
</div> </div>
@ -1118,12 +1118,12 @@
<fieldset id="riflpers" class="bn"> <fieldset id="riflpers" class="bn">
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2" type="checkbox" id="impersonale" <input class="mr2" type="checkbox" id="impersonale"
value="impersonale" name="personale"> <label for="impersonale" value="Impersonale" name="Pers"> <label for="impersonale"
class="lh-copy">Impersonale</label> class="lh-copy">Impersonale</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2" type="checkbox" id="riflessivo" <input class="mr2" type="checkbox" id="riflessivo"
value="riflessivo" name="riflessivita"> <label for="riflessivo" value="Riflessivo" name="Rifl"> <label for="riflessivo"
class="lh-copy">Riflessivo</label> class="lh-copy">Riflessivo</label>
</div> </div>
</fieldset> </fieldset>
@ -1136,13 +1136,13 @@
<select id="coniug" <select id="coniug"
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="coniugazione" onchange="" title="Coniugazione"> name="Coniugazione" onchange="" title="Coniugazione">
<option value="">Qualsiasi coniugazione</option> <option value="">Qualsiasi coniugazione</option>
<option value="Prima coniugazione">Prima</option> <option value="Prima coniugazione">Prima</option>
<option value="Seconda coniugazione">Seconda</option> <option value="Seconda coniugazione">Seconda</option>
<option value="Terza coniugazione">Terza</option> <option value="Terza coniugazione">Terza</option>
<option value="Essere">Essere</option> <option value="Essere coniugazione">Essere</option>
<option value="Avere">Avere</option> <option value="Avere coniugazione">Avere</option>
</select> </select>
@ -1150,7 +1150,7 @@
<div class=" w-15 pa2"> <div class=" w-15 pa2">
<select id="tempi" <select id="tempi"
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="tempoverbale" onchange="" title="Macro categoria"> name="Tempi" onchange="" title="Macro categoria">
<option value="">Qualsiasi tempo verbale</option> <option value="">Qualsiasi tempo verbale</option>
<option value="Indicativo presente">Indicativo presente</option> <option value="Indicativo presente">Indicativo presente</option>
<option value="Indicativo passato prossimo">Indicativo passato prossimo</option> <option value="Indicativo passato prossimo">Indicativo passato prossimo</option>
@ -1177,37 +1177,37 @@
</div> </div>
<div class=" w-15 pa2"> <div class=" w-15 pa2">
<select id="persona" <select id="Persona"
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="persona" onchange="" title="Macro categoria"> name="persona" onchange="" title="Macro categoria">
<option value="">Qualsiasi persona</option> <option value="">Qualsiasi persona</option>
<option value="Prima pers s">1ª singolare</option> <option value="1ª persona singolare">1ª singolare</option>
<option value="Seconda pers s">2ª singolare</option> <option value="2ª persona singolare">2ª singolare</option>
<option value="Terza pers s">3ª singolare</option> <option value="3ª persona singolare">3ª singolare</option>
<option value="Prima pers p">1ª plurale</option> <option value="1ª persona plurale">1ª plurale</option>
<option value="Prima pers p">2ª plurale</option> <option value="2ª persona plurale">2ª plurale</option>
<option value="Prima pers p">3ª plurale</option> <option value="3ª persona plurale">3ª plurale</option>
</select> </select>
</div> </div>
<div class=" w-15 pa2 mr2"> <div class=" w-15 pa2 mr2">
<select id="funz" <select id="funz"
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="funzione" onchange="" title="Funzione"> name="Funzione" onchange="" title="Funzione">
<option value="">Tutte le funzioni</option> <option value="">Tutte le funzioni</option>
<option value="Funz aggettivo">Aggettivo</option> <option value="Aggettivo">Aggettivo</option>
<option value="Funz sostantivo maschile">Sostantivo maschile</option> <option value="Sostantivo maschile">Sostantivo maschile</option>
<option value="Funz sostantivo femminile">Sostantivo femminile</option> <option value="Sostantivo femminile">Sostantivo femminile</option>
</select> </select>
</div> </div>
<div class=" w-15 pa2 mr2"> <div class=" w-15 pa2 mr2">
<select id="decl" <select id="decl"
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="declinazione" onchange="" title="Declinazione"> name="Declinazione" onchange="" title="Declinazione">
<option value="">Tutte le declinazioni</option> <option value="">Tutte le declinazioni</option>
<option value="Prima decl">Prima</option> <option value="Prima declinazione">Prima</option>
<option value="Seconda decl">Seconda</option> <option value="Seconda declinazione">Seconda</option>
<option value="Terza decl">Terza</option> <option value="Terza declinazione">Terza</option>
</select> </select>
</div> </div>

View File

@ -107,6 +107,8 @@ function buildSQ(stquery) {
//Nick //Nick
if (ftxt==null){ if (ftxt==null){
ftxt = document.getElementById("searchValue"); ftxt = document.getElementById("searchValue");
myquery=buildClauseNick(stquery, parsedquery);
return (myquery)
} }
@ -137,6 +139,48 @@ function buildSQ(stquery) {
return (parsedquery) return (parsedquery)
} }
//Nick
function buildClauseNick(clause, parsedquery){
clause=clause['filtro-1'];//da modificare
if (clause['query'] != null && clause['query'].trim() != "") {
if (clause['query'].trim().slice(-1) !=='*')
strval="^" +clause['query'].trim()+ "$";
else
strval=clause['query'].trim().slice(0, -1)
parsedquery.where[1].expression.args[1].value = strval;
if (clause['lemma_forma'] != null && clause['lemma_forma'] == 'lemma')
parsedquery.where[1].expression.args[0].value = "lm";
}
else{
parsedquery.where.splice(1, 1)
}
if (clause['categoria'] !=null && clause['categoria'] != "all")
parsedquery.where[0].triples.push(JSON.parse(data21)[clause['categoria']]);
if (clause['tipoClausola'] !=null && Object.keys(sottoCategorie).includes(clause['categoria'].trim())){
//sctmp=JSON.parse(sottoCategorieSostantivi)
sctmp=sottoCategorie[clause['categoria'].trim()]
sctk=Object.keys(sctmp)
for (ke in sctk){
keval=clause[encodeURI(sctk[ke])]
if (keval!=null && keval!=''){
sttmts=sctmp[sctk[ke]]
subcatstat= buildsubcategoryClause(sttmts[keval])
parsedquery.where[0].triples.push(subcatstat);
}
}
}
return parsedquery
}
function buildClause(clause, parsedquery){ function buildClause(clause, parsedquery){
@ -198,6 +242,17 @@ function buildsubcategoryClause(sttmnt){
} }
/*
{
"b": "VerboVolgareFunzioneAvverbio",
"l": "VerboVolgareFunzioneLocuzione" #CONTROLLARE
}
"Persona" : ["Qualsiasi persona", "1ª persona singolare", "2ª persona singolare", "3ª persona singolare", "1ª persona plurale", "2ª persona plurale", "3ª persona plurale"],
*/
var sottoCategorie = { var sottoCategorie = {
"verbovolgare": {"Diatesi": {"Attivo": "TipoDiatesiVerboVolgare:VerboVolgareAttivo", "Passivo": "TipoDiatesiVerboVolgare:VerboVolgarePassivo"}, "verbovolgare": {"Diatesi": {"Attivo": "TipoDiatesiVerboVolgare:VerboVolgareAttivo", "Passivo": "TipoDiatesiVerboVolgare:VerboVolgarePassivo"},
@ -220,7 +275,14 @@ var sottoCategorie = {
"Imperativo presente": "TipoTempoVerboVolgare:PresenteImperativoVerboVolgare", "Infinito presente": "TipoTempoVerboVolgare:PresenteInfinitoVerboVolgare", "Imperativo presente": "TipoTempoVerboVolgare:PresenteImperativoVerboVolgare", "Infinito presente": "TipoTempoVerboVolgare:PresenteInfinitoVerboVolgare",
"Infinito passato": "TipoTempoVerboVolgare:PassatoInfinitoVerboVolgare", "Participio presente": "TipoTempoVerboVolgare:PresenteParticipioVerboVolgare", "Infinito passato": "TipoTempoVerboVolgare:PassatoInfinitoVerboVolgare", "Participio presente": "TipoTempoVerboVolgare:PresenteParticipioVerboVolgare",
"Participio passato": "TipoTempoVerboVolgare:PassatoParticipioVerboVolgare", "Gerundio presente": "TipoTempoVerboVolgare:PresenteGerundioVerboVolgare", "Participio passato": "TipoTempoVerboVolgare:PassatoParticipioVerboVolgare", "Gerundio presente": "TipoTempoVerboVolgare:PresenteGerundioVerboVolgare",
"Gerundio passato": "TipoTempoVerboVolgare:PassatoGerundioVerboVolgare"} "Gerundio passato": "TipoTempoVerboVolgare:PassatoGerundioVerboVolgare"},
"Funzione": {"Aggettivo":"TipoFunzioneVerboVolgare:VerboVolgareFunzioneAggettivo", "Sostantivo maschile":"TipoFunzioneVerboVolgare:VerboVolgareFunzioneSostantivoMaschile",
"Sostantivo femminile":"TipoFunzioneVerboVolgare:VerboVolgareFunzioneSostantivoFemminile"},
"Declinazione": {"Prima declinazione":"TipoDeclinazioneVerboVolgare:PrimaDeclinazioneVerboVolgare", "Seconda declinazione":"TipoDeclinazioneVerboVolgare:SecondaDeclinazioneVerboVolgare",
"Terza declinazione":"TipoDeclinazioneVerboVolgare:TerzaDeclinazioneVerboVolgare"},
"Persona": {"1ª persona singolare": "TipoPersonaVerboVolgare:PrimaPersonaSingolareVerboVolgare", "2ª persona singolare": "TipoPersonaVerboVolgare:SecondaPersonaSingolareVerboVolgare",
"3ª persona singolare": "TipoPersonaVerboVolgare:TerzaPersonaSingolareVerboVolgare", "1ª persona plurale": "TipoPersonaVerboVolgare:PrimaPersonaPluraleVerboVolgare",
"2ª persona plurale": "TipoPersonaVerboVolgare:SecondaPersonaPluraleVerboVolgare", "3ª persona plurale": "TipoPersonaVerboVolgare:TerzaPersonaPluraleVerboVolgare"}
}, },
@ -239,8 +301,7 @@ var sottoCategorie = {
"avverbiovolgare": "filtriavverbio", "avverbiovolgare": "filtriavverbio",
"preposizionevolgare": "filtripreposizione", "preposizionevolgare": "filtripreposizione",
"congiunzionevolgare": "filtricongiunzione", "congiunzionevolgare": "filtricongiunzione",
"onomasticavolgare": { "onomasticavolgare": {"Tipo" :{"Nome proprio":"TipoDellOnomasticaVolgare:NomeProprio", "Nome proprio separato":"TipoDellOnomasticaVolgare:NomeProprioSeparato",
"Tipo" :{"Nome proprio":"TipoDellOnomasticaVolgare:NomeProprio", "Nome proprio separato":"TipoDellOnomasticaVolgare:NomeProprioSeparato",
"Titolo": "TipoDellOnomasticaVolgare:Titolo"} "Titolo": "TipoDellOnomasticaVolgare:Titolo"}
}, },