Оптимизация SPARQL-запросов на Fuseki с помощью ttl - PullRequest
0 голосов
/ 28 октября 2019

Я работал над созданием файла ttl через Apache Jena. Этот файл запрашивается с помощью Apache Fuseki, но я замечаю, что чем больше данных я добавляю, тем медленнее становится запрос. Я использую ajax-вызов из javascript для отображения результатов на веб-странице. Есть ли лучшая конфигурация или способ, которым я могу оптимизировать запросы? Я точно знаю, что ttl-файл будет расти, так как предполагается, что будет добавлено больше данных.

Например, это один из запросов, которые я использую:

PREFIX dcterms: <http://purl.org/dc/terms/> 

PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX locah: <http://data.archiveshub.ac.uk/def/> 
PREFIX ore: <http://www.openarchives.org/ore/terms/> 
SELECT ?Register ?Id ?Date ?Type ?Lang ?TypeOfCover ?Spine ?Note (count(?Deed) as ?TotalDeeds)  
WHERE{ 
  ?Register dcterms:creator ?Author. 
  ?Register dcterms:identifier ?Id. 
  ?Register dcterms:type ?Type. 
  optional{?Register locah:dateCreatedAccumulatedString ?Date.} 
  optional{?Register <http://natarchives.com.mt/notarypedia/ontology#coverType> ?TypeOfCover.} 
  optional{?Register <http://natarchives.com.mt/notarypedia/ontology#spineWidth> ?Spine.} 
  optional{?Register <http://www.w3.org/2004/02/skos/core#note> ?Note.}  
  optional{?Register ore:aggregates ?Deed.} 
  optional{?Register dcterms:language ?Lang.} 
  ?Author foaf:firstName "Giacomo". 
  ?Author foaf:familyName "Zabbara"} 
group by ?Register ?Id ?Date ?Type ?Lang ?TypeOfCover ?Spine ?Note

гдедля отображения результатов требуется около 10 секунд, что довольно неприятно для тех, кто хочет отображать результаты тут же, в пользовательском интерфейсе

...