2014-09-06 68 views
0

RDF Schema中的問題如何優化SPARQL構造查詢

sparql DESCRIBE query to get data about linked objects

下面的查詢在幾分之一秒的執行承擔的責任。

DESCRIBE ?book 
where 
{ 
?book a schema:Book ; 

} 

然而,describe描述查詢並沒有給我作者的詳細信息。它只返回屬於Book本身的屬性。

所以我把上面的查詢替換爲下面的查詢。

CONSTRUCT 
{ 
?book a schema:Book ; 
schema:bookName ?bookName ; 
schema:bookId ?bookId ; 
schema:authoredBy ?author . 
?author a schema:Person ; 
schema:personName ?personName . 

} 
where 
{ 
?book a schema:Book ; 
} 

但是,上面的sparql查詢需要4秒的執行時間。

Is there way to optimize the sparql CONSTRUCT 
OR 
should we be using SELECT always instead of CONSTRUCT 

回答

1

您的CONSTRUCT查詢有一些未綁定的變量,因此不會給您提供您所需的信息。請嘗試:

CONSTRUCT WHERE 
{ 
?book a schema:Book ; 
    schema:bookName ?bookName ; 
    schema:bookId ?bookId ; 
    schema:authoredBy ?author . 
    ?author a schema:Person ; 
    schema:personName ?personName . 
} 

如果您正在獲取作者的三倍,那麼系統不會以標準方式進行操作。

至於速度,它將取決於您使用的是哪個系統。

您也可以嘗試描述兩個相關的東西:

DESCRIBE ?book ?author { 
    ?book a schema:Book ; 
     schema:authoredBy ?author . 
} 
+0

我如何限制圖書的數量使用DESCRIBE返回。 說出LIMIT 10 – Anubhav 2014-09-06 18:11:11

+0

您添加了LIMIT 10. 對於更多控制,請在模式部分內使用子SELECT。 – AndyS 2014-09-07 17:24:22