modificata query per filtri sintattici, gestione periodi, aggiunti font
per browsing
This commit is contained in:
parent
042528001a
commit
6eb0d68eeb
|
@ -9,6 +9,14 @@
|
||||||
/*
|
/*
|
||||||
* Canto
|
* Canto
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.blog-main{
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, “Helvetica Neue”,
|
||||||
|
“Segoe UI”, “Roboto”, “Oxygen”, “Ubuntu”, “Cantarell”,
|
||||||
|
“Fira Sans”, “Droid Sans”,
|
||||||
|
sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Footer
|
* Footer
|
||||||
|
@ -29,6 +37,10 @@ Popover properties
|
||||||
color: red;
|
color: red;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
.popover-footer {
|
||||||
|
color: gray;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Minimap
|
Minimap
|
||||||
|
|
|
@ -1,68 +1,77 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
var resetResult;
|
var resetResult;
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
const categoriegrammaticali = {
|
|
||||||
"v": "Verbo", "s": "Sostantivo", "a": "Aggettivo", "p": "Pronome", "r": "Articolo", "b": "Avverbio", "e": "Preposizione",
|
|
||||||
"c": "Congiunzione", "i": "Interiezione", "n": "Onomastica", "f": "Citazione", "l": "Locuzione",
|
|
||||||
"r-e": "Articolo, Preposizione", "b-v": "Avverbio, Verbo", "p-v": "Pronome, Verbo",
|
|
||||||
"b-p-v": "Avverbio, Pronome, Verbo", "b-p": "Avverbio, Pronome",
|
|
||||||
"e-p": "Preposizione, Pronome", "a-s": "Aggettivo, Sostantivo",
|
|
||||||
"e-r": "Preposizione, Articolo", "v-b": "Verbo, Avverbio", "v-p": "Verbo, Pronome",
|
|
||||||
"v-p-b": "Verbo, Pronome, Avverbio", "p-b": "Pronome, Avverbio",
|
|
||||||
"p-e": "Pronome, Preposizione", "s-a": "Sostantivo, Aggettivo",
|
|
||||||
}
|
|
||||||
|
|
||||||
const cantobadgeclass = 'badge badge-outline-info badge-pill'
|
const cantobadgeclass = 'badge badge-outline-info badge-pill'
|
||||||
|
|
||||||
const sparqlGenerator = sparqljs.Generator;
|
const sparqlGenerator = sparqljs.Generator;
|
||||||
const myEngine = new Comunica.QueryEngine();
|
const myEngine = new Comunica.QueryEngine();
|
||||||
const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query";
|
const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query";
|
||||||
|
|
||||||
var listaVersi = new Set()
|
var shownSentenceList = new Set()
|
||||||
|
|
||||||
var currentMinimap = ''
|
var currentMinimap = ''
|
||||||
var listarisultati = [];
|
var listarisultati = [];
|
||||||
|
var resultSentences = new Set()
|
||||||
var minimapScrolling = false;
|
var minimapScrolling = false;
|
||||||
var displayId = 'displaycanto'
|
var displayId = 'displaycanto'
|
||||||
var minimapTopPos;
|
var minimapTopPos;
|
||||||
|
var purgatorioLoaded = false;
|
||||||
|
var paradisoLoaded = false;
|
||||||
|
|
||||||
//used in minimap
|
//used in minimap
|
||||||
//
|
//
|
||||||
let minimap = document.createElement('div');
|
let minimap = document.createElement('div');
|
||||||
let minimapSize = document.createElement('div');
|
let minimapSize = document.createElement('div');
|
||||||
let viewer = document.createElement('div');
|
let viewer = document.createElement('div');
|
||||||
let minimapContent = document.createElement('iframe');
|
let minimapContent = document.createElement('iframe');
|
||||||
let scale = 0.1;
|
|
||||||
let realScale;
|
let realScale;
|
||||||
let mappedElement = '';
|
let mappedElement = '';
|
||||||
|
|
||||||
var purgatorioSelected = "PurgatorioCanto_1";
|
resetResult=function(){
|
||||||
var paradisoSelected = "ParadisoCanto_1";
|
|
||||||
var infernoSelected = "InfernoCanto_1";
|
|
||||||
|
|
||||||
|
|
||||||
resetResult = function() {
|
|
||||||
//console.log('clean result')
|
//console.log('clean result')
|
||||||
cleanSearchResult()
|
cleanSearchResult()
|
||||||
esprlogica = []
|
esprlogica = []
|
||||||
}
|
}
|
||||||
|
|
||||||
hideMinimap();
|
hideMinimap();
|
||||||
createAllDivCanti()
|
createAllDivCanti()
|
||||||
const start = performance.now();
|
const start = performance.now();
|
||||||
|
|
||||||
showCantica('Inferno')
|
showCantica('Inferno')
|
||||||
var purgatorioLoaded = false;
|
showCantica('Purgatorio')
|
||||||
var paradisoLoaded = false;
|
showCantica('Paradiso')
|
||||||
|
|
||||||
$("#InfernoCanto_1").attr('style', 'display:block')
|
$("#InfernoCanto_1").attr('style', 'display:block')
|
||||||
drawMinimap("InfernoCanto_1")
|
drawMinimap("InfernoCanto_1")
|
||||||
const end = performance.now();
|
const end = performance.now();
|
||||||
console.log(`Load cantiche time: ${end - start} ms`);
|
console.log(`Load cantiche time: ${end - start} ms`);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$("[data-cg]").hover(function() {
|
||||||
|
var details=getHoverContent($(this).data("cg"))
|
||||||
|
var index = details.indexOf(",");
|
||||||
|
var sentencetype= $(this).attr('class');
|
||||||
|
|
||||||
|
var categoria = "";
|
||||||
|
if (index != -1){
|
||||||
|
categoria = details.substring(0,index);
|
||||||
|
details = details.substring(index+1);
|
||||||
|
}else{
|
||||||
|
categoria = details;
|
||||||
|
details = "";
|
||||||
|
}
|
||||||
|
$(this).popover({title: categoria, content: details+"<div id='sentence' class='$"+sentencetype+
|
||||||
|
" popover-footer'>Periodo</div>", html:true, placement: "top",
|
||||||
|
trigger: "click"}).on("hidden.bs.popover", function(e) {
|
||||||
|
sentenceId=$(this).attr('class').split(' ')[0].replace('$','');
|
||||||
|
resetSentenceStructure(sentenceId)
|
||||||
|
shownSentenceList.delete(sentenceId)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
/*
|
||||||
jQuery(document).delegate('#cantica2', 'click', function(e) {
|
jQuery(document).delegate('#cantica2', 'click', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
@ -71,15 +80,7 @@ $(document).ready(function() {
|
||||||
purgatorioLoaded = true;
|
purgatorioLoaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.canto').each(function() {
|
|
||||||
$(this).attr("style", 'display:none');
|
|
||||||
});
|
|
||||||
$("#"+purgatorioSelected).attr('style', 'display:block')
|
|
||||||
manageMiniMap("#"+purgatorioSelected);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery(document).delegate('#cantica3', 'click', function(e) {
|
jQuery(document).delegate('#cantica3', 'click', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
@ -88,42 +89,28 @@ $(document).ready(function() {
|
||||||
paradisoLoaded = true;
|
paradisoLoaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.canto').each(function() {
|
|
||||||
$(this).attr("style", 'display:none');
|
|
||||||
});
|
|
||||||
$("#"+paradisoSelected).attr('style', 'display:block')
|
|
||||||
manageMiniMap("#"+paradisoSelected);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
});
|
});
|
||||||
jQuery(document).delegate('#cantica1', 'click', function(e) {
|
*/
|
||||||
|
|
||||||
|
jQuery(document).delegate('#sentence', 'click', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
sentenceId=$(this).attr('class').split(' ')[0].replace('$','')
|
||||||
$('.canto').each(function() {
|
console.log(sentenceId)
|
||||||
$(this).attr("style", 'display:none');
|
if (shownSentenceList.has(sentenceId)){
|
||||||
});
|
resetSentenceStructure(sentenceId)
|
||||||
$("#"+infernoSelected).attr('style', 'display:block')
|
shownSentenceList.delete(sentenceId)
|
||||||
manageMiniMap("#"+infernoSelected);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
$("[data-cg]").hover(function() {
|
|
||||||
var details = getHoverContent($(this).data("cg"))
|
|
||||||
var index = details.indexOf(",");
|
|
||||||
var categoria = "";
|
|
||||||
if (index != -1) {
|
|
||||||
categoria = details.substring(0, index);
|
|
||||||
details = details.substring(index + 1);
|
|
||||||
} else {
|
|
||||||
categoria = details;
|
|
||||||
details = "";
|
|
||||||
}
|
}
|
||||||
$(this).popover({ title: categoria, content: details, trigger: "click" });
|
else{
|
||||||
|
showSentenceStructure (sentenceId)
|
||||||
|
shownSentenceList.add(sentenceId)
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var mmih = 0
|
var mmih = 0
|
||||||
var mmiw = 0
|
var mmiw = 0
|
||||||
|
|
||||||
|
|
||||||
$("#" + displayId).scroll(function() {
|
$("#" + displayId).scroll(function() {
|
||||||
if (minimapScrolling) {
|
if (minimapScrolling) {
|
||||||
minimapScrolling = false
|
minimapScrolling = false
|
||||||
|
@ -137,6 +124,7 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
jQuery(document).delegate('.navig-canto', 'click', function(e) {
|
jQuery(document).delegate('.navig-canto', 'click', function(e) {
|
||||||
$('.canto').each(function() {
|
$('.canto').each(function() {
|
||||||
|
@ -145,31 +133,22 @@ $(document).ready(function() {
|
||||||
// Crea id per la div che contiene il canto
|
// Crea id per la div che contiene il canto
|
||||||
$("#" + $(this).attr('name').replace(" ", "_")).attr('style', 'display:block')
|
$("#" + $(this).attr('name').replace(" ", "_")).attr('style', 'display:block')
|
||||||
manageMiniMap(this);
|
manageMiniMap(this);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function manageMiniMap(divElem) {
|
function manageMiniMap(divElem) {
|
||||||
mmiw = $("#" + displayId).innerWidth();
|
mmiw = $("#" + displayId).innerWidth();
|
||||||
mmih = $("#" + displayId).innerHeight();
|
mmih = $("#" + displayId).innerHeight();
|
||||||
var selectedCanto = ($(divElem).attr('name').replace(" ", "_"));
|
|
||||||
if (selectedCanto.startsWith("Inferno")){
|
|
||||||
infernoSelected = selectedCanto;
|
|
||||||
}else
|
|
||||||
if(selectedCanto.startsWith("Paradiso")){
|
|
||||||
paradisoSelected = selectedCanto;
|
|
||||||
}else{
|
|
||||||
purgatorioSelected = selectedCanto;
|
|
||||||
}
|
|
||||||
drawMinimap($(divElem).attr('name').replace(" ", "_"))
|
drawMinimap($(divElem).attr('name').replace(" ", "_"))
|
||||||
}
|
}
|
||||||
|
|
||||||
//Query
|
//Query
|
||||||
|
|
||||||
jQuery(document).delegate('#searchcomm, #searchcomm2', 'click', function(e) {
|
jQuery(document).delegate('#searchcomm, #searchcomm2', 'click', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
manageQuery()
|
manageQuery()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
//Reset
|
//Reset
|
||||||
|
|
||||||
|
@ -180,39 +159,39 @@ $(document).ready(function() {
|
||||||
$('#queryText').val("")
|
$('#queryText').val("")
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//Utility functions
|
//Utility functions
|
||||||
|
|
||||||
function getHoverContent(categ) {
|
function getHoverContent(categ){
|
||||||
//console.log('Categoria '+categ)
|
//console.log('Categoria '+categ)
|
||||||
if (categ.includes('-')) {
|
if(categ.includes('^')){
|
||||||
categs = categ.split('-')
|
categs=categ.split('^')
|
||||||
mycat = []
|
mycat=[]
|
||||||
for (cat of categs) {
|
for (cat of categs){
|
||||||
mycat.push(cat[0])
|
mycat.push(cat[0])
|
||||||
}
|
}
|
||||||
console.log(mycat.join('-'))
|
console.log(mycat.join('-'))
|
||||||
return categoriegrammaticali[mycat.join('-')]
|
return categoriegrammaticali[mycat.join('-')]
|
||||||
}
|
}
|
||||||
if (categ[0] == 'v') {
|
if (categ[0]=='v'){
|
||||||
return parserVerbi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
return parserVerbi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
||||||
}
|
}
|
||||||
if (categ[0] == 's') {
|
if(categ[0]=='s'){
|
||||||
return parserSostantivi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
return parserSostantivi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
||||||
}
|
}
|
||||||
if (categ[0] == 'e') {
|
if(categ[0]=='e'){
|
||||||
return parserPreposizioni.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
return parserPreposizioni.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
||||||
}
|
}
|
||||||
if (categ[0] == 'b') {
|
if(categ[0]=='b'){
|
||||||
return parserAvverbi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
return parserAvverbi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
||||||
}
|
}
|
||||||
if (categ[0] == 'p') {
|
if(categ[0]=='p'){
|
||||||
return parserPronomi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
return parserPronomi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
||||||
}
|
}
|
||||||
if (categ[0] == 'a') {
|
if(categ[0]=='a'){
|
||||||
return parserAggettivi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
return parserAggettivi.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
||||||
}
|
}
|
||||||
if (categ[0] == 'r') {
|
if(categ[0]=='r'){
|
||||||
return parserArticolo.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
return parserArticolo.parse(categ).split(',').filter(prop => prop.length > 0).join()
|
||||||
}
|
}
|
||||||
if (categ[0] == 'f') {
|
if (categ[0] == 'f') {
|
||||||
|
@ -224,12 +203,11 @@ $(document).ready(function() {
|
||||||
if (categ[0] == 'c') {
|
if (categ[0] == 'c') {
|
||||||
return parserCongiunzione.parse(categ).split(',').filter(prop => prop.length > 0).join();
|
return parserCongiunzione.parse(categ).split(',').filter(prop => prop.length > 0).join();
|
||||||
}
|
}
|
||||||
//console.log(categ[0])
|
|
||||||
return categoriegrammaticali[categ[0]]
|
return categoriegrammaticali[categ[0]]
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawMinimap(name) {
|
function drawMinimap(name){
|
||||||
|
|
||||||
showMinimap(name)
|
showMinimap(name)
|
||||||
currentMinimap = name;
|
currentMinimap = name;
|
||||||
|
|
||||||
|
@ -251,37 +229,76 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanSearchResult() {
|
function cleanSearchResult() {
|
||||||
|
for (forma of listarisultati) {
|
||||||
for (verso of listarisultati) {
|
idforma = '#' + forma
|
||||||
idverso = '#' + verso
|
$(idforma).removeClass("font-weight-bold mark ")
|
||||||
$(idverso).attr('class', 'f6 text-secondary text-nowrap font-weight-lighter')
|
|
||||||
}
|
}
|
||||||
$(".badge").remove();
|
$(".badge").remove();
|
||||||
listarisultati = []
|
listarisultati = []
|
||||||
|
resultSentences=new Set()
|
||||||
if (currentMinimap != '')
|
if (currentMinimap != '')
|
||||||
showMinimap(currentMinimap)
|
showMinimap(currentMinimap)
|
||||||
}
|
}
|
||||||
|
|
||||||
function manageQuery() {
|
|
||||||
|
function manageQuery(){
|
||||||
cleanSearchResult()
|
cleanSearchResult()
|
||||||
esprlogica = []
|
esprlogica = []
|
||||||
jsonQuery = getJsonQuery()
|
jsonQuery=getJsonQuery()
|
||||||
console.log("got json query")
|
console.log("got json query")
|
||||||
if (jsonQuery['QueryAvanzata'] == 0 && jsonQuery['Clausola0']['queryText'] == '') {
|
if(jsonQuery['QueryAvanzata']==0 && jsonQuery['Clausola0']['queryText']==''){
|
||||||
alert('Digitare una stringa da cercare')
|
alert('Digitare una stringa da cercare')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
jsonQuery = buildSQ(jsonQuery)
|
jsonQuery = buildSQ(jsonQuery)
|
||||||
|
|
||||||
myquery = new sparqlGenerator().stringify(jsonQuery)
|
myquery = new sparqlGenerator().stringify(jsonQuery)
|
||||||
console.log(myquery)
|
console.log(myquery)
|
||||||
executeQuerySearch(myquery)
|
executeQuerySearch(myquery)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//manage sentence and clauses
|
||||||
|
|
||||||
|
function showSentenceStructure(sentence) {
|
||||||
|
|
||||||
|
sid = '.' + sentence.toString()
|
||||||
|
//console.log(sid)
|
||||||
|
$(sid).addClass('font-italic')
|
||||||
|
|
||||||
|
$(sid).each(function(){
|
||||||
|
//console.log($(this).attr('class'))
|
||||||
|
if ($(this).attr('class').includes(' Ma ')){
|
||||||
|
$(this).addClass("text-primary font-weight-normal")
|
||||||
|
}
|
||||||
|
if ($(this).attr('class').includes(' Su ')){
|
||||||
|
$(this).addClass("text-info font-weight-normal")
|
||||||
|
}
|
||||||
|
if ($(this).attr('class').includes(' Co ')){
|
||||||
|
$(this).addClass("text-warning font-weight-normal")
|
||||||
|
}
|
||||||
|
if ($(this).attr('class').includes(' Pc ')){
|
||||||
|
$(this).addClass("text-success font-weight-normal")
|
||||||
|
}
|
||||||
|
if ($(this).attr('class').includes(' Pa ')){
|
||||||
|
$(this).addClass("text-secondary font-weight-normal")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetSentenceStructure(sentence) {
|
||||||
|
$(" ." + sentence).removeClass('text-info font-weight-normal')
|
||||||
|
$(" ." + sentence).removeClass('text-primary font-weight-normal')
|
||||||
|
$(" ." + sentence).removeClass('text-secondary font-weight-normal')
|
||||||
|
$(" ." + sentence).removeClass('text-warning font-weight-normal')
|
||||||
|
$(" ." + sentence).removeClass('text-success font-weight-normal')
|
||||||
|
$(" ." + sentence).removeClass('font-italic')
|
||||||
|
}
|
||||||
|
|
||||||
//minimap management
|
//minimap management
|
||||||
|
|
||||||
|
|
||||||
function showMinimap(element) {
|
function showMinimap(element) {
|
||||||
mmplace = document.getElementById('displayminimap')
|
mmplace = document.getElementById('displayminimap')
|
||||||
|
@ -325,21 +342,21 @@ $(document).ready(function() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function getInnerHeight(elm) {
|
function getInnerHeight(elm) {
|
||||||
var computed = getComputedStyle(elm),
|
var computed = getComputedStyle(elm),
|
||||||
padding = parseInt(computed.paddingTop) + parseInt(computed.paddingBottom);
|
padding = parseInt(computed.paddingTop) + parseInt(computed.paddingBottom);
|
||||||
|
|
||||||
return elm.clientHeight - padding
|
return elm.clientHeight - padding
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDimensionsDiv() {
|
function getDimensionsDiv() {
|
||||||
var cantoplace = document.getElementById(displayId)
|
var cantoplace = document.getElementById(displayId)
|
||||||
var elementplace = document.getElementById(mappedElement)
|
var elementplace = document.getElementById(mappedElement)
|
||||||
|
|
||||||
var bodyWidth = elementplace.clientWidth;
|
var bodyWidth = elementplace.clientWidth;
|
||||||
var bodyRatio = elementplace.clientHeight / bodyWidth;
|
var bodyRatio = elementplace.clientHeight / bodyWidth;
|
||||||
|
|
||||||
let winRatio = getInnerHeight(cantoplace) / (cantoplace.clientWidth);
|
let winRatio = getInnerHeight(cantoplace) / (cantoplace.clientWidth);
|
||||||
|
|
||||||
//minimap.style.width='15%';
|
//minimap.style.width='15%';
|
||||||
|
@ -351,7 +368,7 @@ $(document).ready(function() {
|
||||||
viewer.style.paddingTop = `${winRatio * 100}%`;
|
viewer.style.paddingTop = `${winRatio * 100}%`;
|
||||||
minimapContent.style.transform = `scale(${realScale})`;
|
minimapContent.style.transform = `scale(${realScale})`;
|
||||||
minimapContent.style.width = `${(100 / realScale)}%`;
|
minimapContent.style.width = `${(100 / realScale)}%`;
|
||||||
minimapContent.style.height = `${(100 / realScale)}%`;
|
minimapContent.style.height = `${(100 / realScale)}%`;
|
||||||
//minimapContent.style.height=`100%`;
|
//minimapContent.style.height=`100%`;
|
||||||
minimapContent.style.float = 'right';
|
minimapContent.style.float = 'right';
|
||||||
}
|
}
|
||||||
|
@ -379,125 +396,92 @@ $(document).ready(function() {
|
||||||
currentMinimap = ''
|
currentMinimap = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Cantica management functions
|
//Cantica management functions
|
||||||
|
|
||||||
function showCantica(cantica) {
|
function showCantica(cantica) {
|
||||||
//var listaCanti = new Set()
|
//var listaCanti = new Set()
|
||||||
var setVersi = new Set()
|
var setVersi = new Set()
|
||||||
//$("#loader").show();
|
|
||||||
var containerForme = formeprima
|
var containerForme = formeprima
|
||||||
if (cantica == 'Paradiso')
|
var idcantica=1;
|
||||||
|
if (cantica == 'Paradiso'){
|
||||||
containerForme = formeterza
|
containerForme = formeterza
|
||||||
if (cantica == 'Purgatorio')
|
idcantica=3
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cantica == 'Purgatorio'){
|
||||||
containerForme = formeseconda
|
containerForme = formeseconda
|
||||||
|
idcantica=2
|
||||||
|
}
|
||||||
|
|
||||||
const endlc = performance.now();
|
const endlc = performance.now();
|
||||||
console.log(`Load ` + cantica + ` time: ${endlc - start} ms`);
|
console.log(`Load `+cantica+` time: ${endlc - start} ms`);
|
||||||
var elverso, formaItem
|
var elverso, formaItem
|
||||||
for (var cmpItem of containerForme) {
|
for (var cmpItem of containerForme) {
|
||||||
|
|
||||||
formaItem = cmpItem.split("_")
|
formaItem = cmpItem.split("_")
|
||||||
|
var sentenceid=idcantica+"_"+formaItem[1]+"_s_"+formaItem[5]
|
||||||
//createDivVerso(cantica, num, canto, forma, catgram, pos)
|
//createDivVerso(cantica, num, canto, forma, catgram, pos)
|
||||||
if (!setVersi.has(cantica + "_" + formaItem[3] + "_" + 'Canto_' + formaItem[1])) {
|
if (! setVersi.has(cantica + "_" + formaItem[3] + "_" + 'Canto_' + formaItem[1])){
|
||||||
elverso = createDivVerso(cantica, formaItem[3], 'Canto_' + formaItem[1], formaItem[0], formaItem[4], formaItem[2])
|
elverso=createDivVerso(cantica, formaItem[3], 'Canto_' + formaItem[1], formaItem[0], formaItem[4], formaItem[2], sentenceid,formaItem[6])
|
||||||
setVersi.add(cantica + "_" + formaItem[3] + "_" + 'Canto_' + formaItem[1])
|
setVersi.add(cantica+ "_" + formaItem[3] + "_" + 'Canto_' + formaItem[1])
|
||||||
}
|
}
|
||||||
else {
|
else{
|
||||||
//setVersi = createDivVersi(setVersi, cantica, formaItem[3], 'Canto_' + formaItem[1])
|
createSpanFormeNew(cantica, 'Canto_' + formaItem[1], formaItem[3], formaItem[0], formaItem[4], formaItem[2], sentenceid,formaItem[6],elverso)
|
||||||
createSpanFormeNew(cantica, 'Canto_' + formaItem[1], formaItem[3], formaItem[0], formaItem[4], formaItem[2], elverso)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
forma.numverso = formaItem[3];
|
|
||||||
forma.canto = 'Canto ' + formaItem[1];
|
|
||||||
forma.pos = formaItem[2];
|
|
||||||
forma.form = formaItem[0];
|
|
||||||
forma.catgramm = formaItem[4];
|
|
||||||
forma.cantica = cantica;
|
|
||||||
createSpanForme(forma)
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
//$("#loader").hide();
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
function createSpanForme(element) {
|
|
||||||
|
function createSpanFormeNew(cantica, canto, numverso, forma, catgramm, pos, sentenceid, clausefunct, elementoverso) {
|
||||||
var spanoccorrenza = $('<span />')
|
var spanoccorrenza = $('<span />')
|
||||||
var pos = parseInt(element.pos)
|
spanoccorrenza.attr('id', pos)
|
||||||
spanoccorrenza.attr('id', element.cantica + "_" + element.canto.replace(" ", "_") + "_" + element.numverso + "_" + pos)
|
|
||||||
spanoccorrenza.attr('data-cg', element.catgramm)
|
|
||||||
|
|
||||||
if (listarisultati.length > 0 && listarisultati.includes(spanoccorrenza.attr('id')))
|
|
||||||
spanoccorrenza.attr('class', "font-weight-bold mark ")
|
|
||||||
spanoccorrenza.append(element.form.replaceAll("%20", " "))
|
|
||||||
elementoverso = $('#' + element.cantica + "_" + element.canto.replace(" ", "_") + "_" + element.numverso)
|
|
||||||
spanoccorrenza.appendTo(elementoverso)
|
|
||||||
elementoverso.append(' ')
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function createSpanFormeNew(cantica, canto, numverso, forma, catgramm, pos, elementoverso) {
|
|
||||||
var spanoccorrenza = $('<span />')
|
|
||||||
//var pos = parseInt(pos)
|
|
||||||
spanoccorrenza.attr('id', cantica + "_" + canto + "_" + numverso + "_" + pos)
|
|
||||||
spanoccorrenza.attr('data-cg', catgramm)
|
spanoccorrenza.attr('data-cg', catgramm)
|
||||||
|
spanoccorrenza.attr('class', sentenceid+" "+clausefunct)
|
||||||
|
|
||||||
//if (listarisultati.length > 0 && listarisultati.includes(spanoccorrenza.attr('id')))
|
//if (listarisultati.length > 0 && listarisultati.includes(spanoccorrenza.attr('id')))
|
||||||
// spanoccorrenza.attr('class', "font-weight-bold mark ")
|
// spanoccorrenza.attr('class', "font-weight-bold mark ")
|
||||||
spanoccorrenza.append(forma + " ")
|
spanoccorrenza.append(forma+" ")
|
||||||
//elementoverso = $('#' + cantica + "_" + canto + "_" + numverso)
|
|
||||||
spanoccorrenza.appendTo(elementoverso)
|
spanoccorrenza.appendTo(elementoverso)
|
||||||
//elementoverso.append(' ')
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function createDivVersi(setVersi, cantica, num, canto) {
|
function createDivVerso(cantica, num, canto, forma, catgram, pos, sentenceid, clausefunct) {
|
||||||
if (setVersi.has(cantica + "_" + num + "_" + canto))
|
|
||||||
return setVersi
|
|
||||||
else {
|
|
||||||
var elementoverso = $('<p />')
|
var elementoverso = $('<p />')
|
||||||
|
|
||||||
elementoverso.append(num + ". ")
|
elementoverso.append(num + ". ")
|
||||||
elementoverso.attr("style", "line-height: 0.5em")
|
elementoverso.attr("style", "line-height: 0.5em")
|
||||||
|
|
||||||
elementoverso.attr('class', 'f6 text-secondary text-nowrap font-weight-lighter')
|
elementoverso.attr('class', 'f6 text-secondary text-nowrap font-weight-lighter '+cantica+' '+canto)
|
||||||
|
|
||||||
elementoverso.attr('id', cantica + "_" + canto + "_" + num)
|
elementoverso.attr('id', cantica + "_" + canto + "_" + num)
|
||||||
|
|
||||||
|
var spanoccorrenza = $('<span />')
|
||||||
|
|
||||||
|
spanoccorrenza.attr('id', pos)
|
||||||
|
spanoccorrenza.attr('data-cg', catgram)
|
||||||
|
spanoccorrenza.attr('class', sentenceid+" "+clausefunct)
|
||||||
|
|
||||||
|
spanoccorrenza.append(forma+" ")
|
||||||
|
spanoccorrenza.appendTo(elementoverso)
|
||||||
|
|
||||||
elementoverso.appendTo('#' + cantica + canto)
|
elementoverso.appendTo('#' + cantica + canto)
|
||||||
setVersi.add(cantica + "_" + num + "_" + canto)
|
return elementoverso
|
||||||
return setVersi
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
function createDivVerso(cantica, num, canto, forma, catgram, pos) {
|
|
||||||
|
|
||||||
var elementoverso = $('<p />')
|
|
||||||
|
function createAllDivCanti() {
|
||||||
elementoverso.append(num + ". ")
|
cantiche=["Inferno", "Purgatorio","Paradiso"]
|
||||||
elementoverso.attr("style", "line-height: 0.5em")
|
for (cantica of cantiche){
|
||||||
|
for (var i=1; i<35; i++){
|
||||||
elementoverso.attr('class', 'f6 text-secondary text-nowrap font-weight-lighter')
|
if(i==34 && cantica!=="Inferno"){
|
||||||
|
continue
|
||||||
elementoverso.attr('id', cantica + "_" + canto + "_" + num)
|
}
|
||||||
|
canto= "Canto "+i
|
||||||
var spanoccorrenza = $('<span />')
|
|
||||||
//var pos = parseInt(pos)
|
|
||||||
spanoccorrenza.attr('id', cantica + "_" + canto + "_" + num + "_" + pos)
|
|
||||||
spanoccorrenza.attr('data-cg', catgram)
|
|
||||||
|
|
||||||
spanoccorrenza.append(forma + " ")
|
|
||||||
spanoccorrenza.appendTo(elementoverso)
|
|
||||||
|
|
||||||
elementoverso.appendTo('#' + cantica + canto)
|
|
||||||
return elementoverso
|
|
||||||
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
function createDivCanti(orderedListaCanti, cantica, canto) {
|
|
||||||
if (orderedListaCanti.has(canto)) {
|
|
||||||
return orderedListaCanti
|
|
||||||
}
|
|
||||||
var divcanto = $('<div />')
|
var divcanto = $('<div />')
|
||||||
var titolocanto = $('<h4 class="titolo-canto pb-2" />')
|
var titolocanto = $('<h4 class="titolo-canto pb-2" />')
|
||||||
titolocanto.append(cantica + ", " + canto)
|
titolocanto.append(cantica + ", " + canto)
|
||||||
|
@ -506,70 +490,64 @@ $(document).ready(function() {
|
||||||
divcanto.attr('id', (cantica + canto).replace(" ", "_"))
|
divcanto.attr('id', (cantica + canto).replace(" ", "_"))
|
||||||
titolocanto.appendTo(divcanto)
|
titolocanto.appendTo(divcanto)
|
||||||
divcanto.appendTo(' .blog-main')
|
divcanto.appendTo(' .blog-main')
|
||||||
orderedListaCanti.add(canto)
|
|
||||||
return orderedListaCanti
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function createAllDivCanti() {
|
|
||||||
cantiche = ["Inferno", "Purgatorio", "Paradiso"]
|
|
||||||
for (cantica of cantiche) {
|
|
||||||
for (var i = 1; i < 35; i++) {
|
|
||||||
if (i == 34 && cantica !== "Inferno") {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
canto = "Canto " + i
|
|
||||||
var divcanto = $('<div />')
|
|
||||||
var titolocanto = $('<h4 class="titolo-canto pb-2" />')
|
|
||||||
titolocanto.append(cantica + ", " + canto)
|
|
||||||
divcanto.attr('class', 'canto')
|
|
||||||
divcanto.attr('style', 'display:none')
|
|
||||||
divcanto.attr('id', (cantica + canto).replace(" ", "_"))
|
|
||||||
titolocanto.appendTo(divcanto)
|
|
||||||
divcanto.appendTo(' .blog-main')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//execute query
|
//execute query
|
||||||
|
|
||||||
async function executeQuerySearch(query) {
|
async function executeQuerySearch(query) {
|
||||||
$("#loader").show();
|
|
||||||
seachbBindingsStream = await myEngine.queryBindings(query, { sources: [{ type: 'sparql', value: sparqlEndpoint },], });
|
seachbBindingsStream = await myEngine.queryBindings(query, { sources: [{ type: 'sparql', value: sparqlEndpoint },], });
|
||||||
//console.log(query)
|
//console.log(query)
|
||||||
alert(query)
|
alert(query)
|
||||||
try {
|
try {
|
||||||
var result = new Set()
|
var result = new Set()
|
||||||
|
var resultClauses = new Set()
|
||||||
|
|
||||||
var resultsInCantica = []
|
var resultsInCantica = []
|
||||||
var resultsInCanto = []
|
var resultsInCanto = []
|
||||||
seachbBindingsStream.on('data', (binding) => {
|
seachbBindingsStream.on('data', (binding) => {
|
||||||
//cantica
|
//cantica
|
||||||
cantica = binding.get('Cantica').value;
|
cantica = binding.get('Cantica').value;
|
||||||
|
|
||||||
//canto
|
//canto
|
||||||
canto = binding.get('Canto').value;
|
canto = binding.get('Canto').value;
|
||||||
|
|
||||||
//numero del verso
|
//numero del verso
|
||||||
numverso = binding.get('NumeroVerso').value;
|
numverso = binding.get('NumeroVerso').value;
|
||||||
//posizione del frammento
|
//posizione del frammento
|
||||||
pos = binding.get('pos').value;
|
pos = binding.get('pos').value;
|
||||||
if (!result.has(cantica + "_" + canto.replace(" ", "_") + "_" + numverso + "_" + pos)) {
|
//regione della clausola
|
||||||
result.add(cantica + "_" + canto.replace(" ", "_") + "_" + numverso + "_" + pos)
|
var clfrom=binding.get('clfr').value;
|
||||||
|
var clto=binding.get('clto').value;
|
||||||
|
var cltype=binding.get('clatype').value
|
||||||
|
//id del periodo
|
||||||
|
var sentenceid=binding.get('sentence').value.replace('http://dantenetwork.it/data/commedia/','')
|
||||||
|
//console.log(sentenceid)
|
||||||
|
|
||||||
|
if (!result.has(pos)){
|
||||||
|
result.add(pos)
|
||||||
resultsInCantica.push(cantica);
|
resultsInCantica.push(cantica);
|
||||||
resultsInCanto.push(cantica + canto)
|
resultsInCanto.push(cantica + canto)
|
||||||
}
|
}
|
||||||
|
resultClauses.add(cantica + "_" + canto.replace(" ", "_") + "_" + numverso + "-" +clfrom+'_'+clto+"-"+cltype)
|
||||||
|
resultSentences.add(sentenceid)
|
||||||
|
|
||||||
});
|
});
|
||||||
seachbBindingsStream.on('end', () => {
|
seachbBindingsStream.on('end', () => {
|
||||||
|
console.log('start rendering...')
|
||||||
listarisultati = Array.from(result)
|
listarisultati = Array.from(result)
|
||||||
|
|
||||||
cantiche = ["Inferno", "Purgatorio", "Paradiso"]
|
cantiche = ["Inferno", "Purgatorio", "Paradiso"]
|
||||||
|
|
||||||
|
|
||||||
|
console.log('periodi end...')
|
||||||
|
|
||||||
//evidenzia risultati
|
//evidenzia risultati
|
||||||
for (ris of listarisultati) {
|
for (ris of listarisultati) {
|
||||||
idris = '#' + ris
|
idris = '#' + ris
|
||||||
$(idris).attr('class', "font-weight-bold mark ")
|
//$(idris).attr('class', "font-weight-bold mark ")
|
||||||
|
$(idris).addClass("font-weight-bold mark ")
|
||||||
|
|
||||||
}
|
}
|
||||||
//aggiunge badge con totale risultati accanto alle cantiche
|
//aggiunge badge con totale risultati accanto alle cantiche
|
||||||
|
@ -577,7 +555,7 @@ $(document).ready(function() {
|
||||||
for (cantica of cantiche) {
|
for (cantica of cantiche) {
|
||||||
i += 1
|
i += 1
|
||||||
let count = resultsInCantica.reduce((n, x) => n + (x === cantica), 0);
|
let count = resultsInCantica.reduce((n, x) => n + (x === cantica), 0);
|
||||||
if (count > 0) {
|
if (count>0){
|
||||||
var spanbadgecantica = $('<span />');
|
var spanbadgecantica = $('<span />');
|
||||||
spanbadgecantica.attr('class', 'badge badge-primary badge-pill ml-1');
|
spanbadgecantica.attr('class', 'badge badge-primary badge-pill ml-1');
|
||||||
spanbadgecantica.append(count)
|
spanbadgecantica.append(count)
|
||||||
|
@ -585,13 +563,13 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//aggiunge badge con totale risultati accanto ai canti
|
//aggiunge badge con totale risultati accanto ai canti
|
||||||
|
console.log('results end...')
|
||||||
for (cantica of cantiche) {
|
for (cantica of cantiche) {
|
||||||
for (k of Array(35).keys()) {
|
for (k of Array(35).keys()) {
|
||||||
if (k == 0)
|
if (k == 0)
|
||||||
continue
|
continue
|
||||||
let count = resultsInCanto.reduce((n, x) => n + (x === cantica + 'Canto ' + k), 0);
|
let count = resultsInCanto.reduce((n, x) => n + (x === cantica + 'Canto ' + k), 0);
|
||||||
if (count > 0) {
|
if (count>0){
|
||||||
var spanbadge = $('<span />');
|
var spanbadge = $('<span />');
|
||||||
spanbadge.attr('class', cantobadgeclass);
|
spanbadge.attr('class', cantobadgeclass);
|
||||||
spanbadge.append(count)
|
spanbadge.append(count)
|
||||||
|
@ -601,15 +579,12 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log('badge end...')
|
||||||
|
|
||||||
//aggiorna minimap
|
//aggiorna minimap
|
||||||
if (currentMinimap != '') {
|
if (currentMinimap != '') {
|
||||||
|
|
||||||
showMinimap(currentMinimap)
|
showMinimap(currentMinimap)
|
||||||
|
|
||||||
}
|
}
|
||||||
$("#loader").hide();
|
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -619,21 +594,32 @@ $(document).ready(function() {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* REGOLE DI PARSING PER VISUALIZZAZIONE PROPRIETÀ
|
* REGOLE DI PARSING PER VISUALIZZAZIONE CATEGORIE GRAMMATICALI
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var categoriegrammaticaliGrammar = `Expression = head:(Filtro){return 'Verbo,'+head.join()}
|
const categoriegrammaticali={"v":"Verbo", "s":"Sostantivo", "a":"Aggettivo", "p":"Pronome", "r":"Articolo", "b":"Avverbio","e":"Preposizione",
|
||||||
Filtro= fhead:("v") tail:( transitivita? diatesi? impersonalita*
|
"c":"Congiunzione", "i":"Interiezione", "n":"Onomastica", "f":"Citazione", "l":"Locuzione",
|
||||||
|
"r-e":"Articolo, Preposizione", "b-v":"Avverbio, Verbo", "p-v":"Pronome, Verbo",
|
||||||
|
"b-p-v":"Avverbio, Pronome, Verbo", "b-p":"Avverbio, Pronome",
|
||||||
|
"e-p":"Preposizione, Pronome", "a-s":"Aggettivo, Sostantivo",
|
||||||
|
"e-r":"Preposizione, Articolo", "v-b":"Verbo, Avverbio", "v-p":"Verbo, Pronome",
|
||||||
|
"v-p-b":"Verbo, Pronome, Avverbio", "p-b":"Pronome, Avverbio",
|
||||||
|
"p-e":"Pronome, Preposizione", "s-a":"Sostantivo, Aggettivo",}
|
||||||
|
|
||||||
|
|
||||||
|
var categoriegrammaticaliGrammar=`Expression = head:(Filtro){return 'Verbo,'+head.join()}
|
||||||
|
Filtro= fhead:("v")? tail:( transitivita? diatesi? impersonalita?
|
||||||
coniugazione? modotempo?
|
coniugazione? modotempo?
|
||||||
persona? funzione* declinazione?
|
persona? funzione? declinazione?
|
||||||
genere? numero? grado?){return tail}
|
genere? numero? grado?){return tail}
|
||||||
|
|
||||||
|
|
||||||
diatesi= [a|p] {if (text()=='a') return ' Attivo'; else return ' Passivo';}
|
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';}
|
transitivita=[i|t]? {if (text()=='t') return ' Transitivo'; else if (text()=='i') return ' Intransitivo';}
|
||||||
|
|
||||||
impersonalita=([*|+]) {if (text()=='*') return ' Impersonale'; else if (text()=='+')return ' Riflessivo';}
|
impersonalita=([*|+])? {if (text()=='*') return ' Impersonale'; else if (text()=='+')return ' Riflessivo';}
|
||||||
|
|
||||||
coniugazione=[1|2|3|4|5]? {switch(parseInt(text())){
|
coniugazione=[1|2|3|4|5]? {switch(parseInt(text())){
|
||||||
case(1): return ' Prima coniugazione';
|
case(1): return ' Prima coniugazione';
|
||||||
|
@ -700,9 +686,9 @@ _ "whitespace"= " "*
|
||||||
|
|
||||||
`
|
`
|
||||||
|
|
||||||
var categoriaGrammaticaleSostantivo = `
|
var categoriaGrammaticaleSostantivo = `
|
||||||
Expression = head:(Filtro){return 'Sostantivo,'+head.join()}
|
Expression = head:(Filtro){return 'Sostantivo,'+head.join()}
|
||||||
Filtro= fhead:("s") tail:( genereforma? declinazionesostantivo? generelemma?
|
Filtro= fhead:("s")? tail:( genereforma? declinazionesostantivo? generelemma?
|
||||||
numersingolareplurale? locuzione?){return tail}
|
numersingolareplurale? locuzione?){return tail}
|
||||||
|
|
||||||
|
|
||||||
|
@ -717,7 +703,7 @@ generelemma=[m|f]? {if (text()=='m') return ' lemma maschile'; else if (text()==
|
||||||
|
|
||||||
numersingolareplurale=[s|p]? {if (text()=='s') return ' numero singolare'; else if (text()=='p') return ' numero plurale';}
|
numersingolareplurale=[s|p]? {if (text()=='s') return ' numero singolare'; else if (text()=='p') return ' numero plurale';}
|
||||||
|
|
||||||
locuzione="lv" {return('In Locuzione verbo');}
|
locuzione="Iv" {return('In Locuzione verbo');}
|
||||||
|
|
||||||
Integer "integer"
|
Integer "integer"
|
||||||
= _ [0-9]+ { return parseInt(text(), 10); }
|
= _ [0-9]+ { return parseInt(text(), 10); }
|
||||||
|
@ -726,9 +712,9 @@ _ "whitespace"= " "*
|
||||||
|
|
||||||
`
|
`
|
||||||
|
|
||||||
var categoriaGrammaticalePreposizione = `
|
var categoriaGrammaticalePreposizione = `
|
||||||
Expression = head:(Filtro){return 'Preposizione,'+head.join()}
|
Expression = head:(Filtro){return 'Preposizione,'+head.join()}
|
||||||
Filtro= fhead:("e") tail:( tipo1? tipo2? sintassi? complemento1? complemento2?){return tail}
|
Filtro= fhead:("e")? tail:( tipo1? tipo2? sintassi? complemento1? complemento2?){return tail}
|
||||||
|
|
||||||
|
|
||||||
tipo1=[p|i] {if (text()=='i') return ' Impropria'; else if (text()=='p') return ' Impropria';}
|
tipo1=[p|i] {if (text()=='i') return ' Impropria'; else if (text()=='p') return ' Impropria';}
|
||||||
|
@ -808,16 +794,17 @@ complemento2=
|
||||||
"k14" {return(" Di Rapporto")}
|
"k14" {return(" Di Rapporto")}
|
||||||
|
|
||||||
`
|
`
|
||||||
var avverbio = `Expression = head:(Filtro){return 'Avverbio,'+head.join()}
|
var avverbio = ` Expression = head:(Filtro){return 'Avverbio,'+head.join()}
|
||||||
Filtro= fhead:("b") tail:( locuzione? tipo?){return tail}
|
Filtro= fhead:("b")? tail:( fake? tipo?){return tail}
|
||||||
|
|
||||||
locuzione = "lz" {return(' Avverbio in Locuzione Separato')}/
|
fake= ""
|
||||||
"l" {return(' Avverbio in Locuzione')}
|
|
||||||
|
|
||||||
tipo="c+" {return(' Avverbio al Comparativo di Maggioranza')}/
|
tipo="c+" {return(' Avverbio al Comparativo di Maggioranza')}/
|
||||||
"c-" {return(' Avverbio al Comparativo di Minoranza')}/
|
"c-" {return(' Avverbio al Comparativo di Minoranza')}/
|
||||||
"sa" {return(' Avverbio al Superlativo Assoluto')}/
|
"sa" {return(' Avverbio al Superlativo Assoluto')}/
|
||||||
"sr" {return(' Avverbio al Superlativo Relativo')}/
|
"sr" {return(' Avverbio al Superlativo Relativo')}/
|
||||||
|
"lz" {return(' Avverbio in Locuzione Separato')}/
|
||||||
|
"l" {return(' Avverbio in Locuzione')}/
|
||||||
"y" {return(' Avverbio Proclitico')}/
|
"y" {return(' Avverbio Proclitico')}/
|
||||||
"x" {return(' Avverbio Enclitico')}/
|
"x" {return(' Avverbio Enclitico')}/
|
||||||
"c" {return(' Avverbio al Comparativo di Uguaglianza')}
|
"c" {return(' Avverbio al Comparativo di Uguaglianza')}
|
||||||
|
@ -828,11 +815,12 @@ Integer "integer"
|
||||||
|
|
||||||
_ "whitespace"= " "*
|
_ "whitespace"= " "*
|
||||||
|
|
||||||
|
|
||||||
`
|
`
|
||||||
|
|
||||||
var pronome = `Expression = head:(Filtro){return 'Pronome,'+head.join()}
|
var pronome = `
|
||||||
Filtro= fhead:("p") tail:( tipo_pronome? classe_pronome? genere_pronome?
|
|
||||||
|
Expression = head:(Filtro){return 'Pronome,'+head.join()}
|
||||||
|
Filtro= fhead:("p")? tail:( tipo_pronome? classe_pronome? genere_pronome?
|
||||||
numero_pronome? forma_pronome? funzione_pronome? tiporiflessivi?){return tail}
|
numero_pronome? forma_pronome? funzione_pronome? tiporiflessivi?){return tail}
|
||||||
|
|
||||||
|
|
||||||
|
@ -859,8 +847,8 @@ forma_pronome= "l" {return(" Pronome Libero")}/
|
||||||
"i" {return(" Pronome Libero In Composizione")}/
|
"i" {return(" Pronome Libero In Composizione")}/
|
||||||
"y" {return(" Pronome Proclitico")}/
|
"y" {return(" Pronome Proclitico")}/
|
||||||
"x" {return(" Pronome Enclitico")}
|
"x" {return(" Pronome Enclitico")}
|
||||||
funzione_pronome= "soi" {return(' Libero Soggetto Impersonale')}/
|
funzione_pronome="so" {return(' Libero Soggetto')}/
|
||||||
"so" {return(' Libero Soggetto')}/
|
"soi" {return(' Libero Soggetto Impersonale')}/
|
||||||
"co" {return(' Libero Complemento')}/
|
"co" {return(' Libero Complemento')}/
|
||||||
"ra" {return(' Libero Rafforzativo')}/
|
"ra" {return(' Libero Rafforzativo')}/
|
||||||
"ac" {return(' Clitico Accusativo')}/
|
"ac" {return(' Clitico Accusativo')}/
|
||||||
|
@ -881,9 +869,9 @@ Integer "integer"
|
||||||
_ "whitespace"= " "*
|
_ "whitespace"= " "*
|
||||||
|
|
||||||
`
|
`
|
||||||
var categoriaGrammaticaleAggettivo = `
|
var categoriaGrammaticaleAggettivo = `
|
||||||
Expression = head:(Filtro){return 'Aggettivo,'+head.join()}
|
Expression = head:(Filtro){return 'Aggettivo,'+head.join()}
|
||||||
Filtro= fhead:("a") tail:( tipo_aggettivo classe_aggettivo? genere_aggettivo?
|
Filtro= fhead:("a")? tail:( tipo_aggettivo classe_aggettivo? genere_aggettivo?
|
||||||
numero_aggettivo? grado_aggettivo? tipo_complemento? tipo_frase?
|
numero_aggettivo? grado_aggettivo? tipo_complemento? tipo_frase?
|
||||||
oggetto_indiretto?){return tail}
|
oggetto_indiretto?){return tail}
|
||||||
|
|
||||||
|
@ -964,10 +952,10 @@ Integer "integer"
|
||||||
_ "whitespace"= " "*
|
_ "whitespace"= " "*
|
||||||
|
|
||||||
`
|
`
|
||||||
var categoriaGrammaticaleArticolo = `
|
var categoriaGrammaticaleArticolo = `
|
||||||
|
|
||||||
Expression = head:(Filtro){return 'Articolo,'+head.join()}
|
Expression = head:(Filtro){return 'Articolo,'+head.join()}
|
||||||
Filtro= fhead:("r") tail:( tipo? genere? numero?){return tail}
|
Filtro= fhead:("r")? tail:( tipo? genere? numero?){return tail}
|
||||||
|
|
||||||
tipo =
|
tipo =
|
||||||
"d" {return(" Determinativo")}/
|
"d" {return(" Determinativo")}/
|
||||||
|
@ -989,7 +977,7 @@ _ "whitespace"= " "*
|
||||||
|
|
||||||
|
|
||||||
`
|
`
|
||||||
var citazione = `
|
var citazione = `
|
||||||
Expression = head:(Filtro){return 'Citazione,'+head.join()}
|
Expression = head:(Filtro){return 'Citazione,'+head.join()}
|
||||||
Filtro= fhead:("f") tail:( fake? tipo?){return tail}
|
Filtro= fhead:("f") tail:( fake? tipo?){return tail}
|
||||||
|
|
||||||
|
@ -1063,17 +1051,16 @@ Integer "integer"
|
||||||
|
|
||||||
_ "whitespace"= " "*
|
_ "whitespace"= " "*
|
||||||
`
|
`
|
||||||
//parser per categorie
|
//parser per categorie grammaticali
|
||||||
var parserVerbi = peg.generate(categoriegrammaticaliGrammar);
|
var parserVerbi = peg.generate(categoriegrammaticaliGrammar);
|
||||||
var parserSostantivi = peg.generate(categoriaGrammaticaleSostantivo);
|
var parserSostantivi = peg.generate(categoriaGrammaticaleSostantivo);
|
||||||
var parserPreposizioni = peg.generate(categoriaGrammaticalePreposizione);
|
var parserPreposizioni = peg.generate(categoriaGrammaticalePreposizione);
|
||||||
var parserAvverbi = peg.generate(avverbio);
|
var parserAvverbi = peg.generate(avverbio);
|
||||||
var parserPronomi = peg.generate(pronome);
|
var parserPronomi = peg.generate(pronome);
|
||||||
var parserAggettivi = peg.generate(categoriaGrammaticaleAggettivo);
|
var parserAggettivi = peg.generate(categoriaGrammaticaleAggettivo);
|
||||||
var parserArticolo = peg.generate(categoriaGrammaticaleArticolo);
|
var parserArticolo = peg.generate(categoriaGrammaticaleArticolo);
|
||||||
var parserCitazione = peg.generate(citazione);
|
var parserCitazione = peg.generate(citazione);
|
||||||
var parserOnomastica = peg.generate(onomastica);
|
var parserOnomastica = peg.generate(onomastica);
|
||||||
var parserCongiunzione = peg.generate(congiunzione);
|
var parserCongiunzione = peg.generate(congiunzione);
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
1438
js/partext.js
1438
js/partext.js
File diff suppressed because one or more lines are too long
73
js/utils.js
73
js/utils.js
|
@ -140,7 +140,7 @@ _ "whitespace"= " "*
|
||||||
|
|
||||||
var testmm = 0
|
var testmm = 0
|
||||||
|
|
||||||
//query
|
//query per le ricerche
|
||||||
|
|
||||||
ontoSparqlQuery = `PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
ontoSparqlQuery = `PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ecrm: <http://erlangen-crm.org/current/>
|
PREFIX ecrm: <http://erlangen-crm.org/current/>
|
||||||
|
@ -154,7 +154,7 @@ PREFIX comm: <http://dantenetwork.it/data/commedia/>
|
||||||
PREFIX syntit: <https://dantenetwork.it/ontology/syntit/current/>
|
PREFIX syntit: <https://dantenetwork.it/ontology/syntit/current/>
|
||||||
|
|
||||||
SELECT (?form as ?IRIForma) (?Rappresentazione as ?Forma) (?lm as ?Lemma) (?textver as ?Verso) (?NumVerso as ?NumeroVerso)
|
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 ?clatype ?clafunction ?clfr ?clto ?cl
|
(?t_canto as ?Canto) (?t_cantica as ?Cantica) ?pos ?clatype ?clafunction ?clfr ?clto ?cl ?sentence
|
||||||
WHERE {
|
WHERE {
|
||||||
FILTER(REGEX(?Rappresentazione, "^andare$", "i")) .
|
FILTER(REGEX(?Rappresentazione, "^andare$", "i")) .
|
||||||
FILTER(LANGMATCHES(LANG(?Rappresentazione), "it"))
|
FILTER(LANGMATCHES(LANG(?Rappresentazione), "it"))
|
||||||
|
@ -177,7 +177,6 @@ WHERE {
|
||||||
ecrm:P148_has_component ?fa .
|
ecrm:P148_has_component ?fa .
|
||||||
|
|
||||||
?sentence a syntit:Sentence ;
|
?sentence a syntit:Sentence ;
|
||||||
ecrm:P190_has_symbolic_content ?text ;
|
|
||||||
syntit:hasSyntacticalComponent ?cl.
|
syntit:hasSyntacticalComponent ?cl.
|
||||||
?cl syntit:hasClauseType ?clatype ;
|
?cl syntit:hasClauseType ?clatype ;
|
||||||
ecrm:P190_has_symbolic_content ?cltext ;
|
ecrm:P190_has_symbolic_content ?cltext ;
|
||||||
|
@ -188,6 +187,9 @@ WHERE {
|
||||||
}`
|
}`
|
||||||
|
|
||||||
orlprefix = 'https://dantenetwork.it/ontology/orl/current/'
|
orlprefix = 'https://dantenetwork.it/ontology/orl/current/'
|
||||||
|
|
||||||
|
syntitprefix='https://dantenetwork.it/ontology/syntit/current/'
|
||||||
|
|
||||||
var stringInSparql= false;
|
var stringInSparql= false;
|
||||||
|
|
||||||
function writesparqlquery(query) {
|
function writesparqlquery(query) {
|
||||||
|
@ -328,7 +330,7 @@ function buildSQ(stquery) {
|
||||||
const parsedquery = parser.parse(ontoSparqlQuery);
|
const parsedquery = parser.parse(ontoSparqlQuery);
|
||||||
//const parsedquery = parser.parse(tqvpvs);
|
//const parsedquery = parser.parse(tqvpvs);
|
||||||
|
|
||||||
|
console.log(stquery)
|
||||||
|
|
||||||
|
|
||||||
if (stquery['EsprLogica'] != null && stquery['EsprLogica'].length > 1) {
|
if (stquery['EsprLogica'] != null && stquery['EsprLogica'].length > 1) {
|
||||||
|
@ -432,6 +434,24 @@ function buildJsonClause(clause, parsedquery, whereind, theplace) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function buildSintacticClause(clause, parsedquery, whereind) {
|
||||||
|
|
||||||
|
var functS=clause['functionSyntax'];
|
||||||
|
var typeS=clause['typeSyntax0']
|
||||||
|
if (functS != null && functS != "all"){
|
||||||
|
console.log('functS '+funzione_clausola['princ'])
|
||||||
|
var myf=buildsyntClause(funzione_clausola[functS])
|
||||||
|
console.log('myf '+myf)
|
||||||
|
if (myf=='')
|
||||||
|
return parsedquery
|
||||||
|
if (whereind > -1)
|
||||||
|
parsedquery.where[whereind].triples.push(myf);
|
||||||
|
else
|
||||||
|
parsedquery.where.at(-1).patterns.at(-1).triples.push(myf);
|
||||||
|
}
|
||||||
|
return parsedquery
|
||||||
|
}
|
||||||
|
|
||||||
function buildClause(clause, parsedquery, whereind) {
|
function buildClause(clause, parsedquery, whereind) {
|
||||||
|
|
||||||
if (clause['queryText'].trim() != "") {
|
if (clause['queryText'].trim() != "") {
|
||||||
|
@ -449,6 +469,11 @@ function buildClause(clause, parsedquery, whereind) {
|
||||||
parsedquery.where.splice(0, 1)
|
parsedquery.where.splice(0, 1)
|
||||||
whereind=whereind-1
|
whereind=whereind-1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (clause['TipoClausola']=='Sintattico')
|
||||||
|
return buildSintacticClause(clause, parsedquery, whereind)
|
||||||
|
|
||||||
|
|
||||||
if (clause['typeGramm0'] != null && clause['typeGramm0'] != "all")
|
if (clause['typeGramm0'] != null && clause['typeGramm0'] != "all")
|
||||||
if (whereind > -1)
|
if (whereind > -1)
|
||||||
//parsedquery.where[whereind].triples.push(JSON.parse(data21)[clause['typeGramm0']]);
|
//parsedquery.where[whereind].triples.push(JSON.parse(data21)[clause['typeGramm0']]);
|
||||||
|
@ -458,7 +483,7 @@ function buildClause(clause, parsedquery, whereind) {
|
||||||
parsedquery.where.at(-1).patterns.at(-1).triples.push(JSON.parse(data21)[clause['typeGramm0']]);
|
parsedquery.where.at(-1).patterns.at(-1).triples.push(JSON.parse(data21)[clause['typeGramm0']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (clause['typeGramm0'] != null && Object.keys(sottoCategorie).includes(clause['typeGramm0'].trim())) {
|
if (clause['typeGramm0'] != null && Object.keys(sottoCategorie).includes(clause['typeGramm0'].trim())) {
|
||||||
//sctmp=JSON.parse(sottoCategorieSostantivi)
|
//sctmp=JSON.parse(sottoCategorieSostantivi)
|
||||||
sctmp = sottoCategorie[clause['typeGramm0'].trim()]
|
sctmp = sottoCategorie[clause['typeGramm0'].trim()]
|
||||||
|
@ -478,11 +503,31 @@ function buildClause(clause, parsedquery, whereind) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return parsedquery
|
return parsedquery
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function buildsyntClause(sttmnt) {
|
||||||
|
|
||||||
|
var tmplate = `{"subject": {"termType": "Variable", "value":"cl"},
|
||||||
|
"predicate": {"termType":"NamedNode"},
|
||||||
|
"object": {"termType": "NamedNode"}}
|
||||||
|
`
|
||||||
|
|
||||||
|
console.log(sttmnt)
|
||||||
|
var predicate = syntitprefix + (sttmnt.split(':')[0])
|
||||||
|
var obj = syntitprefix + (sttmnt.split(':')[1])
|
||||||
|
var statement = JSON.parse(tmplate)
|
||||||
|
|
||||||
|
statement['predicate']['value'] = predicate
|
||||||
|
statement['object']['value'] = obj
|
||||||
|
|
||||||
|
return (statement)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function buildsubcategoryClause(sttmnt) {
|
function buildsubcategoryClause(sttmnt) {
|
||||||
|
|
||||||
subcattmplate = `{"subject": {"termType": "Variable", "value":"form"},
|
subcattmplate = `{"subject": {"termType": "Variable", "value":"form"},
|
||||||
|
@ -490,9 +535,6 @@ function buildsubcategoryClause(sttmnt) {
|
||||||
"object": {"termType": "NamedNode"}}
|
"object": {"termType": "NamedNode"}}
|
||||||
`
|
`
|
||||||
|
|
||||||
//orlprefix='https://dantenetwork.it/ontology/orl/current/'
|
|
||||||
|
|
||||||
|
|
||||||
predicate = orlprefix + (sttmnt.split(':')[0])
|
predicate = orlprefix + (sttmnt.split(':')[0])
|
||||||
obj = orlprefix + (sttmnt.split(':')[1])
|
obj = orlprefix + (sttmnt.split(':')[1])
|
||||||
subcatstatement = JSON.parse(subcattmplate)
|
subcatstatement = JSON.parse(subcattmplate)
|
||||||
|
@ -820,9 +862,8 @@ data21 = `{"verbovolgare": {"subject": {"termType": "Variable", "value":"form"},
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var funzione_calusola=`
|
var funzione_clausola=
|
||||||
{
|
{"princ": "hasClauseFunction:MainClause",
|
||||||
"princ": "hasClauseFunction:MainClause",
|
|
||||||
"subord i": "hasClauseFunction:SubordinateClause",
|
"subord i": "hasClauseFunction:SubordinateClause",
|
||||||
"subord ii": "",
|
"subord ii": "",
|
||||||
"subord iii": "",
|
"subord iii": "",
|
||||||
|
@ -840,10 +881,10 @@ var funzione_calusola=`
|
||||||
"coord 0": "hasClauseFunction:PseudoCoordinateClause"
|
"coord 0": "hasClauseFunction:PseudoCoordinateClause"
|
||||||
}
|
}
|
||||||
|
|
||||||
`
|
|
||||||
|
|
||||||
|
|
||||||
var macrotipi_sint=`
|
|
||||||
|
var macrotipi_sint=
|
||||||
{
|
{
|
||||||
"macro avv": "hasClauseType:Avversativa",
|
"macro avv": "hasClauseType:Avversativa",
|
||||||
"macro caus": "hasClauseType:Causale",
|
"macro caus": "hasClauseType:Causale",
|
||||||
|
@ -875,8 +916,8 @@ var macrotipi_sint=`
|
||||||
"macro sub": "hasClauseType:SubordinataConFunzioneDiRipresa",
|
"macro sub": "hasClauseType:SubordinataConFunzioneDiRipresa",
|
||||||
"macro temp": "hasClauseType:Temporale"
|
"macro temp": "hasClauseType:Temporale"
|
||||||
}
|
}
|
||||||
`
|
|
||||||
var tipi_sint=`
|
var tipi_sint=
|
||||||
{
|
{
|
||||||
"avv caus": "hasClauseType:CoordinataAvversativaCausale",
|
"avv caus": "hasClauseType:CoordinataAvversativaCausale",
|
||||||
"avv comp ug": "hasClauseType:CoordinataAvversativaComparativaDiUguaglianza",
|
"avv comp ug": "hasClauseType:CoordinataAvversativaComparativaDiUguaglianza",
|
||||||
|
@ -1169,5 +1210,3 @@ var tipi_sint=`
|
||||||
"temp comp ug": "hasClauseType:TemporaleConValoreComparativo",
|
"temp comp ug": "hasClauseType:TemporaleConValoreComparativo",
|
||||||
"temp ipo": "hasClauseType:TemporaleConValoreIpotetico",
|
"temp ipo": "hasClauseType:TemporaleConValoreIpotetico",
|
||||||
}
|
}
|
||||||
|
|
||||||
`
|
|
||||||
|
|
Loading…
Reference in New Issue