相关疑难解决方法(0)

是否可以在SPARQL中的RDF集合中获取元素的位置?

假设我有以下Turtle声明:

@prefix : <http://example.org#> .

:ls :list (:a :b :c)
Run Code Online (Sandbox Code Playgroud)

有没有办法获得集合中元素的位置?

例如,使用此查询:

PREFIX :     <http://example.org#>
PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

SELECT ?elem WHERE {
 ?x :list ?ls .
 ?ls rdf:rest*/rdf:first ?elem .
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

--------
| elem |
========
| :a   |
| :b   |
| :c   |
--------
Run Code Online (Sandbox Code Playgroud)

但我想要一个查询来获取:

--------------
| elem | pos |
==============
| :a   |  0  |
| :b   |  1  |
| :c   |  2  |
--------------
Run Code Online (Sandbox Code Playgroud)

可能吗?

rdf sparql

22
推荐指数
2
解决办法
3935
查看次数

计算节点之间的路径长度?

如何检索两个节点之间的路径长度?例如,给定组织层次结构,如何确定父组织和后代组织分离的距离?请考虑以下方案:

  1. OrgA -hasSubOrganization-> OrgB, OrgC

    这是一个非常简单的情况,我希望得到一个实体的所有直接子组织.因此路径长度为1.

  2. OrgA -> OrgB -> OrgC

    或一般情况

    OrgA -> OrgB - - - - - - - - OrgZ
    
    Run Code Online (Sandbox Code Playgroud)

我想以递归方式遍历图表,并通过该hasSubOrganization属性查找属于另一个组织的每个组织.为了让所有子组织递归,我可以使用属性路径,例如+运算符:

OrgA hasSubOrganization+ ?subOrg
Run Code Online (Sandbox Code Playgroud)

这将为我提供所有子组织,直到叶节点.但我的最终目标是构建组织层次结构,但有关"节点/步骤/级别/跳过子组织的数量"的信息将丢失.这意味着我无法为可视化重新创建组织结构.

除了子组织的名称之外,我如何捕获"节点数"信息?

rdf sparql jena

9
推荐指数
1
解决办法
4071
查看次数

标签 统计

rdf ×2

sparql ×2

jena ×1