diff --git a/js/cesareBrowse.js b/js/cesareBrowse.js
index a2bf380..9806c9b 100644
--- a/js/cesareBrowse.js
+++ b/js/cesareBrowse.js
@@ -1437,7 +1437,7 @@ function resetFrasi(){
var resultsInCantica=[]
var resultsInCanto=[]
- console.log('frase length '+searchwords.length)
+ console.log('frase, l. '+searchwords.length)
if(noContext || inf.length)
executeLocalSearch(searchwords, formeprima, (formeprima.length-searchwords.length), cantiche[0], inf, resultsInCantica, resultsInCanto)
if(noContext || pur.length)
@@ -1475,7 +1475,7 @@ function resetFrasi(){
break
}
for (var frind=0; frind
PREFIX comm:
PREFIX syntit:
-SELECT (?t_canto as ?Canto) (?t_cantica as ?Cantica) ?clatype ?clafunction ?clfr ?clto ?cl ?sentence ?cltext ?pos ?clocc
+SELECT (?t_canto as ?Canto) (?t_cantica as ?Cantica) ?clatype ?clafunction ?clfr ?clto ?cl ?sentence ?pos ?clocc
WHERE {
FILTER(REGEX(?Rappresentazione, "^buon$", "i")) .
FILTER(LANGMATCHES(LANG(?Rappresentazione), "it"))
@@ -407,13 +407,13 @@ function buildSQ(stquery) {
var parsedquery = parser.parse(ontoSparqlQuery);
console.log(stquery)
- if (stquery['EsprLogica'] != null && stquery['EsprLogica'].length > 1) {
+ if (stquery['QueryAvanzata'] == 1 && stquery['EsprLogica'] != null && stquery['EsprLogica'].length > 1) {
parsedquery = parser.parse(ontoSparqlQueryMultCond)
buildSPQuery(stquery)
return multipleCondSpQuery;
}
- if (stquery['EsprLogica'] != null && stquery['EsprLogica'] != '' && stquery['EsprLogica'].length == 1) {
+ if (stquery['QueryAvanzata'] == 1 && stquery['EsprLogica'] != null && stquery['EsprLogica'] != '' && stquery['EsprLogica'].length == 1) {
clause = stquery['EsprLogica']
filtroContesto=getFiltroContestoJson(JSON.parse(stquery[clause[0]]['contesto']))
@@ -462,68 +462,7 @@ function buildSQ(stquery) {
if (stquery['Clausola0']['queryText'] != "" && stquery['Clausola0']['Attiva'] == 1) {
searchtext = stquery['Clausola0']['queryText']
let strval = searchtext
- if (stquery['Clausola0']['lemma_forma'] == 'testo'){
- let prefixes=new Object()
- prefixes['orl']= 'https://dantenetwork.it/ontology/orl/current/'
- prefixes['ontolex']= 'http://www.w3.org/ns/lemon/ontolex#'
- prefixes['olires']= 'https://dantenetwork.it/ontology/olires/current/'
- prefixes['xsd']='http://www.w3.org/2001/XMLSchema#'
- let qry=new Object()
- let variables=[]
- let where=[]
- let whereobject=new Object()
- whereobject["type"]= "bgp"
- let triples=[]
- qry['queryType']='SELECT'
- let testo_tkns=strval.split(' ')
- var longest = testo_tkns.reduce(
- function(a, b) {
- return a.length > b.length ? a : b;
- }
- );
- optind=testo_tkns.indexOf(longest)
-
- for (tknid in testo_tkns){
- if (tknid>0 && tknid==optind){
- triples.unshift(getTestoWhereTriple('reg'+tknid, 'https://dantenetwork.it/ontology/olires/current/fragmentRegionFrom', 'pos'+tknid))
- triples.unshift(getTestoWhereTriple('fa'+tknid, 'https://dantenetwork.it/ontology/olires/current/OccursInRegion', 'reg'+tknid))
- triples.unshift(getTestoWhereTriple('fa'+tknid, 'https://dantenetwork.it/ontology/orl/current/occurrenceOf', 'cat'+tknid))
- triples.unshift(getTestoWhereTriple('cat'+tknid, 'http://www.w3.org/ns/lemon/ontolex#writtenRep', 'Rappresentazione'+tknid))
- }
- else{
- triples.push(getTestoWhereTriple('cat'+tknid, 'http://www.w3.org/ns/lemon/ontolex#writtenRep', 'Rappresentazione'+tknid))
- triples.push(getTestoWhereTriple('fa'+tknid, 'https://dantenetwork.it/ontology/orl/current/occurrenceOf', 'cat'+tknid))
- triples.push(getTestoWhereTriple('fa'+tknid, 'https://dantenetwork.it/ontology/olires/current/OccursInRegion', 'reg'+tknid))
- triples.push(getTestoWhereTriple('reg'+tknid, 'https://dantenetwork.it/ontology/olires/current/fragmentRegionFrom', 'pos'+tknid))
-
- }
-
- where.push(getTestoWhereTextFilter('Rappresentazione'+tknid, testo_tkns[tknid]))
-
- }
- for (tknid in testo_tkns){
- let variable=new Object()
- variable['termType']="Variable"
- variable['value']="pos"+tknid
- variables.push(variable);
- if (tknid==0)
- continue
- where.push(getTestoWherePosFilter('pos0', 'pos'+tknid, tknid))
- }
- //testo_tkns.sort((a,b)=> {return b.length-a.length})
-
-
- whereobject["triples"]=triples
- where.push(whereobject)
- qry['variables']=variables
- qry['where']=where
- qry['type']="query"
- qry['prefixes']=prefixes
- const sparqlGenerator = sparqljs.Generator;
- console.log(new sparqlGenerator().stringify(qry))
-
-
- }
+
if (stquery['Clausola0']['opzioni_testo'] == 'parola') {
strval = "^" + searchtext.trim() + "$";
}
@@ -555,102 +494,6 @@ function buildSQ(stquery) {
-//Crea le triple per WHERE se cerco il testo
-
-
-
-function getTestoWherePosFilter(pos1, pos2, dist){
- let filterpos=new Object()
- filterpos['type']='filter'
- let filterexpr= new Object()
- filterexpr['type']='operation'
- filterexpr['operator']='='
- let exprargs=[]
- let arg1= new Object()
- arg1['type']="functionCall"
- let arg1func=new Object()
- arg1func['termType']="NamedNode"
- arg1func['value']="http://www.w3.org/2001/XMLSchema#int"
- arg1['function']=arg1func
- let arg1args= []
- let arg1argsarg1= new Object()
- arg1argsarg1['type']="operation"
- arg1argsarg1['operator']="+"
- let arg1argsarg1args=[]
- let arg1argsarg1argsarg1=new Object()
- arg1argsarg1argsarg1['termType']="Variable"
- arg1argsarg1argsarg1['value']=pos1
- let arg1argsarg1argsarg2=new Object()
- arg1argsarg1argsarg2['termType']="Literal"
- arg1argsarg1argsarg2['value']=dist
- let datatype=new Object()
- datatype['termType']='NamedNode'
- datatype['value']="http://www.w3.org/2001/XMLSchema#integer"
- arg1argsarg1argsarg2["datatype"]=datatype
- arg1argsarg1args.push(arg1argsarg1argsarg1)
- arg1argsarg1args.push(arg1argsarg1argsarg2)
- arg1argsarg1['type']='operation'
- arg1argsarg1['operator']='+'
- arg1argsarg1['args']=arg1argsarg1args
- arg1args.push(arg1argsarg1)
- arg1['args']=arg1args
- arg1['distinct']='false'
- let arg2= new Object()
- arg2["termType"]= "Variable",
- arg2["value"]= pos2
- exprargs.push(arg1)
- exprargs.push(arg2)
- filterexpr['args']=exprargs
- filterpos['expression']=filterexpr
- return filterpos
- }
-
-function getTestoWhereTextFilter(term, val){
- let filtertext=new Object()
- filtertext['type']='filter'
- let filterexpr= new Object()
- filterexpr['type']='operation'
- filterexpr['operator']='regex'
- let exprargs=[]
- let arg1= new Object()
- arg1['termType']="Variable"
- arg1['value']=term
- let arg2= new Object()
- arg2['termType']="Literal"
- arg2['value']=val
- let arg3= new Object()
- arg3['termType']="Literal"
- arg3['value']='i'
- let datatype=new Object()
- datatype['termType']='NamedNode'
- datatype['value']="http://www.w3.org/2001/XMLSchema#string"
- arg2['datatype']=datatype
- arg3['datatype']=datatype
- exprargs.push(arg1)
- exprargs.push(arg2)
- exprargs.push(arg3)
- filterexpr['args']=exprargs
- filtertext['expression']=filterexpr
- return filtertext
- }
-
-function getTestoWhereTriple(s, p, o){
- let tri=new Object()
- let sub=new Object()
- let pred=new Object()
- let ob=new Object()
- sub["termType"]="Variable"
- sub["value"]=s
- pred["termType"]="NamedNode"
- pred["value"]=p
- ob["termType"]="Variable"
- ob["value"]=o
- tri["subject"]= sub
- tri["predicate"]= pred
- tri["object"]= ob
- return (tri)
-}
-
//Filtro Contesto