Merge branch 'master' of https://gitea-s2i2s.isti.cnr.it/concordia/LiDa_Search.git
This commit is contained in:
commit
a15cf255d6
157
js/utils.js
157
js/utils.js
|
@ -50,6 +50,28 @@ Clausola
|
|||
= cla:("Clausola"Integer)(_)? {return '"'+cla[0]+cla[1]+'"';}
|
||||
|
||||
|
||||
Integer "integer"
|
||||
= _ [0-9]+ { return parseInt(text(), 10); }
|
||||
|
||||
_ "whitespace"= " "*
|
||||
|
||||
`
|
||||
var hdnquerygrammartest=`
|
||||
Expression
|
||||
= head:((_)?"("(_)?("AND "/"OR ") Filtro+ (_)?(")")?){return '{"'+head[3]+'": ['+head[4]+"]}"}//{ return head}.join("").replaceAll(", ,","").replaceAll("(,","(").replaceAll(",("," (")}
|
||||
/ resu:Filtro {return resu[1].split().join()+' ';}
|
||||
Filtro
|
||||
= (_)"("?head:(("AND "/"OR "))? tail:Clausola+ (_)? closecl:(")")?
|
||||
|
||||
{if (head != null) return ' {"'+head+'":['+tail+"]}";
|
||||
else if (tail!=null & tail.length <2) return ' '+tail+''
|
||||
else return ""+tail+"";}
|
||||
/ cl:Clausola
|
||||
|
||||
Clausola
|
||||
= cla:("Clausola"Integer)(_)? {return ' {"TERM": "'+cla[0]+cla[1]+'"}';}
|
||||
|
||||
|
||||
Integer "integer"
|
||||
= _ [0-9]+ { return parseInt(text(), 10); }
|
||||
|
||||
|
@ -182,8 +204,29 @@ function parseClause(op, tokens){
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
function parseJsonClause(op, tokens, nowhere){
|
||||
alert (op)
|
||||
if (op.trim()=='OR'){
|
||||
//multipleCondSpQuery.where.push(JSON.parse(unionop)['union']);
|
||||
nowhere.push(JSON.parse(unionop)['union']);
|
||||
}
|
||||
if (op.trim()=='AND'){
|
||||
nowhere.push(JSON.parse(unionop)['group']);
|
||||
}
|
||||
for (var mtoken in tokens){
|
||||
te_op=tokens[mtoken]
|
||||
if ('TERM' in te_op){
|
||||
cond=theguiQ[te_op['TERM']]
|
||||
//parsedquery.where.at(-1).patterns
|
||||
multipleCondSpQuery=buildJsonClause(cond, multipleCondSpQuery, -1, nowhere.at(-1).patterns)
|
||||
}
|
||||
else
|
||||
parseJsonClause(Object.keys(te_op)[0], te_op[Object.keys(te_op)[0]], nowhere.at(-1).patterns)
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -194,7 +237,7 @@ function buildSPQuery(guiquery){
|
|||
var spqparser = new SparqlParser();
|
||||
multipleCondSpQuery=spqparser.parse(ontoSparqlQuery);
|
||||
mytestq=spqparser.parse(tq);
|
||||
var parser = peg.generate(hdnquerygrammar);
|
||||
var parser = peg.generate(hdnquerygrammartest);
|
||||
test=guiquery['EsprLogica'].join(" ");
|
||||
test=test.replaceAll("( ","(")
|
||||
test=test.replaceAll(" )",")")
|
||||
|
@ -202,7 +245,7 @@ function buildSPQuery(guiquery){
|
|||
jsonclauses=JSON.parse(clauses)
|
||||
|
||||
for (const ck of Object.keys(jsonclauses)){
|
||||
parseClause(ck, jsonclauses[ck])
|
||||
parseJsonClause(ck, jsonclauses[ck], multipleCondSpQuery.where)
|
||||
}
|
||||
|
||||
|
||||
|
@ -303,6 +346,55 @@ function buildClauseNick(clause, parsedquery){
|
|||
|
||||
}
|
||||
|
||||
function buildJsonClause(clause, parsedquery, whereind, theplace){
|
||||
|
||||
if (clause['queryText'].trim() != "") {
|
||||
if (clause['queryText'].trim().slice(-1) !=='*')
|
||||
strval="^" +clause['queryText'].trim()+ "$";
|
||||
else
|
||||
strval=clause['queryText'].trim().slice(0, -1)
|
||||
|
||||
parsedquery.where[1].expression.args[1].value = strval;
|
||||
if (clause['lemma_forma'] == 'lemma')
|
||||
parsedquery.where[1].expression.args[0].value = "lm";
|
||||
}
|
||||
else{
|
||||
if (parsedquery.where[1].type=='filter')
|
||||
parsedquery.where.splice(1, 1)
|
||||
}
|
||||
if (clause['typeGramm0'] !=null && clause['typeGramm0'] != "all")
|
||||
if(whereind> -1)
|
||||
parsedquery.where[whereind].triples.push(JSON.parse(data21)[clause['typeGramm0']]);
|
||||
else{
|
||||
//parsedquery.where.at(-1).patterns
|
||||
theplace.push(JSON.parse(unionop)['bgp']);
|
||||
theplace.at(-1).triples.push(JSON.parse(data21)[clause['typeGramm0']]);
|
||||
}
|
||||
|
||||
|
||||
if (clause['typeGramm0'] !=null && Object.keys(sottoCategorie).includes(clause['typeGramm0'].trim())){
|
||||
//sctmp=JSON.parse(sottoCategorieSostantivi)
|
||||
sctmp=sottoCategorie[clause['typeGramm0'].trim()]
|
||||
sctk=Object.keys(sctmp)
|
||||
for (ke in sctk){
|
||||
|
||||
keval=clause[sctk[ke]]
|
||||
if (keval!=null && keval!=''){
|
||||
sttmts=sctmp[sctk[ke]]
|
||||
if (sttmts[keval]!=null && (sttmts[keval].split(':')[1]) != null){
|
||||
subcatstat= buildsubcategoryClause(sttmts[keval])
|
||||
if(whereind> -1)
|
||||
parsedquery.where[whereind].triples.push(subcatstat);
|
||||
else
|
||||
theplace.at(-1).triples.push(subcatstat);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return parsedquery
|
||||
|
||||
}
|
||||
|
||||
function buildClause(clause, parsedquery, whereind){
|
||||
|
||||
|
@ -423,28 +515,28 @@ var sottoCategorie = {
|
|||
"Genere forma": {"Forma femminile": "TipoGenereSostantivoVolgare:GenereFemminileSostantivoVolgare", "Forma maschile": "TipoGenereSostantivoVolgare:GenereMaschileSostantivoVolgare"},
|
||||
"Numero": {"Singolare": "TipoNumeroSostantivoVolgare:NumeroSingolareSostantivoVolgare", "Plurale": "TipoNumeroSostantivoVolgare:NumeroPluraleSostantivoVolgare"},
|
||||
"riflpers": {"In locuzione": "SostantivoVolgareInLocuzione:Lv_lv"},
|
||||
"Declinazione sostantivo": {"Prima declinazione": "TipoDeclinazioneSostantivoVolgare:PrimaDeclinazioneSostantivoVolgare", "Seconda declinazione": "TipoDeclinazioneSostantivoVolgare:SecondaDeclinazioneSostantivoVolgare",
|
||||
"Declinazione_sostantivo": {"Prima declinazione": "TipoDeclinazioneSostantivoVolgare:PrimaDeclinazioneSostantivoVolgare", "Seconda declinazione": "TipoDeclinazioneSostantivoVolgare:SecondaDeclinazioneSostantivoVolgare",
|
||||
"Terza declinazione": "TipoDeclinazioneSostantivoVolgare:TerzaDeclinazioneSostantivoVolgare"}
|
||||
},
|
||||
|
||||
"pronomevolgare": {
|
||||
"Genere": {"Femminile": "generePronomeVolgare:PronomeVolgareFemminile", "Maschile": "generePronomeVolgare:PronomeVolgareMaschile"},
|
||||
"Numero": {"Singolare": "TipoNumeroPronomeVolgare:PronomeVolgareSingolare", "Plurale": "TipoNumeroPronomeVolgare:PronomeVolgarePlurale" },
|
||||
"Classe/Persona": {"1ª": "TipoClassePersonaPronomeVolgare:PronomeVolgarePrimaClassePersona", "2ª": "TipoClassePersonaPronomeVolgare:PronomeVolgareSecondaClassePersona",
|
||||
"Classe_Persona": {"1ª": "TipoClassePersonaPronomeVolgare:PronomeVolgarePrimaClassePersona", "2ª": "TipoClassePersonaPronomeVolgare:PronomeVolgareSecondaClassePersona",
|
||||
"3ª": "TipoClassePersonaPronomeVolgare:PronomeVolgareTerzaClassePersona"},
|
||||
"Tipo": {"Personale": "TipoDelPronomeVolgare:PronomePersonaleVolgare", "Riflessivo": "TipoDelPronomeVolgarePronomeRiflessivoVolgare",
|
||||
"Interrogativo": "TipoDelPronomeVolgare:PronomeInterrogativoVolgare", "Esclamativo": "TipoDelPronomeVolgare:PronomeEsclamativoVolgare",
|
||||
"Dimostrativo": "TipoDelPronomeVolgare:PronomeDimostrativoVolgare", "Relativo": "TipoDelPronomeVolgare:PronomeRelativoVolgare",
|
||||
"Possessivo": "TipoDelPronomeVolgare:PronomePossessivoVolgare"},
|
||||
"Forma (Personali/Riflessivi)": {"Libero": "TipoFormaPerRifPronomeVolgare:PronomeLiberoVolgare",
|
||||
"Forma_Personali_Riflessivi": {"Libero": "TipoFormaPerRifPronomeVolgare:PronomeLiberoVolgare",
|
||||
"Libero in Composizione": "TipoFormaPerRifPronomeVolgare:PronomeLiberoInComposizioneVolgare",
|
||||
"Proclitico": "TipoFormaPerRifPronomeVolgare:PronomeProcliticoVolgare", "Enclitico": "TipoFormaPerRifPronomeVolgare:PronomeEncliticoVolgare"},
|
||||
"Funzione (Personali)": {"Libero - soggetto": "TipoFunzionePronomeVolgare:PronomeVolgareLiberoSoggetto",
|
||||
"Funzione_Personali": {"Libero - soggetto": "TipoFunzionePronomeVolgare:PronomeVolgareLiberoSoggetto",
|
||||
"Libero - soggetto impersonale": "TipoFunzionePronomeVolgare:PronomeVolgareLiberoSoggettoImpersonale",
|
||||
"Libero - complemento": "TipoFunzionePronomeVolgare:PronomeVolgareLiberoComplemento", "Libero - rafforzativo": "TipoFunzionePronomeVolgare:PronomeVolgareLiberoRafforzativo",
|
||||
"Clitico - accusativo": "TipoFunzionePronomeVolgare:PronomeVolgareCliticoAccusativo", "Clitico - dativo": "TipoFunzionePronomeVolgare:PronomeVolgareCliticoDativo",
|
||||
"Clitico - partitivo": "TipoFunzionePronomeVolgare:PronomeVolgareCliticoPartitivo"},
|
||||
"Tipo (Riflessivi)": {"Proprio": "TipoRiflessiviDelPronomeVolgare:PronomeVolgareProprio", "Lessicalizzato": "TipoRiflessiviDelPronomeVolgare:PronomeVolgareLessicalizzato",
|
||||
"Tipo_Riflessivi": {"Proprio": "TipoRiflessiviDelPronomeVolgare:PronomeVolgareProprio", "Lessicalizzato": "TipoRiflessiviDelPronomeVolgare:PronomeVolgareLessicalizzato",
|
||||
"Impersonale": "TipoRiflessiviDelPronomeVolgare:PronomeVolgareImpersonale", "Passivo": "TipoRiflessiviDelPronomeVolgare:PronomeVolgarePassivo",
|
||||
"Reciproco": "TipoRiflessiviDelPronomeVolgare:PronomeVolgareReciproco"}
|
||||
|
||||
|
@ -453,8 +545,8 @@ var sottoCategorie = {
|
|||
"aggettivovolgare": {"Classe": {"1ª":"TipoClasseAggettivoVolgare:AggettivoVolgarePrimaClasse", "2ª": "TipoClasseAggettivoVolgare:AggettivoVolgareSecondaClasse"},
|
||||
"Genere": {"Femminile": "TipoGenereAggettivoVolgare:AggettivoVolgareFemminile", "Maschile": "TipoGenereAggettivoVolgare:AggettivoVolgareMaschile"},
|
||||
"Numero": {"Singolare": "TipoNumeroAggettivoVolgare:AggettivoVolgareSingolare", "Plurale": "TipoNumeroAggettivoVolgare:AggettivoVolgareSingolare"},
|
||||
"Con oggetto indiretto":{"Con oggetto indiretto": "AggettivoVolgareConOggettoIndiretto:AggettivoVolgareConOggettoIndiretto"},
|
||||
"Tipo aggettivo": { "Qualificativo": "TipoDellAggettivoVolgare:AggettivoQualificativoVolgare",
|
||||
"Con_oggetto_indiretto":{"Con oggetto indiretto": "AggettivoVolgareConOggettoIndiretto:AggettivoVolgareConOggettoIndiretto"},
|
||||
"Tipo_aggettivo": { "Qualificativo": "TipoDellAggettivoVolgare:AggettivoQualificativoVolgare",
|
||||
"Indefinito": "TipoDellAggettivoVolgare:AggettivoIndefinitoVolgare", "Interrogativo": "TipoDellAggettivoVolgare:AggettivoInterrogativoVolgare",
|
||||
"Esclamativo": "TipoDellAggettivoVolgare:AggettivoEsclamativoVolgare", "Numerale": "TipoDellAggettivoVolgare:AggettivoNumeraleVolgare",
|
||||
"Dimostrativo": "TipoDellAggettivoVolgare:AggettivoDimostrativoVolgare", "Relativo": "TipoDellAggettivoVolgare:AggettivoRelativoVolgare",
|
||||
|
@ -462,7 +554,7 @@ var sottoCategorie = {
|
|||
"Grado":{"Comparativo di maggioranza": "TipoGradoAggettivoVolgare:AggettivoVolgareComparativoDiMaggioranza", "Comparativo di minoranza": "TipoGradoAggettivoVolgare:AggettivoVolgareComparativoDiMinoranza",
|
||||
"Comparativo di uguaglianza": "TipoGradoAggettivoVolgare:AggettivoVolgareComparativoDiUgualianza", "Superlativo relativo": "TipoGradoAggettivoVolgare:AggettivoVolgareSuperlativorelativo",
|
||||
"Superlativo assoluto": "TipoGradoAggettivoVolgare:AggettivoVolgareSuperlativoAssoluto"},
|
||||
"Tipo di Complemento": {"Introdotto da A": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaA", "Introdotto da CON": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaCON",
|
||||
"Tipo_di_Complemento": {"Introdotto da A": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaA", "Introdotto da CON": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaCON",
|
||||
"Introdotto da CONTRO": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaCONTRO", "Introdotto da DA": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaDA",
|
||||
"Introdotto da DI": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaDI", "Introdotto da IN": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaIN",
|
||||
"Introdotto da PER": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaPER", "Introdotto da SU": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareIntrodottoDaSU",
|
||||
|
@ -472,7 +564,7 @@ var sottoCategorie = {
|
|||
"Oggetto ind.": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareOggettoInd", "Ogg. indi. + compl. con DI": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareOggettoIndComplConDI",
|
||||
"Ogg. ind. pronom.": "TipoDiCompelementoAggettivoVolgare:AggettivoVolgareOggettoIndPronom"
|
||||
},
|
||||
"Tipo di frase": {"Con infinito retto da A": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConInfinitoRettoDaA", "Con infinito retto da DA": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConInfinitoRettoDaDA",
|
||||
"Tipo_di_frase": {"Con infinito retto da A": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConInfinitoRettoDaA", "Con infinito retto da DA": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConInfinitoRettoDaDA",
|
||||
"Con infinito retto da DI": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConInfinitoRettoDaDI", "Con infinito retto da PER": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConInfinitoRettoDaPER",
|
||||
"Con infinito retto da SE": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConInfinitoRettoDaSE", "Con subordinata all'indic.": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConSubordinataAllIndicativo",
|
||||
"Con subordinata al cong.": "TipoDiFraseAggettivoVolgare:AggettivoVolgareConSubordinataAlCongiuntivo", "In locuzione imp.+infinito": "TipoDiFraseAggettivoVolgare:AggettivoVolgareInLocuzioneImpInfinito",
|
||||
|
@ -515,42 +607,3 @@ data21 = `{"verbovolgare": {"subject": {"termType": "Variable", "value":"form"},
|
|||
}
|
||||
`
|
||||
|
||||
|
||||
|
||||
sottoCategorieVerbi=`{"Diatesi": {"Attivo": "TipoDiatesiVerboVolgare:VerboVolgareAttivo", "Passivo": "TipoDiatesiVerboVolgare:VerboVolgarePassivo"},
|
||||
"Transitivita": {"Intransitivo": "TipoTransitivitàVerboVolgare:VerboVolgareIntransitivo", "Transitivo": "TipoTransitivitàVerboVolgare:VerboVolgareTransitivo"},
|
||||
"Genere": {"Femminile": "TipoGenereVerboVolgare:GenereFemminileVerboVolgare", "Maschile": "TipoGenereVerboVolgare:GenereMaschileVerboVolgare"},
|
||||
"Numero": {"Singolare": "TipoNumeroVerboVolgare:NumeroSingolareVerboVolgare", "Plurale": "TipoNumeroVerboVolgare:NumeroPluraleVerboVolgare"},
|
||||
"Pers": {"Impersonale": "VerboVolgareImpersonale:VerboVolgareImpersonale"},
|
||||
"Rifl":{"Riflessivo": "VerboVolgareRiflessivo:VerboVolgareRiflessivo"},
|
||||
"Coniugazione": {"Prima coniugazione": "TipoConiugazioneVerboVolgare:VerboVolgarePrimaConiugazione", "Seconda coniugazione": "TipoConiugazioneVerboVolgare:VerboVolgareSecondaConiugazione",
|
||||
"Terza coniugazione": "TipoConiugazioneVerboVolgare:VerboVolgareTerzaConiugazione",
|
||||
"Essere coniugazione": "TipoConiugazioneVerboVolgare:VerboVolgareAusiliareEssere",
|
||||
"Avere coniugazione": "TipoConiugazioneVerboVolgare:VerboVolgareAusiliareAvere"},
|
||||
"Tempi": {"Indicativo presente": "TipoTempoVerboVolgare:PresenteIndicativoVerboVolgare", "Indicativo passato prossimo": "TipoTempoVerboVolgare:PassatoProssimoIndicativoVerboVolgare",
|
||||
"Indicativo imperfetto": "TipoTempoVerboVolgare:ImperfettoIndicativoVerboVolgare", "Indicativo passato remoto": "TipoTempoVerboVolgare:PassatoRemotoIndicativoVerboVolgare",
|
||||
"Indicativo trapassato prossimo": "TipoTempoVerboVolgare:TrapassatoProssimoIndicativoVerboVolgare", "Indicativo trapassato remoto": "TipoTempoVerboVolgare:TrapassatoRemotoIndicativoVerboVolgare",
|
||||
"Indicativo futuro semplice": "TipoTempoVerboVolgare:FuturoSempliceIndicativoVerboVolgare", "Indicativo futuro anteriore": "TipoTempoVerboVolgare:FuturoAnterioreIndicativoVerboVolgare",
|
||||
"Congiuntivo presente": "TipoTempoVerboVolgare:PresenteCongiuntivoVerboVolgare", "Congiuntivo imperfetto": "TipoTempoVerboVolgare:ImperfettoCongiuntivoVerboVolgare",
|
||||
"Congiuntivo passato": "TipoTempoVerboVolgare:PassatoCongiuntivoVerboVolgare", "Congiuntivo trapassato": "TipoTempoVerboVolgare:TrapassatoCongiuntivoVerboVolgare",
|
||||
"Condizionale presente": "TipoTempoVerboVolgare:PresenteCondizionaleVerboVolgare", "Condizionale passato": "TipoTempoVerboVolgare:PassatoCondizionaleVerboVolgare",
|
||||
"Imperativo presente": "TipoTempoVerboVolgare:PresenteImperativoVerboVolgare", "Infinito presente": "TipoTempoVerboVolgare:PresenteInfinitoVerboVolgare",
|
||||
"Infinito passato": "TipoTempoVerboVolgare:PassatoInfinitoVerboVolgare", "Participio presente": "TipoTempoVerboVolgare:PresenteParticipioVerboVolgare",
|
||||
"Participio passato": "TipoTempoVerboVolgare:PassatoParticipioVerboVolgare", "Gerundio presente": "TipoTempoVerboVolgare:PresenteGerundioVerboVolgare",
|
||||
"Gerundio passato": "TipoTempoVerboVolgare:PassatoGerundioVerboVolgare"}
|
||||
|
||||
}
|
||||
`
|
||||
|
||||
sottoCategorieSostantivi=`{
|
||||
"Genere lemma": {"Lemma femminile": "TipoGenereLemmaSostantivoVolgare:GenereFemminileLemmaSostantivoVolgare", "Lemma maschile": "TipoGenereLemmaSostantivoVolgare:GenereMaschileLemmaSostantivoVolgare"},
|
||||
"Genere forma": {"Forma femminile": "TipoGenereSostantivoVolgare:GenereFemminileSostantivoVolgare", "Forma maschile": "TipoGenereSostantivoVolgare:GenereMaschileSostantivoVolgare"},
|
||||
"Numero": {"Singolare": "TipoNumeroSostantivoVolgare:NumeroSingolareSostantivoVolgare", "Plurale": "TipoNumeroSostantivoVolgare:NumeroPluraleSostantivoVolgare"},
|
||||
"riflpers": {"In locuzione": "SostantivoVolgareInLocuzione:Lv_lv"},
|
||||
"Declinazione sostantivo": {"Prima declinazione": "TipoDeclinazioneSostantivoVolgare:PrimaDeclinazioneSostantivoVolgare", "Seconda declinazione": "TipoDeclinazioneSostantivoVolgare:SecondaDeclinazioneSostantivoVolgare",
|
||||
"Terza declinazione": "TipoDeclinazioneSostantivoVolgare:TerzaDeclinazioneSostantivoVolgare"}
|
||||
}
|
||||
`
|
||||
|
||||
//sottoCategorie=`{"verbovolgare": ["Diatesi,2", "Transitivita,2", "Genere,2", "Numero,2", "Pers,1", "Rifl,1", "Coniugazione,n", "Tempi,n", "Persona,n", "Funzione,n", "Declinazione,n"],
|
||||
//"sostantivovolgare": ["pippo,2", "pluto,2"]}`
|
||||
|
|
Loading…
Reference in New Issue