【发布时间】:2014-02-23 05:29:33
【问题描述】:
在 sparql 查询中使用 CONSTRUCT 时,输出是 single RDF graph,也就是一组三元组,本质上是 新 数据。但总的来说,我认为CONSTRUCT 是一种手动创建理论上应该可重用的规则的方式。
在CONSTRUCT 的示例用法中,假设我想定义数据中尚未包含的内容。 Here's a good example taken from an article about CONSTRUCT.
@prefix : <http://some.site.com/ont#> .
:jane :hasParent :gene .
:gene :hasParent :pat ;
:gender :female .
:joan :hasParent :pat ;
:gender :female .
:pat :gender :male .
:mike :hasParent :joan .
“以下 CONSTRUCT 语句基于上述三元组创建新的三元组,以指定谁是祖父:”
PREFIX : <http://some.site.com/ont#>
CONSTRUCT { ?p :hasGrandfather ?g . }
WHERE {?p :hasParent ?parent .
?parent :hasParent ?g .
?g :gender :male .
}
结果:
@prefix : <http://some.site.com/ont#> .
:jane :hasGrandfather :pat .
:mike :hasGrandfather :pat .
一旦我通过CONSTRUCT 查询生成了新三元组,这是否意味着我必须获取该数据,并将其输入回数据库才能开始使用/重用:hasGrandfather?还是可以像引用 SQL 中的动态表一样引用生成的 RDF 图?
还有其他有用的方法可以与使用CONSTRUCT 生成的三元组进行交互吗?
【问题讨论】:
标签: rdf sparql semantics triplestore