小编prg*_*gao的帖子

提取由一组节点引起的子图

给出对象和有向关系的通用图:

@prefix obj: <http://example.org/obj/> .
@prefix rel: <http://example.org/rel/> .

obj:obj1 rel:rel1 obj:obj2 .
obj:obj3 rel:rel2 obj:obj2 .
obj:obj9 rel:rel5 obj:obj8 .
obj:obj1 rel:rel1 obj:obj3 .
Run Code Online (Sandbox Code Playgroud)

和一个对象的子集,比如obj1, obj2, obj3,如何使用简单的SPARQL查询提取仅包含此对象子集的子图,而不管完整图中的特定关系?由此产生的子图应为:

obj:obj1 rel:rel1 obj:obj2 .
obj:obj3 rel:rel2 obj:obj2 .
obj:obj1 rel:rel1 obj:obj3 .
Run Code Online (Sandbox Code Playgroud)

我目前的尝试是尝试使用一堆OPTIONAL子句来尝试所有可能的关系,这可能不是最好的方法:

SELECT ?r1 ?r2 ?r3 ?r4 ?r5 ?r6 WHERE {
OPTIONAL {obj:obj1 ?r1 obj:obj2} .
OPTIONAL {obj:obj1 ?r2 obj:obj3} .
OPTIONAL {obj:obj2 ?r3 obj:obj3} .
OPTIONAL {obj:obj2 ?r4 obj:obj1} .
OPTIONAL {obj:obj3 ?r5 obj:obj1} .
OPTIONAL …
Run Code Online (Sandbox Code Playgroud)

rdf sparql jena virtuoso

2
推荐指数
1
解决办法
688
查看次数

标签 统计

jena ×1

rdf ×1

sparql ×1

virtuoso ×1