From d14adbc894abb4765519b13b60c02c19647b21d2 Mon Sep 17 00:00:00 2001 From: cesare Date: Wed, 21 Dec 2022 17:11:37 +0100 Subject: [PATCH 1/2] implementazione ricercqa sintattica, start --- js/utils.js | 454 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 372 insertions(+), 82 deletions(-) diff --git a/js/utils.js b/js/utils.js index aae53e6..393cb61 100644 --- a/js/utils.js +++ b/js/utils.js @@ -136,87 +136,6 @@ _ "whitespace"= " "* ` -var categoriegrammaticaliGrammar=`Expression - = head:(Filtro){return head.join()} - -Filtro - = fhead:("v")? tail:( transitivita? diatesi? impersonalita? - coniugazione? modotempo? - persona? funzione? declinazione? - genere? numero? grado?){return tail} - - -diatesi= [a|p] {if (text()=='a') return ' Attivo'; else return ' Passivo';} - -transitivita=[i|t]? {if (text()=='t') return ' Transitivo'; else if (text()=='i') return ' Intransitivo';} - -impersonalita=([*|+])? {if (text()=='*') return ' Impersonale'; else if (text()=='+')return ' Riflessivo';} - -coniugazione=[1|2|3|4|5]? {switch(parseInt(text())){ - case(1): return ' Prima coniugazione'; - case(2): return ' Seconda coniugazione'; - case(3): return ' Terza coniugazione'; - case(4): return ' Ausiliare essere' - case(5): return ' Ausiliare avere'}} -modotempo=modo:"ip" {return('Presente indicativo')}/ - "ib" {return("Passato Prossimo Indicativo")}/ - "ii" {return("Imperfetto Indicativo")}/ - "ir" {return("PassatoRemotoIndicativo")}/ - "is" {return( "TrapassatoProssimoIndicativo")}/ - "it" {return( "TrapassatoRemotoIndicativo")}/ - "if" {return("FuturoSempliceIndicativo")}/ - "ia" {return("FuturoAnterioreIndicativo")}/ - "cp" {return( "PresenteCongiuntivo")}/ - "ci" {return( "ImperfettoCongiuntivo")}/ - "cr" {return( "PassatoCongiuntivo")}/ - "ct" {return( "TrapassatoCongiuntivo")}/ - "dp" {return( "PresenteCondizionale")}/ - "dr" {return( "PassatoCondizionale")}/ - "mp" {return( "PresenteImperativo")}/ - "fp" {return( "PresenteInfinito")}/ - "fr" {return( "PassatoInfinito")}/ - "pp" {return( "PresenteParticipio")}/ - "pr" {return( "PassatoParticipio")}/ - "gp" {return( "Presente gerundio")}/ - "gr" {return( "PassatoGerundio")}/ - "pf" {return( "ParticipioFuturo")} -persona="s1" {return('Prima persona singolare')}/ - "s2" {return('Seconda persona singolare')}/ - "s3" {return('Terza persona singolare')}/ - "p1" {return('Prima persona plurale')}/ - "p2" {return('Seconda persona plurale')}/ - "p3" {return('Terza persona plurale')} - - -funzione="a" {return('Verbo Funzione Aggettivo')}/ - "sm" {return('Verbo Funzione Sostantivo maschile')}/ - "sf" {return('Verbo Funzione Sostantivo femminile')}/ - "b" {return('Verbo Funzione Avverbio')}/ - "l" {return('Verbo Funzione Locuzione')} - - -declinazione=[1|2|3|4|5] {switch(parseInt(text())){ - case(1): return ' Prima declinazione'; - case(2): return ' Seconda declinazione'; - case(3): return ' Terza declinazione'; - case(4): return ' nd' - case(5): return ' nd'}} - -genere=[f|m] {if (text()=='f') return ' Femminile'; else if (text()=='m') return ' Maschile';} - -numero=[s|p] {if (text()=='s') return ' Singolare'; else if (text()=='p') return ' Plurale';} - -grado="c+" {return('Grado c+ singolare')}/ - "c-" {return('Grado c-')}/ - "c=" {return('Grado c=')} - -Integer "integer" - = _ [0-9]+ { return parseInt(text(), 10); } - -_ "whitespace"= " "* - -` - var testmm = 0 @@ -232,9 +151,10 @@ PREFIX xsd: PREFIX ontolex: PREFIX olires: PREFIX comm: +PREFIX syntit: SELECT (?form as ?IRIForma) (?Rappresentazione as ?Forma) (?lm as ?Lemma) (?textver as ?Verso) (?NumVerso as ?NumeroVerso) -(?t_canto as ?Canto) (?t_cantica as ?Cantica) ?pos +(?t_canto as ?Canto) (?t_cantica as ?Cantica) ?pos ?clatype ?clafunction ?clfr ?clto ?cl WHERE { FILTER(REGEX(?Rappresentazione, "^andare$", "i")) . FILTER(LANGMATCHES(LANG(?Rappresentazione), "it")) @@ -252,6 +172,19 @@ WHERE { olires:hasStructuralComponent ?ver. ?cantica ecrm:P102_has_title ?t_cantica; olires:hasStructuralComponent ?canto. + ?clocc orl:occurrenceOf ?cl ; + olires:occursInRegion ?frag ; + ecrm:P148_has_component ?fa . + + ?sentence a syntit:Sentence ; + ecrm:P190_has_symbolic_content ?text ; + syntit:hasSyntacticalComponent ?cl. + ?cl syntit:hasClauseType ?clatype ; + ecrm:P190_has_symbolic_content ?cltext ; + syntit:hasClauseFunction ?clafunction. + + ?frag olires:fragmentRegionFrom ?clfr ; + olires:fragmentRegionTo ?clto . }` orlprefix = 'https://dantenetwork.it/ontology/orl/current/' @@ -880,4 +813,361 @@ data21 = `{"verbovolgare": {"subject": {"termType": "Variable", "value":"form"}, "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": "https://dantenetwork.it/ontology/orl/current/FormaLocuzioneVolgare"}} } ` + +/* +* +*Tipi sintattici +* +*/ +var funzione_calusola=` +{ + "princ": "hasClauseFunction:MainClause", + "subord i": "hasClauseFunction:SubordinateClause", + "subord ii": "", + "subord iii": "", + "subord iv": "", + "subord v": "", + "subord vi": "", + "subord vii": "", + "coord i": "hasClauseFunction:CoordinateClause", + "coord ii": "", + "coord iii": "", + "coord iv": "", + "coord v": "", + "pcoord": "hasClauseFunction:ParentheticalCoordinateClause", + "parent": "hasClauseFunction:ParentethicalClause", + "coord 0": "hasClauseFunction:PseudoCoordinateClause" +} + +` + + +var macrotipi_sint=` +{ + "macro avv": "hasClauseType:Avversativa", + "macro caus": "hasClauseType:Causale", + "macro compar": "hasClauseType:Comparativa", + "macro conces": "hasClauseType:Concessiva", + "macro consec": "hasClauseType:Consecutiva", + "macro dich": "hasClauseType:Dichiarativa", + "macro eccettu": "hasClauseType:Eccettuativa", + "macro epesege": "hasClauseType:Epesegetica", + "macro escl": "hasClauseType:Esclamativa", + "macro esclu": "hasClauseType:Esclusiva", + "macro finale": "hasClauseType:Finale", + "macro inter": "hasClauseType:Interrogativa", + "macro ipotet": "hasClauseType:Ipotetica", + "macro iussi": "hasClauseType:Iussiva", + "macro limitat": "hasClauseType:Limitativa", + "macro maniera": "hasClauseType:DiManiera", + "macro modale": "hasClauseType:Modale", + "macro obliqua": "hasClauseType:Obliqua", + "macro oggettiva": "hasClauseType:Oggettiva", + "macro otta": "hasClauseType:Ottativa", + "macro pare mod": "hasClauseType:ParenteticaModalizzante", + "macro pare sub": "hasClauseType:ParenteticaConValoreDiSubordinata", + "macro pred": "hasClauseType:Predicativa", + "macro pseudo": "hasClauseType:Pseudocoordinata", + "macro rel": "hasClauseType:Relativa", + "macro sog": "hasClauseType:Soggettiva", + "macro strum": "hasClauseType:Strumentale", + "macro sub": "hasClauseType:SubordinataConFunzioneDiRipresa", + "macro temp": "hasClauseType:Temporale" +} +` +var tipi_sint=` +{ + "avv caus": "hasClauseType:CoordinataAvversativaCausale", + "avv comp ug": "hasClauseType:CoordinataAvversativaComparativaDiUguaglianza", + "avv cons antec": "hasClauseType:CoordinataAvversativaConsecutivaConAntecedente", + "avv dich": "hasClauseType:CoordinataAvversativaDichiarativa", + "avv fin": "hasClauseType:CoordinataAvversativaFinale", + "avv int x": "hasClauseType:CoordinataAvversativaInterrogativaDiTipoX", + "avv int x ret": "hasClauseType:CoordinataAvversativaInterrogativaDiTipoXRetorica", + "avv ipo caus": "hasClauseType:CoordinataAvversativaIpoteticaConValoreCausale", + "avv iuss dir": "hasClauseType:CoordinataAvversativaIussivaDiretta", + "avv iuss indir": "hasClauseType:CoordinataAvversativaIussivaIndiretta", + "avv modaliz ott intr": "hasClauseType:CoordinataAvversativaModalizzanteOttativaConIntroduttore", + "avv ogg": "hasClauseType:CoordinataAvversativaOggettiva", + "avv ogg perc": "hasClauseType:CoordinataAvversativaOggettiva", + "avv rel app": "hasClauseType:CoordinataAvversativaRelativaAppositiva", + "avv rel app comp ug": "hasClauseType:CoordinataAvversativaRelativaAppositivaInConstruttoComparativo", + "avv rel app cons antec": "hasClauseType:CoordinataAvversativaRelativaAppositivaConValoreConsecutivo", + "avv rel giust": "hasClauseType:CoordinataAvversativaRelativaGiustapposta", + "avv rel ind": "hasClauseType:CoordinataAvversativaRelativaIndipendente", + "avv rel ind temp": "hasClauseType:CoordinataAvversativaRelativaIndipendenteTemporale", + "avv rel restr": "hasClauseType:CoordinataAvversativaRelativaRestrittiva", + "avv rel restr comp ug": "hasClauseType:CoordinataAvversativaRelativaRestrittivaInCostruttoComparativo", + "avv sogg": "hasClauseType:CoordinataAvversativaSoggettiva", + "avv temp": "hasClauseType:CoordinataAvversativaTemporale", + "comp disug": "hasClauseType:ComparativaDiDisuguaglianza", + "comp disug ipo": "hasClauseType:ComparativaDiDisuguaglianzaConValoreIpotetico", + "comp fin": "hasClauseType:ComparativaConValoreFinale", + "comp ipo": "hasClauseType:ComparativaConValoreIpotetico", + "comp lim": "hasClauseType:ComparativaConValoreLimitativo", + "comp mod": "hasClauseType:ComparativaConValoreModale", + "comp temp": "hasClauseType:ComparativaConValoreTemporale", + "comp ug": "hasClauseType:ComparativaDiUguaglianza", + "comp ug rel ind temp": "hasClauseType:ComparativaDiUguaglianzaConValoreDiRelativaIndipendenteTemporale", + "conc acond": "hasClauseType:ConcessivaAcondizionale", + "conc cond": "hasClauseType:ConcessivaCondizionale", + "conc fatt": "hasClauseType:ConcessivaFattuale", + "cong asind comp ug": "hasClauseType:CoordinataAsindeticaComparativaDiUguaglianza", + "cong asind cons antec": "hasClauseType:CoordinataAsindeticaConsecutivaConAntecedente", + "cong asind dich": "hasClauseType:CoordinataAsindeticaDichiarativa", + "cong asind epes": "hasClauseType:CoordinataAsindeticaEpesegetica", + "cong asind esclam": "hasClauseType:CoordinataAsindeticaEsclamativa", + "cong asind fin": "hasClauseType:CoordinataAsindeticaFinale", + "cong asind int altern": "hasClauseType:CoordinataAsindeticaInterrogativaAlternativa", + "cong asind int altern ret": "hasClauseType:CoordinataAsindeticaInterrogativaAlternativaRetorica", + "cong asind int disg": "hasClauseType:CoordinataAsindeticaInterrogativaDisgiuntiva", + "cong asind int x": "hasClauseType:CoordinataAsindeticaInterrogativaDiTipoX", + "cong asind int x ret": "hasClauseType:CoordinataAsindeticaInterrogativaDiTipoXRetorica", + "cong asind ipo": "hasClauseType:CoordinataAsindeticaIpotetica", + "cong asind iuss dir": "hasClauseType:CoordinataAsindeticaIussivaDiretta", + "cong asind iuss indir": "hasClauseType:CoordinataAsindeticaIussivaIndiretta", + "cong asind man": "hasClauseType:CoordinataAsindeticaDiManiera", + "cong asind ogg": "hasClauseType:CoordinataAsindeticaOggettiva", + "cong asind ogg perc": "hasClauseType:CoordinataAsindeticaOggettiva", + "cong asind ott intr": "hasClauseType:CoordinataAsindeticaOttativaConIntroduttore", + "cong asind ott libera": "hasClauseType:CoordinataAsindeticaOttativaLibera", + "cong asind rel app": "hasClauseType:CoordinataAsindeticaRelativaAppositiva", + "cong asind rel app comp disug": "hasClauseType:CoordinataAsindeticaRelativaAppositivaInConstruttoComparativo", + "cong asind rel app giust": "hasClauseType:CoordinataAsindeticaRelativaGiustapposta", + "cong asind rel ind": "hasClauseType:CoordinataAsindeticaRelativaIndipendente", + "cong asind rel ind temp caus": "hasClauseType:CoordinataAsindeticaRelativaIndipendenteConValoreTemporaleCausale", + "cong asind rel restr": "hasClauseType:CoordinataAsindeticaRelativaRestrittiva", + "cong asind rel restr comp ug": "hasClauseType:CoordinataAsindeticaRelativaRestrittivaInConstruttoComparativo", + "cong asind sogg soll": "hasClauseType:CoordinataAsindeticaSoggettivaASollevamento", + "cong asind subord": "hasClauseType:CoordinataAsindeticaSubordinata", + "cong asind temp": "hasClauseType:CoordinataAsindeticaTemporale", + "cong caus": "hasClauseType:CoordinataCongiuntivaCausale", + "cong comp disug": "hasClauseType:CoordinataCongiuntivaComparativaDiDisuguaglianza", + "cong comp ipo": "hasClauseType:CoordinataCongiuntivaComparativaConValoreIpotetico", + "cong comp lim": "hasClauseType:CoordinataCongiuntivaComparativaConValoreLimitativo", + "cong comp mod": "hasClauseType:CoordinataCongiuntivaComparativaConValoreModale", + "cong comp ug": "hasClauseType:CoordinataCongiuntivaComparativaDiUguaglianza", + "cong conc cond": "hasClauseType:CoordinataCongiuntivaConcessivaCondizionale", + "cong conc fatt": "hasClauseType:CoordinataCongiuntivaConcessivaFattuale", + "cong concl cons antec": "hasClauseType:CoordinataConclusivaConsecutivaConAntecedente", + "cong concl dich": "hasClauseType:CoordinataConclusivaDichiarativa", + "cong concl dich ill": "hasClauseType:CoordinataConclusivaDichiarativaIllocutiva", + "cong concl iuss dir": "hasClauseType:CoordinataConclusivaIussivaDiretta", + "cong concl iuss dir perifr": "hasClauseType:CoordinataConclusivaIussivaDirettaPerifrastica", + "cong concl iuss indir": "hasClauseType:CoordinataConclusivaIussivaIndiretta", + "cong cons antec": "hasClauseType:CoordinataCongiuntivaConsecutivaConAntecedente", + "cong cons antec epes": "hasClauseType:CoordinataCongiuntivaConsecutivaConAntecedenteEpisegetica", + "cong cons antec fin": "hasClauseType:CoordinataCongiuntivaConsecutivaConAntecedenteConValoreFinale", + "cong cons caus": "hasClauseType:CoordinataConsecutivaCausale", + "cong cons dich": "hasClauseType:CoordinataConsecutivaDichiarativa", + "cong cons ell": "hasClauseType:CoordinataCongiuntivaConsecutivaEllittica", + "cong cons libera": "hasClauseType:CoordinataCongiuntivaConsecutivaLibera", + "cong cons libera fin": "hasClauseType:CoordinataCongiuntivaConsecutivaLiberaConValoreFinale", + "cong cons post": "hasClauseType:CoordinataCongiuntivaConsecutivaPosposta", + "cong corr dich": "hasClauseType:CoordinataCorrelativaDichiarativa", + "cong corr fin": "hasClauseType:CoordinataCorrelativaFinale", + "cong corr lim": "hasClauseType:CoordinataCorrelativaLimitativa", + "cong corr sogg infinitoprep": "hasClauseType:CoordinataCorrelativaSoggettivaAInfinitoPreposizionale", + "cong dich": "hasClauseType:CoordinataCongiuntivaDichiarativa", + "cong dich ill": "hasClauseType:CoordinataCongiuntivaDichiarativaIllocutiva", + "cong eccett": "hasClauseType:CoordinataCongiuntivaEccettuativa", + "cong epes": "hasClauseType:CoordinataCongiuntivaEpesegetica", + "cong esclam": "hasClauseType:CoordinataCongiuntivaEsclamativa", + "cong esclus": "hasClauseType:CoordinataCongiuntivaEsclusiva", + "cong espl dich": "hasClauseType:CoordinataEsplicativaDichiarativa", + "cong espl obl": "hasClauseType:CoordinataEsplicativaObliqua", + "cong espl ogg": "hasClauseType:CoordinataEsplicativaOggettiva", + "cong espl rel app antec": "hasClauseType:CoordinataEsplicativaRelativaAppositivaConAntecedente", + "cong espl rel ind mod": "hasClauseType:CoordinataEsplicativaRelativaIndipendenteConValoreModale", + "cong fin": "hasClauseType:CoordinataCongiuntivaFinale", + "cong int altern": "hasClauseType:CoordinataCongiuntivaInterrogativaAlternativa", + "cong int x": "hasClauseType:CoordinataCongiuntivaInterrogativaDiTipoX", + "cong int x ret": "hasClauseType:CoordinataCongiuntivaInterrogativaDiTipoXRetorica", + "cong ipo": "hasClauseType:CoordinataCongiuntivaIpotetica", + "cong ipo caus": "hasClauseType:CoordinataCongiuntivaIpoteticaConValoreCausale", + "cong ipo sogg": "hasClauseType:CoordinataCongiuntivaIpoteticaSoggettiva", + "cong iuss dir": "hasClauseType:CoordinataCongiuntivaIussivaDiretta", + "cong iuss indir": "hasClauseType:CoordinataCongiuntivaIussivaIndiretta", + "cong lim": "hasClauseType:CoordinataCongiuntivaLimitativa", + "cong man": "hasClauseType:CoordinataCongiuntivaDiManiera", + "cong modaliz ott intr": "hasClauseType:CoordinataCongiuntivaModalizzanteOttativaConIntroduttore", + "cong obl": "hasClauseType:CoordinataCongiuntivaObliqua", + "cong ogg": "hasClauseType:CoordinataCongiuntivaOggettiva", + "cong ogg perc": "hasClauseType:CoordinataCongiuntivaOggettiva", + "cong ott libera": "hasClauseType:CoordinataCongiuntivaLibera", + "cong rel app": "hasClauseType:CoordinataCongiuntivaRelativaAppositiva", + "cong rel app comp disug": "hasClauseType:CoordinataCongiuntivaRelativaAppositivaInCostruttoComparativoDiDisuguaglianza", + "cong rel app comp ug": "hasClauseType:CoordinataCongiuntivaRelativaAppositivaInCostruttoComparativoDiUguaglianza", + "cong rel app cons": "hasClauseType:CoordinataCongiuntivaRelativaAppositivaConValoreConsecutivo", + "cong rel app epes": "hasClauseType:CoordinataCongiuntivaRelativaAppositivaConValoreDiEpisegetica", + "cong rel app fin": "hasClauseType:CoordinataCongiuntivaRelativaAppositivaConValoreFinale", + "cong rel app giust": "hasClauseType:CoordinataCongiuntivaRelativaGiustapposta", + "cong rel app giust caus": "hasClauseType:CoordinataCongiuntivaRelativaGiustappostaConValoreCausale", + "cong rel app temp": "hasClauseType:CoordinataCongiuntivaRelativaAppositivaConValoreTemporale", + "cong rel impl": "hasClauseType:CoordinataCongiuntivaRelativaImplicita", + "cong rel impl lim": "hasClauseType:CoordinataCongiuntivaRelativaImplicitaConValoreLimitativo", + "cong rel ind": "hasClauseType:CoordinataCongiuntivaRelativaIndipendente", + "cong rel ind acond": "hasClauseType:CoordinataCongiuntivaRelativaIndipendenteAcondizionale", + "cong rel ind ipo": "hasClauseType:CoordinataCongiuntivaRelativaIndipendenteConValoreIpotetico", + "cong rel ind mod": "hasClauseType:CoordinataCongiuntivaRelativaIndipendenteConValoreModale", + "cong rel ind mod comp ug": "hasClauseType:CoordinataCongiuntivaRelativaIndipendenteInCostruttoComparativoModale", + "cong rel ind temp": "hasClauseType:CoordinataCongiuntivaRelativaIndipendenteTemporale", + "cong rel pseudo": "hasClauseType:CoordinataCongiuntivaPseudoRelativa", + "cong rel restr": "hasClauseType:CoordinataCongiuntivaRelativaRestrittiva", + "cong rel restr caus": "hasClauseType:CoordinataCongiuntivaRelativaRestrittivaConValoreCausale", + "cong rel restr comp": "hasClauseType:CoordinataCongiuntivaRelativaRestrittivaInCostruttoComparativo", + "cong rel restr comp ug": "hasClauseType:CoordinataCongiuntivaRelativaRestrittivaInCostruttoComparativoDiUguaglianza", + "cong rel restr cons": "hasClauseType:CoordinataCongiuntivaRelativaRestrittivaConValoreConsecutivo", + "cong rel restr temp": "hasClauseType:CoordinataCongiuntivaRelativaRestrittivaTemporale", + "cong rip": "hasClauseType:CoordinataCongiuntivaConFunzioneDiRipresa", + "cong sogg": "hasClauseType:CoordinataCongiuntivaSoggettiva", + "cong spec": "hasClauseType:CoordinataCongiuntivaSpecificativa", + "cong strum": "hasClauseType:CoordinataCongiuntivaStrumentale", + "cong subord": "hasClauseType:CoordinataCongiuntivaSubordinata", + "cong temp": "hasClauseType:CoordinataCongiuntivaTemporale", + "cong temp caus": "hasClauseType:CoordinataCongiuntivaTemporaleConValoreCausale", + "cons antec": "hasClauseType:ConsecutivaConAntecedente", + "cons antec epes": "hasClauseType:ConsecutivaConAntecedenteEpesegetica", + "cons antec fin": "hasClauseType:ConsecutivaConAntecedenteConValoreFinale", + "cons antec temp": "hasClauseType:ConsecutivaConAntecedenteConValoreTemporale", + "cons ell": "hasClauseType:ConsecutivaEllittica", + "cons libera": "hasClauseType:ConsecutivaLibera", + "cons libera fin": "hasClauseType:ConsecutivaLiberaConValoreFinale", + "cons post": "hasClauseType:ConsecutivaPosposta", + "dich": "hasClauseType:Dichiarativa", + "dich ill": "hasClauseType:DichiarativaIllocutiva", + "disg comp disug temp": "hasClauseType:CoordinataDisgiuntivaComparativaDiDisuguaglianzaConValoreTemporale", + "disg conc acond": "hasClauseType:CoordinataDisgiuntivaConcessivaAcondizionale", + "disg conc cond": "hasClauseType:CoordinataDisgiuntivaConcessivaCondizionale", + "disg cons libera": "hasClauseType:CoordinataDisgiuntivaConsecutivaLibera", + "disg corr dich": "hasClauseType:CoordinataDisgiuntivaCorrelativaDichiarativa", + "disg dich": "hasClauseType:CoordinataDisgiuntivaDichiarativa", + "disg epes": "hasClauseType:CoordinataDisgiuntivaEpesegetica", + "disg esclus": "hasClauseType:CoordinataDisgiuntivaEsclusiva", + "disg int altern": "hasClauseType:CoordinataDisgiuntivaInterrogativaAlternativa", + "disg int disg": "hasClauseType:CoordinataDisgiuntivaInterrogativaDisgiuntiva", + "disg int x": "hasClauseType:CoordinataDisgiuntivaInterrogativaDiTipoX", + "disg ipo": "hasClauseType:CoordinataDisgiuntivaIpotetica", + "disg lim": "hasClauseType:CoordinataDisgiuntivaLimitativa", + "disg man": "hasClauseType:CoordinataDisgiuntivaDiManiera", + "disg obl": "hasClauseType:CoordinataDisgiuntivaObliqua", + "disg ogg": "hasClauseType:CoordinataDisgiuntivaOggettiva", + "disg rel ind": "hasClauseType:CoordinataDisgiuntivaRelativaIndipendente", + "disg rel ind acond": "hasClauseType:CoordinataDisgiuntivaRelativaIndipendenteAcondizionale", + "disg rel ind temp": "hasClauseType:CoordinataDisgiuntivaRelativaIndipendenteTemporale", + "disg rel restr": "hasClauseType:CoordinataDisgiuntivaRestrittiva", + "disg rel restr cons": "hasClauseType:CoordinataDisgiuntivaRestrittivaConValoreConsecutivo", + "disg sogg": "hasClauseType:CoordinataDisgiuntivaSoggettiva", + "disg temp": "hasClauseType:CoordinataDisgiuntivaTemporale", + "eccett": "hasClauseType:Eccettuativa", + "eccett comp ug": "hasClauseType:EccettuativaConValoreDiComparativaDiUguaglianza", + "epes": "hasClauseType:Epesegetica", + "esclam": "hasClauseType:Esclamativa", + "esclus": "hasClauseType:Esclusiva", + "faltern": "hasClauseType:FalsaAlternativa", + "fcong": "hasClauseType:FalsaCongiuntiva", + "fin": "hasClauseType:Finale", + "fin ipo": "hasClauseType:FinaleConValoreIpotetico", + "fin rel giust": "hasClauseType:ConcorrenzaDelRelativoInFraseFinale", + "int altern": "hasClauseType:InterrogativaAlternativa", + "int altern ret": "hasClauseType:InterrogativaAlternativaRetorica", + "int disg": "hasClauseType:InterrogativaDisgiuntiva", + "int disg ret": "hasClauseType:InterrogativaDisgiuntivaRetorica", + "int x": "hasClauseType:InterrogativaDiTipoX", + "int x ret": "hasClauseType:InterrogativaDiTipoXRetorica", + "ipo": "hasClauseType:Ipotetica", + "ipo biaff": "hasClauseType:IpoteticaBiaffermativa", + "ipo caus": "hasClauseType:IpoteticaConValoreCausale", + "ipo eccett": "hasClauseType:IpoteticaConValoreEccettuativo", + "ipo obl": "hasClauseType:IpoteticaObliqua", + "ipo rel giust": "hasClauseType:IpoteticaRelativaGiustapposta", + "ipo sogg": "hasClauseType:IpoteticaSoggettiva", + "iuss aug": "hasClauseType:IussivaAugurativa", + "iuss dir": "hasClauseType:IussivaDiretta", + "iuss dir perifr": "hasClauseType:IussivaDirettaPerifrastica", + "iuss indir": "hasClauseType:IussivaIndiretta", + "lim": "hasClauseType:Limitativa", + "lim caus": "hasClauseType:LimitativaConValoreCausale", + "lim caus eccett": "hasClauseType:LimitativaConValoreCausaleEccettuativo", + "lim eccett": "hasClauseType:LimitativaConValoreEccettuativo", + "man": "hasClauseType:DiManiera", + "man gerundioprep": "hasClauseType:DiManieraAGerundioPreposizionale", + "man rel giust": "hasClauseType:ConcorrenzaDelRelativoInFraseDiManiera", + "mod": "hasClauseType:Modale", + "modaliz": "hasClauseType:Modalizzante", + "modaliz ott intr": "hasClauseType:ModalizzanteOttativaConIntroduttore", + "modalizz ott libera": "hasClauseType:ModalizzanteOttativaLibera", + "obl": "hasClauseType:Obliqua", + "ogg": "hasClauseType:Oggettiva", + "ogg aci": "hasClauseType:Oggettiva", + "ogg perc": "hasClauseType:Oggettiva", + "ott intr": "hasClauseType:OttativaConIntroduttore", + "ott libera": "hasClauseType:OttativaLibera", + "pred": "hasClauseType:Predicativa", + "rel app antec": "hasClauseType:RelativaAppositivaConAntecedente", + "rel app antec caus": "hasClauseType:RelativaAppositivaConAntecedenteConValoreCausale", + "rel app antec comp disug": "hasClauseType:RelativaAppositivaConAntecedenteInCostruttoComparativoDiDisuguaglianza", + "rel app antec comp ug": "hasClauseType:RelativaAppositivaConAntecedenteInCostruttoComparativoDiUguaglianza", + "rel app antec comp ug": "hasClauseType:RelativaConAntecedenteInCostruttoComparativoDiUguaglianza", + "rel app antec cons": "hasClauseType:RelativaAppositivaConAntecedenteConValoreConsecutivo", + "rel app antec eccett": "hasClauseType:RelativaAppositivaConAntecedenteInCostruttoEccettuativo", + "rel app antec fin": "hasClauseType:RelativaAppositivaConAntecedenteConValoreFinale", + "rel app antec fin cons": "hasClauseType:RelativaAppositivaConAntecedenteConValoreConsecutivoFinale", + "rel app antec giust": "hasClauseType:RelativaAppositivaConAntecedenteGiustapposta", + "rel app antec giust cons": "hasClauseType:RelativaAppositivaGiustappostaConValoreConsecutivo", + "rel app antec giust ipo": "hasClauseType:RelativaAppositivaGiustappostaConValoreIpotetico", + "rel app antec giust man": "hasClauseType:RelativaAppositivaGiustappostaConValoreDiManiera", + "rel app antec strum": "hasClauseType:RelativaAppositivaConAntecedenteConValoreStrumentale", + "rel giust": "hasClauseType:RelativaGiustapposta", + "rel impl": "hasClauseType:RelativaImplicita", + "rel impl cons": "hasClauseType:RelativaImplicitaConValoreConsecutivo", + "rel impl deon": "hasClauseType:RelativaImplicitaDeontica", + "rel impl fin": "hasClauseType:RelativaImplicitaConValoreFinale", + "rel impl lim": "hasClauseType:RelativaImplicitaConValoreLimitativo", + "rel ind": "hasClauseType:RelativaIndipendente", + "rel ind acond": "hasClauseType:RelativaIndipendenteAcondizionale", + "rel ind caus": "hasClauseType:RelativaIndipendenteInCostruttoCausale", + "rel ind comp": "hasClauseType:RelativaIndipendenteInCostruttoComparativo", + "rel ind ipo": "hasClauseType:RelativaIndipendenteConValoreIpotetico", + "rel ind mod": "hasClauseType:RelativaIndipendenteConValoreModale", + "rel ind mod comp ug": "hasClauseType:RelativaIndipendenteInCostruttoComparativoModale", + "rel ind temp": "hasClauseType:RelativaIndipendenteConValoreTemporale", + "rel ind temp acond": "hasClauseType:RelativaIndipendenteConValoreTemporaleAcondizionale", + "rel ind temp caus": "hasClauseType:RelativaIndipendenteConValoreTemporaleCausale", + "rel ind temp comp ug": "hasClauseType:RelativaIndipendenteInCostruttoComparativoDiUguaglianza", + "rel pseudo": "hasClauseType:PseudoRelativa", + "rel pseudo fin": "hasClauseType:PseudoRelativaConValoreFinale", + "rel pseudo scissa": "hasClauseType:PseudoRelativaScissa", + "rel pseudo scissa temp": "hasClauseType:PseudoRelativaScissaConValoreTemporale", + "rel restr antec": "hasClauseType:RelativaRestrittivaConAntecedente", + "rel restr antec caus": "hasClauseType:RelativaRestrittivaConAntecedenteConValoreCausale", + "rel restr antec comp disug": "hasClauseType:RelativaRestrittivaConAntecedenteInCostruttoComparativoDiDisuguaglianza", + "rel restr antec comp mod": "hasClauseType:RelativaRestrittivaConAntecedenteInCostruttoComparativoModale", + "rel restr antec comp ug": "hasClauseType:RelativaRestrittivaConAntecedenteInCostruttoComparativoDiUguaglianza", + "rel restr antec conc cond": "hasClauseType:RelativaRestrittivaConAntecedenteConValoreDiConcessivaCondizionale", + "rel restr antec conc fatt": "hasClauseType:RelativaRestrittivaConAntecedenteConValoreDiConcessivaFattuale", + "rel restr antec cons": "hasClauseType:RelativaRestrittivaConAntecedenteConValoreConsecutivo", + "rel restr antec eccett": "hasClauseType:RelativaRestrittivaConAntecedenteInCostruttoEccettuativo", + "rel restr antec fin": "hasClauseType:RelativaRestrittivaConAntecedenteConValoreFinale", + "rel restr antec ipo": "hasClauseType:RelativaRestrittivaConAntecedenteConValoreIpotetico", + "rel restr antec lim": "hasClauseType:RelativaRestrittivaConAntecedenteInCostruttoLimitativo", + "rel restr antec temp": "hasClauseType:RelativaRestrittivaConAntecedenteConValoreTemporale", + "rip": "hasClauseType:FunzioneDiRipresa", + "sogg": "hasClauseType:Soggettiva", + "sogg aci": "hasClauseType:Soggettiva", + "sogg id": "hasClauseType:Soggettiva", + "sogg infinitoprep": "hasClauseType:Soggettiva", + "sogg scissa": "hasClauseType:SoggettivaScissa", + "sogg soll": "hasClauseType:SoggettivaASollevamento", + "spec": "hasClauseType:Specificativa", + "spec aci": "hasClauseType:Specificativa", + "spec infinitoprep": "hasClauseType:Specificativa", + "strum": "hasClauseType:Strumentale", + "subord": "hasClauseType:Subordinata", + "temp": "hasClauseType:Temporale", + "temp comp ug": "hasClauseType:TemporaleConValoreComparativo", + "temp ipo": "hasClauseType:TemporaleConValoreIpotetico", +} + +` From 5e00aec20f8a101ec6dfab964d8e0b1400536072 Mon Sep 17 00:00:00 2001 From: Luca Trupiano Date: Wed, 21 Dec 2022 19:02:41 +0100 Subject: [PATCH 2/2] nuova definizione del contesto nelle opzioni ricerca semplice --- index_3.2.html | 1976 ++++++++++++++++++++++++++++++++++++++++++++++ js/script_3.2.js | 1245 +++++++++++++++++++++++++++++ 2 files changed, 3221 insertions(+) create mode 100644 index_3.2.html create mode 100644 js/script_3.2.js diff --git a/index_3.2.html b/index_3.2.html new file mode 100644 index 0000000..69ec2d6 --- /dev/null +++ b/index_3.2.html @@ -0,0 +1,1976 @@ + + + + + + LiDa Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
+
+
+ +
+
+ +
+
+ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 +
+
+
+
+
+
+ +
+
+
+
+ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 +
+
+
+
+
+
+ +
+
+
+
+ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 +
+
+
+
+
+ +
 
+ +
+
+
+ +
+
+ Ricerca + Avanzata + +
+
+
+
+ +
+ +
+ + +
+
+ + + +
+ +
+ +
+
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+ + +
+
+ Definisci il contesto: +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
Seleziona i canti:
+ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
Seleziona i canti:
+ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
Seleziona i canti:
+ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 +
+
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ Tutta l'opera +
+
  +
+
+ +
+ +
+ + + + +
+ +
+
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+ +
+
+ +
+
+ Definisci i filtri usando le clausole e le condizioni logiche: +
+
+ + + + + +
+ +
+
+
AND
+
+
    +
  • Nessuna + clausola aggiunta.
  • +
+
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ + +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/js/script_3.2.js b/js/script_3.2.js new file mode 100644 index 0000000..94e5498 --- /dev/null +++ b/js/script_3.2.js @@ -0,0 +1,1245 @@ +/** + * + */ + +/* necessari per il bundle: +import "./jquery-global.js"; +require("../node_modules/jquery-ui-dist/jquery-ui.js"); +require("../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"); +*/ + +var getJsonQuery; + +$(document).ready(function() { + + //$('#multidraggable1').multidraggable(); + + $("#dropAdvanced").on('click', function () { + queryJson.QueryAvanzata = "1"; + $("#simpleSearchDiv").removeClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: none;"); + $("#collapseOptions").collapse('hide'); + $("#collapseAdvanced").collapse('show'); + $("#advancedSearchDiv").addClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: flex;"); + }); + + $("#dropSimple").on('click', function () { + queryJson.QueryAvanzata = "0"; + $("#advancedSearchDiv").removeClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: none;"); + $("#simpleSearchDiv").addClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: flex;"); + $("#collapseAdvanced").collapse('hide'); + }); + + $("#copiaTesto").prop("disabled", true); + + // Evento: click sul bottone di copia dei risultati testuali + $("#copiaTesto").on("click", function(){ + $("#risultatitesto").copy2clipboard(); + }); + + $("#copiaQuery").prop("disabled", true); + + // Funzioni di gestione del comportamento dei bottoni collapse + $('#collapseLogic').on('hidden.bs.collapse', function (e) { + if (e.target.id == "collapseLogic") { + $("#showLogic").html('Mostra pannello'); + $("#collapseAdvanced").collapse('hide'); + }; + }) + + $('#collapseLogic').on('shown.bs.collapse', function () { + $("#showLogic").html('Nascondi pannello'); + $("#collapseAdvanced").collapse('show'); + }) + + $('#collapseOptions').on('hidden.bs.collapse', function () { + $("#showOptions").html('Mostra Opzioni'); + }) + + $('#collapseOptions').on('shown.bs.collapse', function () { + $("#showOptions").html('Nascondi Opzioni'); + }) + + $('.collapse').on('hide.bs.collapse', function (e) { + if (e.target.id.substr(0,9) == "collapseC") { + var claIdNum = e.target.id.substr(9); + $("#claCollapse" + claIdNum)[0].removeAttribute("style"); + $("#claCollapse" + claIdNum).removeClass( "border-bottom-0" ); + $("#claCollapse" + claIdNum).addClass( "border border-primary" ); + e.stopPropagation(); + }; + }) + + $('.collapse').on('show.bs.collapse', function (e) { + if (e.target.id.substr(0,9) == "collapseC") { + var claIdNum = e.target.id.substr(9); + $("#claCollapse" + claIdNum)[0].setAttribute("style", "background-color: #dbe5f2 !important;border-color: #3d6ca9!important;border-bottom-left-radius: 0;border-bottom-right-radius: 0;"); + $("#claCollapse" + claIdNum).removeClass( "border border-primary" ); + $("#claCollapse" + claIdNum).addClass( "border-bottom-0" ); + e.stopPropagation(); + }; + }) + + $('#searchToggle').on('change', function() { + if ($(this).prop('checked')) { + queryJson.QueryAvanzata = "1"; + $("#simpleSearchDiv").removeClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: none;"); + $("#collapseOptions").collapse('hide'); + $("#advancedSearchDiv").addClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: flex;"); + $("#collapseAdvanced").collapse('show'); + $("#collapseLogic").collapse('show'); + } else { + queryJson.QueryAvanzata = "0"; + $("#collapseAdvanced").collapse('hide'); + $("#advancedSearchDiv").removeClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: none;"); + $("#simpleSearchDiv").addClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: flex;"); + }; + }); + + // Inizializza sortable + $( "#sortable0" ).sortable({ + items: "> li", + handle: ".handle" + }); + + // Inizializza selectable0 e definisce le funzioni + $("#selectable0").selectable({ + filter: ".sel-canto", + selected: function(event, ui) { + window.context0[ui.selected.id.substring(0,1)][ui.selected.id.substring(2)] = 1; + var tmpFocusBtn = "#plusBtn" + ui.selected.id.substring(0,1) + "-1" + $(tmpFocusBtn).focus(); + } + }); + + // Evento: click sul bottone di copia della query + $("#copiaQuery").on("click", function(){ + $('#sparqlquery').copy2clipboard(); + }); + + // Evento: modifica di un campo clausole + $("form #lemma_forma,#queryText,#opzioni_testo").on('change', function() { + refreshClaList(); + }); + + $('#cla-TabContent').on('change', '.monMe', function() { + refreshClaList(); + }); + + // Evento: click sull'icona rimuovi clausola + $('#cla-TabContent').on('click', '.removeCla', function() { + var claListItemId = $(this).closest('li').attr('id'); + var claIdNum = claListItemId.substr(6); + claListLen--; + $("#" + claListItemId)[0].remove(); + delete queryJson["Clausola" + claIdNum]; + refreshClaList(); + refreshSortables(); + }); + + // Evento: click sull'icona rimuovi condizione + $('#sortable0').on('click', '.removeCond', function() { + $(this).closest('ul').parent().remove(); + condListLen--; + refreshSortables(); + refreshConnectWith(); + if (claListLen == 0 && condListLen == 0) { + $('#sortable0').html(emptyClaList); + } + }); + + // Evento: click sulla lista di clausole nel dropbox "Aggiungi clausola di tipo:" o "aggiungi condizione logica:" + $('.btn-group a').on('click', function() { + var addClaN = $(this).attr('id'); + switch (addClaN) { + case "Grammaticale": + tabID++; + addGramCla(1,tabID); + break; + case "Sintattico": + tabID++; + addSyntCla(1,tabID); + break; + case "Metafore": + tabID++; + addMetaCla(0,tabID); + break; + case "andCond": + addLogicCond("AND","#sortable0"); + break; + case "orCond": + addLogicCond("OR","#sortable0"); + break; + default: + }; + refreshClaList(); + refreshSortables(); + }); + + // Evento: clausola spostata nella lista + $('#sortable0').sortable({ + opacity: 0.6, + cursor: 'move', + update: function() { + refreshSortables(); + } + }); + + // Evento: click sul bottone di edit delle clausole + $('#cla-TabContent').on('click', '.claAct', function() { + var claListItemId = $(this).closest('li').attr('id'); + var tabPanelId = "#" + claListItemId.substring(3); + if ($(this).prop('checked')) { + $(tabPanelId).attr("data-claActive", 1); + $(this).closest('li').find('.clatext').fadeTo( "slow", 1 ); + } else { + $(tabPanelId).attr("data-claActive", 0); + $(this).closest('li').find('.clatext').fadeTo( "slow", 0.6 ); + } + refreshSortables(); + }); + + // Evento: click sull'icona di refresh dei radio button + $('#cla-TabContent').on('click', '.radioReset', function() { + fSet = $(this).siblings('fieldset'); + if (fSet.find(":checked").length) { + radioChecked = fSet.find(":checked")[0]; + radioChecked.checked = false; + }; + refreshClaList(); + }); + + // Evento: click sull'icona di trash del contesto + $('.trashClaCont').on('click', function() { + var claIdNum = $(this)[0].id.substring(12); + $('#selectable' + claIdNum + " .ui-selectee").each(function() { + $(this).attr('style', "line-height: 1.2em"); + }); + $('#selectable' + claIdNum + " .ui-selected").removeClass( "ui-selected" ) + $('#selectable' + claIdNum + ' .sel-canti-intro').each(function() { + $(this).text("Seleziona i canti:") + });; + $("#contextText" + claIdNum).html("Tutta l'opera"); + eval("window.context" + claIdNum + " = [[],[],[]]"); + eval("queryJson.Clausola" + claIdNum + ".contesto = jsonContext0"); + $('#selectable' + claIdNum + " .show").removeClass( "show" ); + }); + + // Evento: click sull'icona di add del contesto + $('.addClaCont').on('click', function() { + var claIdNum = $(this).closest('.ui-selectable').attr('id').substr(10); + var selectedCanti = $(this).closest('.card').find('.ui-selected'); + if (selectedCanti.length == 0) { + $(this).closest('.card').find('.ui-selectee').each(function() { + $(this).addClass( "ui-selected" ); + eval('window.context' + claIdNum + '[$(this).attr("id").substring(0,1)][$(this).attr("id").substring(2)] = 1'); + }); + }; + eval("var context = window.context" + claIdNum); + parseContext(claIdNum); + hideContextCanti(claIdNum); + if ($(this).closest('.card').find('span:visible').length == 1) { + $(this).closest('.card').find('div .sel-canti-intro').text("Selezionati tutti i canti."); + }; + }); + + // Evento: click sull'icona di save local + $('#cla-TabContent').on('click', 'ion-icon[name="save-outline"]', function() { + var fileA = document.createElement("a"); + fileA.href = window.URL.createObjectURL(new Blob([JSON.stringify(queryJson)], {type: "text/plain;charset=utf-8"})); + fileA.download = "LiDaQuery.txt"; + fileA.click(); + fileA.remove(); + }); + + // Evento: click sull'icona di load local + $('#cla-TabContent').on('click', 'ion-icon[name="folder-open-outline"]', function() { + $('#apriFile').click(); + }); + + $("#apriFile").on('change', function() { + var file = $(this).prop('files')[0]; + var reader = new FileReader(); + reader.onload = function(data){ + queryJson = JSON.parse(data.target.result) + makeUpGui(queryJson); + }; + if (file) {reader.readAsText(file);} + }); + + // Evento: SCELTA CATEGORIA GRAMMATICALE + $('#cla-TabContent').on('change', 'select.catgram', function(e) { + e.preventDefault(); + var tabPaneId = ($(this).closest('.tab-pane').attr("id")); + var selectedValue = $(this).val(); + addCatgramSubcla(tabPaneId,selectedValue); + }); + + // Evento: Submit form + $("form").submit(function(e){ + e.preventDefault(); + }); + + // Evento: click sui bottoni Cerca + /** + + $("form #searchcomm,#searchcomm2").on('click', function(e) { + e.preventDefault(); + var qText = $("form #queryText")[0].value; + if (qText == "" && logicExprString == "") { + alert("Inserire un termine di ricerca od una clausola attiva!"); + return false; + } + const sparqlGenerator = sparqljs.Generator; + jsonQuery = buildSQ(queryJson); + //queryFields = []; + //for (var i in jsonQuery.variables) { + // queryFields.push(jsonQuery.variables[i].variable.value); + //} + console.log(jsonQuery); + //execQuery = new sparqlGenerator().stringify(jsonQuery); + //executeQuery(); + return false; + }); + */ + + // Evento: click sul checkbox di Ricerca avanzata + $('#cla-TabContent').on('click', '#advanSW', function() { + if ($(this).prop('checked')) { + $("#cla-Advanced").attr('style', "display: block;"); + queryJson.QueryAvanzata = "1"; + } else { + $("#cla-Advanced").attr('style', "display: none;"); + queryJson.QueryAvanzata = "0"; + //resetAdvGui(); + } + }); + + // Evento: click sul checkbox di Definisci contesto + $('#cla-TabContent').on('click', '#contextSW', function() { + if ($(this).prop('checked')) { + $("#contextTableDiv0").attr('style', "display: flex;"); + //queryJson.QueryAvanzata = "1"; + } else { + $("#contextTableDiv0").attr('style', "display: none;"); + //queryJson.QueryAvanzata = "0"; + } + }); + + // Evento: click sul bottone di reset azanzata + $('#cleanresult2').on('click', function() { + resetAdvGui(); + refreshClaList(); + }); + + + // Variabili JSON per i filtri + + var verboJson = { + "filtriverbo": { + "Diatesi": ["Attivo", "Passivo"], + "Transitivita": ["Transitivo", "Intransitivo"], + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Pers": ["Impersonale"], + "Rifl": ["Riflessivo"], + "Coniugazione": ["Qualsiasi coniugazione", "Prima coniugazione", "Seconda coniugazione", "Terza coniugazione", "Essere coniugazione", "Avere coniugazione"], + "Tempi": ["Qualsiasi tempo verbale", "Indicativo presente", "Indicativo passato prossimo", "Indicativo imperfetto", "Indicativo passato remoto", + "Indicativo trapassato prossimo", "Indicativo trapassato remoto", "Indicativo futuro semplice", "Indicativo futuro anteriore", "Congiuntivo presente", + "Congiuntivo imperfetto", "Congiuntivo passato", "Congiuntivo trapassato", "Condizionale presente", "Condizionale passato", "Imperativo presente", + "Infinito presente", "Infinito passato", "Participio presente", "Participio passato", "Gerundio presente", "Gerundio passato"], + "Persona" : ["Qualsiasi persona", "1ª persona singolare", "2ª persona singolare", "3ª persona singolare", "1ª persona plurale", "2ª persona plurale", "3ª persona plurale"], + "Funzione": ["Tutte le funzioni", "Aggettivo", "Sostantivo maschile", "Sostantivo femminile"], + "Declinazione": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"], + } + } + + var sostantivoJson = { + "filtrisostantivo": { + "Numero": ["Singolare", "Plurale"], + "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"], + } + } + + var aggettivoJson = { + "filtriaggettivo": { + "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"], + "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", + "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", + "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"] + } + } + + var pronomeJson = { + "filtripronome": { + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Classe_Persona": ["Qualsiasi 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", + "Clitico - accusativo", "Clitico - dativo", "Clitico - partitivo"], + "Tipo_Riflessivi": ["Qualsiasi tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"] + } + } + + var articoloJson = { + "filtriarticolo": { + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Tipo": ["Determinativo", "Indeterminativo"] + } + } + + var avverbioJson = { + "filtriavverbio": { + "Tipo": ["Qualsiasi tipo", "Al comparativo di maggioranza", "Al comparativo di minoranza", + "Al superlativo assoluto", "Al superlativo relativo", + "In Locuzione", "In Locuzione separato", "Proclitico", "Enclitico"] + } + } + + var preposizioneJson = { + "filtripreposizione": { + "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", + "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 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", + "Simmetrico", "Indiretto esperiente", "Indiretto dativo", "Indiretto oggetto", "Indiretto possessore", + "Indiretto benefattivo"] + } + } + + var congiunzioneJson = { + "filtricongiunzione": { + "Coo_sub": ["Coordinativa", "Subordinativa"], + "Tipo": ["Qualsiasi tipo", "Semplice", "Composta", "Locuzione", "Locuzione separata"], + "Coord_tipo": ["Qualsiasi coord. tipo", "Copulativa", "Disgiuntiva", "Avversativa", "Esplicativa", "Conclusiva", "Correlativa"], + "Subord_tipo": ["Qualsiasi subord. tipo", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Interrogativa", + "Finali", "Causali", "Concessiva", "Consecutiva", "Temporale", "Modale", + "Eccettuativa", "Comparativa", "Condizionale", "Esclusiva", "Limitativa"] + } + } + + var onomasticacitazioneJson = { + "filtrionomastica": { + "Tipo": ["Qualsiasi tipo", "Nome proprio", "Nome proprio separato", "Titolo"] + }, + + "filtricitazione": { + "Tipo": ["Qualsiasi tipo", "Latina", "Provenzale", "Francese", "Spagnola", "Ebraica", "Greca"] + } + } + + var categorie = { + "verbovolgare": "filtriverbo", + "sostantivovolgare": "filtrisostantivo", + "pronomevolgare": "filtripronome", + "aggettivovolgare": "filtriaggettivo", + "articolovolgare": "filtriarticolo", + "avverbiovolgare": "filtriavverbio", + "preposizionevolgare": "filtripreposizione", + "congiunzionevolgare": "filtricongiunzione", + "onomasticavolgare": "filtrionomastica", + "citazionevolgare": "filtricitazione" + } + + var catGrammsenzaspec = ['all', 'interiezionevolgare'] + + var subordinazioneJson = { + "subordinazione": { + "livello": ["Qualsiasi livello di subordinazione", "principale", "coordinata a una principale", "subordinata di I grado", + "subordinata di II grado", "subordinata di III grado", "subordinata di IV grado", "subordinata di V grado", + "subordinata di VI grado", "subordinata di VII grado", "coordinata a una subordinata di I grado", + "coordinata a una subordinata di II grado", "coordinata a una subordinata di III grado", + "coordinata a una subordinata di IV grado", "coordinata a una subordinata di V grado", "pseudo-coordinata", + "parentetica", "coordinata a una parentetica"] + } + } + + var categorieJson = $.extend({}, verboJson, sostantivoJson, pronomeJson, aggettivoJson, articoloJson, avverbioJson, preposizioneJson, congiunzioneJson, onomasticacitazioneJson); + + + // Variabili testuali per compattezza + var iconReset = '
'; + var iconCloseCond = '
'; + var emptyClaList = '
  • Nessuna clausola aggiunta.
  • '; + + var condLIplaceholderText1 = 'Trascina qui almeno 1 clausola o condizione'; + var condLIplaceholderText2 = 'Trascina qui almeno 2 clausole o condizioni'; + var condLIplaceholderText1d = 'Trascina qui almeno 1 clausola o condizione, oppure attiva le clausole inattive'; + var condLIplaceholderText2d = 'Trascina qui almeno 2 clausole o condizioni, oppure attiva le clausole inattive'; + var condLIplaceholderPart1 = '
  • '; + + // Variabili funzionali + var tabID = 0; + var claListLen = 0; + var condListLen = 0; + var logicExprString = ``; + var guiLogicString = ``; + var execQuery = ``; + var queryFields = []; // Contiene le intestazioni di colonna della tabella dei risultati + var contextE = [[],[],[]]; + var jsonContext0 = JSON.stringify(contextE); + window.context0 = [[],[],[]]; + var canticheList = ["Inferno","Purgatorio","Paradiso"]; + var queryJson = JSON.parse('{"EsprLogica":"", "LogicaGui":"", "QueryAvanzata": "0"}'); + queryJson.LiDaVersion = "1.0"; + queryJson.Clausola0 = JSON.parse('{"queryText": "", "lemma_forma": "lemma", "opzioni_testo": "parola", "TipoClausola": "0", "Attiva": "0"}'); + queryJson.Clausola0.contesto = context0; + queryJson.Clausola1 = JSON.parse('{"queryText": "", "lemma_forma": "lemma", "opzioni_testo": "parola", "TipoClausola": "0", "Attiva": "0"}'); + queryJson.Clausola1.contesto = context0; + const myEngine = new Comunica.QueryEngine(); + const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query"; + + // Fine variabili + + getJsonQuery = function(){ + return queryJson; + } + + async function executeQuery(){ + $("#loader").show(); + bindingsStream = await myEngine.queryBindings(execQuery, { sources: [ { type: 'sparql', value: sparqlEndpoint }, ], }); + $("#sparqlquery").val(execQuery); + $("#copiaQuery").prop("disabled", false); + var resultTablePart1 = ''; + var resultTablePart2 = ''; + var resultTablePart3 = ''; + var resultTablePart4 = ''; + var resultTablePart5 = '
    #
    '; + var resultTable = ''; + var latestVerso = ''; + var latestResult = ''; + var rowNum = 1; + for (var i = 0; i < queryFields.length; i++) { + resultTablePart2 = resultTablePart2 + '' + queryFields[i] + ''; + }; + var resultTable = resultTablePart1 + resultTablePart2 + resultTablePart3; + $('#resultsId1').empty(); + $('#resultsId1').addClass("small pb-2") + $("#risultatitesto").empty(); + try { + bindingsStream.on('data', (binding) => { + //console.log(binding.toString()); // Quick way to print bindings for testing + //console.log(binding.has('sub')); // Will be true + latestVerso = binding.get('Verso').value + latestResult = rowNum + '. "' + latestVerso.replace(binding.get('Forma').value, '*' + binding.get('Forma').value + '*') + '" (' + binding.get('Cantica').value + ', ' + binding.get('Canto').value + ', Verso ' + binding.get('NumeroVerso').value + ')\n'; + $("#risultatitesto").append(latestResult); + resultTablePart4 = '' + rowNum++ + ''; + for (var i = 0; i < queryFields.length; i++) { + if ( binding.get(queryFields[i]) != null){ + val = binding.get(queryFields[i]).value + } else { + val = "na" + } + resultTablePart4 = resultTablePart4 + '' + val + ""; + }; + resultTable = resultTable + resultTablePart4 + ''; + $("#loader").hide(); + }); + bindingsStream.on('end', () => { + $("#loader").hide(); + resultTable = resultTable + resultTablePart5; + $("#resultsId1").append(resultTable); + $("#copiaTesto").prop("disabled", false); + $('#resultTable').DataTable( { + colReorder: true, + language: { + url: 'dataTables.it-IT.json' + }, + //dom: 'Blfrtip', + dom: "<'row'<'col-sm-12 col-md-6'l><'col-sm-6 col-md-3'f><'col-sm-6 col-md-3 text-right'B>>" + "<'row'<'col-sm-12'tr>>" + "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>", + buttons: [ 'copy', 'excel', 'print' ] + }); + setTimeout(function(){ + buttonDiv = $("#resultsId1").find(".buttons-copy"); + $('').insertBefore(buttonDiv); + },300); + }); + } + catch(err) { + console.log(err.message); + $("#loader").hide(); + }; + }; + + // Funzione di creazione del tab delle clausole grammaticali + function addGramCla(active,tabID){ + window["context" + tabID] = [[],[],[]]; // ricordarsi il delete + if (active > 0) { + var checkInsert = ' checked="checked"'; + } else { + var checkInsert = ''; + }; + var sortableId = "#sortable0"; + var claText = "Categoria grammaticale:
    "; + addLIitem(sortableId,tabID,claText,checkInsert); + var clone = document.getElementById("tipogrammaticaleN").cloneNode(true); + clone.setAttribute("id","cla" + tabID); + clone.setAttribute("data-claActive", active); + clone.setAttribute("aria-labelledby","cla" + tabID + "-tab"); + clone.setAttribute("style", "background-color: #dbe5f2 !important;"); + //clone.removeAttribute("style"); + $('#claBody' + tabID).append(clone); + // se non cambio l'id della select react non rileva l'evento onchange: + $('#cla' + tabID + " #grammtypesN").attr("id","grammtypes" + tabID); + $('#cla' + tabID + " #lemma_formaN").attr("id","lemma_forma" + tabID); + $('#cla' + tabID + " #queryTextN").attr("id","queryText" + tabID); + $('#cla' + tabID + " #opzioni_testoN").attr("id","opzioni_testo" + tabID); + } + + // Funzione di creazione delle subclausole grammaticali basate sul valore scelto + function addCatgramSubcla(tabPaneId,selectedValue){ + var dettagliBox = $("#" + tabPaneId + " .dettaglifiltri"); + dettagliBox.html(""); + if (Object.keys(categorie).includes(selectedValue)) { + var filtro = categorie[selectedValue] + var keys = Object.keys(categorieJson[filtro]) + for (var key in keys) { + var vals = categorieJson[filtro][keys[key]] + switch (vals.length) { + case 2: + var element = $('
    '); + element.attr('class', ' d-flex flex-sm-nowrap pr-2 py-1 mb-1 form-group form-control justify-content-between'); + var rbfieldset = $('
    '); + var flexdiv1 = $('
    '); + var flexdiv2 = $('
    '); + var input1 = $(''); + var input2 = $(''); + var label1 = $('