SPARQL 查询以使用 IF 或 NOT EXISTS 或任何其他方式获取链接到对象 2 而未链接到对象 1 的主题?

问题描述

希望你一切顺利。 这是我的图形数据库的基本结构。组件有估计方法,估计方法有参数,参数有数据源。

c -> em -> p -> ds

哪里,

c stands for components
em stands for estimation methods
p stands for parameters
ds stands for data sources

我能够以这样的结构化格式查询个人:

SELECT ?c ?em ?p ?ds WHERE {

    ?c wb:hasEstimationMethod ?em.
 
        OPTIONAL {
            ?em wb:hasParameter ?p.
            
            OPTIONAL{
                ?p wb:hasDataSource ?ds.
            }
        }
    }

我使用 OPTIONAL 子句是因为估计方法可能没有任何参数,类似的参数可能没有任何数据源。

但是,例如,估计方法未知但我们知道参数的情况很少。因此,例如在这种情况下,组件将直接具有参数,而我更愿意为估计方法留出空白。所以这是我想要的输出,

c em p ds
component-1 估计方法-1 参数-1 数据源-1
component-2 参数-2 数据源-2
component-3 参数-3

如果您注意到最后两行缺少信息,如果是这种情况,这就是我希望在输出中包含的信息。换句话说,我想跳过层次结构中的一个步骤。

所以我的问题是,我如何首先查询 ?c wb:hasEstimationMethod ?em 但如果它没有任何值,我想告诉 SPARQL 使用查询 ?c wb:hasParameter ?p 并且类似地,如果它也没有任何值,做?c wb:hasDataSource ?ds吗?

任何帮助将不胜感激!如果我没有使用正确的术语,请告诉我。祝你有美好的一天:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...