rdf架构存在问题
sparql DESCRIBE query to get data about linked objects
以下查询会在几分之一秒内执行。
DESCRIBE ?book
where
{
?book a schema:Book ;
}
然而,描述查询并未向我提供作者详细信息。它只返回属于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
答案 0 :(得分: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 .
}