微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。