Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jena TDB/Fuseki性能_Java_Sparql_Jena_Tdb_Fuseki - Fatal编程技术网

Java Jena TDB/Fuseki性能

Java Jena TDB/Fuseki性能,java,sparql,jena,tdb,fuseki,Java,Sparql,Jena,Tdb,Fuseki,我有一个简单的SPARQL查询,它使用本地Fuseki SPARQL端点在我的Jena TDB存储上执行得相当快: SELECT DISTINCT ?p WHERE { ?s rdf:type dbpedia-owl:Organisation . ?s ?p dbpedia:California . } LIMIT 10 它可能需要10秒钟才能完成,并包含一些owl:ObjectProperty和其他属性。当我想使用以下查询仅显示对象属性时,请注意附加的三元组和末尾的1限制: SE

我有一个简单的SPARQL查询,它使用本地Fuseki SPARQL端点在我的Jena TDB存储上执行得相当快:

SELECT DISTINCT ?p 
WHERE
{ 
  ?s rdf:type dbpedia-owl:Organisation .
  ?s ?p dbpedia:California .
}
LIMIT 10
它可能需要10秒钟才能完成,并包含一些owl:ObjectProperty和其他属性。当我想使用以下查询仅显示对象属性时,请注意附加的三元组和末尾的1限制:

SELECT DISTINCT ?p 
WHERE
{ 
  ?s rdf:type dbpedia-owl:Organisation .
  ?s ?p dbpedia:California .
  ?p a owl:ObjectProperty .
}
LIMIT 1
然后,我希望答案同样快速地出现,并且只显示前面显示的一个对象属性。毕竟,这只是对前一个查询的进一步细化。但是,查询时间要长很多倍,并且在几分钟而不是几秒钟后完成

我在这里感到困惑。为什么第二个查询需要这么长时间

我使用的是Fuseki版本1.1.0。这是我的fuseki配置文件:

@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix text:    <http://jena.apache.org/text#> .
@prefix fuseki:  <http://jena.apache.org/fuseki#> .
@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
@prefix :        <http://localhost/dbpedia37#> .

[] rdf:type fuseki:Server ;
   fuseki:services (
     :service_text_tdb
   ) .

## Example of a TDB dataset and text index
## Initialize TDB
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB    rdfs:subClassOf  ja:Model .

## Initialize text query
[] ja:loadClass       "org.apache.jena.query.text.TextQuery" .
# A TextDataset is a regular dataset with a text index.
text:TextDataset      rdfs:subClassOf   ja:RDFDataset .
# Lucene index
text:TextIndexLucene  rdfs:subClassOf   text:TextIndex .

## ---------------------------------------------------------------
## This URI must be fixed - it's used to assemble the text dataset.

:text_dataset rdf:type     text:TextDataset ;
    text:dataset   :dataset ;
    text:index     :indexLucene ;
    .

# A TDB datset used for RDF storage
:dataset rdf:type      tdb:DatasetTDB ;
    tdb:location "/Users/jsimon/No-Backup/dbpedia37/tdb" ;
#    tdb:unionDefaultGraph true ; # Optional
    .

# Text index description
:indexLucene a text:TextIndexLucene ;
    text:directory <file:Lucene> ;
    ##text:directory "mem" ;
    text:entityMap :entMap ;
    .

# Mapping in the index
# URI stored in field "uri"
# rdfs:label is mapped to field "text"
:entMap a text:EntityMap ;
    text:entityField      "uri" ;
    text:defaultField     "text" ;
    text:map (
         [ text:field "text" ; text:predicate rdfs:label ]
         [ text:field "text" ; text:predicate foaf:name ]
         ) .

:service_text_tdb rdf:type fuseki:Service ;
    rdfs:label                      "TDB/text service" ;
    fuseki:name                     "ds" ;
    fuseki:serviceQuery             "query" ;
    fuseki:serviceQuery             "sparql" ;
    fuseki:serviceUpdate            "update" ;
    fuseki:serviceUpload            "upload" ;
    fuseki:serviceReadGraphStore    "get" ;
    fuseki:serviceReadWriteGraphStore    "data" ;
    fuseki:dataset                  :text_dataset ;
    .

它会反复花费那么长的时间吗?例如,如果在同一会话中多次运行查询?我不知道是否会有一个预热期或类似的时间。由于您在第二个查询中只选择了一个,如果删除distinct会发生什么情况?不幸的是,这需要同样长的时间。当我移除对象属性约束并增加限制时,结果几乎是即时存在的,并且它确实包含对象属性。这是Fuseki的哪个版本?配置是什么?但它比普通数据集更复杂。请尝试最新的开发版本(这里有一个可能的问题已修复),或者删除文本索引以测试同一查询,看看这是否有帮助。此外,减少不明显可能是有用的信息。