2014-09-24 65 views
2

OPTION(傳遞的)我有以下查詢SPARQL查詢錯誤與耶拿

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT ?type 
WHERE 
{ 
    { 
     SELECT * 
     WHERE 
     { 
      ?x rdfs:subClassOf ?type . 
     } 
    } 
    OPTION (TRANSITIVE, t_distinct, t_in (?x), t_out (?type)) . 
    FILTER (?x = <http://dbpedia.org/ontology/Hospital>) 
} 

當我把它發送到炫技點,但在我的耶拿例如不工作,它工作正常。在具體的我得到以下錯誤:

INFO [1] 400 Parse error: 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT ?type 
WHERE 
{ 
    { 
     SELECT * 
     WHERE 
     { 
      ?x rdfs:subClassOf ?type . 
     } 
    } 
    OPTION (TRANSITIVE, t_distinct, t_in (?x), t_out (?type)) . 
    FILTER (?x = <http://dbpedia.org/ontology/Hospital>) 
} 
Lexical error at line 12, column 39. Encountered: " " (32), after : "OPTION" (17 ms) 

在這種情況下,一個炫技特定的功能,我將不勝感激知道此查詢會與*耶拿/標準SPARQL工作等效)。預期結果應該是:

http://dbpedia.org/ontology/Building 
http://dbpedia.org/ontology/ArchitecturalStructure 
http://dbpedia.org/ontology/Place 
http://dbpedia.org/ontology/d0:Location 

它代表了「醫院」

回答

5

這是預期的行爲的所有超。查詢的這一部分:

OPTION (TRANSITIVE, t_distinct, t_in (?x), t_out (?type)) 

不是標準的SPARQL 1.1,但它是一個Virtuoso特定的擴展。

Jena是符合SPARQL 1.1的實現。

下面的查詢做同樣的事情用標準SPARQL 1.1語法,並應與定式和炫技(剛剛測試過的DBpedia的端點,得到了相同的結果)工作:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT ?type 
WHERE 
{ 
    { 
    SELECT * 
    WHERE 
    { 
     ?x rdfs:subClassOf+ ?type . 
    } 
    } 
    FILTER (?x = <http://dbpedia.org/ontology/Hospital>) 
} 

使用的功能「財產路徑」。

http://www.w3.org/TR/sparql11-query/

+5

如果使用耶拿發送帶有炫技的特定功能的查詢時,您需要將創建一個QueryEngineHTTP(這是一個QueryExecution),並提供只是2串,端點和查詢字符串。否則,Jena在本地驗證查詢,但它不是有效的SPARQL,因此它失敗。 – AndyS 2014-09-24 10:48:19

+0

謝謝enridago和@AndyS。這個人[http://blog.pingoured.fr/index.php?post/2011/10/11/Jena%2C-virtuoso-and-option-transitive]聲稱使用QueryEngineHTTP爲他工作。這就是爲什麼我把什麼enridaga建議,但我知道它的Virtuoso具體。不幸的是,建議的代碼沒有爲我運行,Fuseki扔回了相同的例外,所以我猜這符合你們兩人的表現。有沒有辦法重寫這個查詢來與Jena一起工作? – alexandria 2014-09-24 11:11:11

+0

你能編輯你的問題來描述你期望的結果嗎?它僅僅是rdfs:subClassOf的傳遞性嗎?如果是這種情況,則可以使用屬性路徑,即SPARQL 1.1功能。 – enridaga 2014-09-24 12:26:16