Rdf 如何优化sparql构造查询

Rdf 如何优化sparql构造查询,rdf,sparql,rdfs,Rdf,Sparql,Rdfs,rdf模式是有问题的 以下查询在几分之一秒内执行 DESCRIBE ?book where { ?book a schema:Book ; } 然而,descripe查询没有给我作者的详细信息。它只返回属于图书本身的属性 因此,我将上面的查询替换为下面的查询 CONSTRUCT { ?book a schema:Book ; schema:bookName ?bookName ; schema:bookId ?bookId ; schema:authoredBy ?author . ?a

rdf模式是有问题的

以下查询在几分之一秒内执行

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

}
然而,descripe查询没有给我作者的详细信息。它只返回属于图书本身的属性

因此,我将上面的查询替换为下面的查询

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

构造查询有一些未绑定的变量,因此不会提供所需的信息。尝试:

CONSTRUCT WHERE
{
 ?book a schema:Book ;
    schema:bookName ?bookName ;
    schema:bookId ?bookId ;
    schema:authoredBy ?author .
    ?author a schema:Person ;
    schema:personName ?personName .
}
如果您为?author获得了三倍,则系统的运行方式不标准

至于速度,这将取决于您使用的系统

你也可以试着描述两件相关的事情:

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

如何限制使用descripe返回的图书数量。说限制10,你加上限制10。要进行更多控制,请在阵列零件内使用子选择。