2014-09-06 78 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