gpt4 book ai didi

select - 在构造 sparql 查询中使用联合

转载 作者:行者123 更新时间:2023-12-05 01:10:04 26 4
gpt4 key购买 nike

我有一个 rdf有几个条目的图表。现在我想将所有相关的三元组获取到给定的 id。这是我的 sparql 查询:

select ?s ?p ?o from <http://localhost:8890/DAV/ranking> where {
{<http://seekda.com/providers/cdyne.com/PhoneNotify> so:hasEndpoint ?s.
?s ?p ?o} union
{<http://seekda.com/providers/cdyne.com/PhoneNotify> ?p ?o}
}

本例中的 ID 为 <seekda.com/providers/cdyne.com/PhoneNotify> .

但我需要一个图形查询( constructdescribe )。所以我认为我必须将它们与 union 打包在一起。 .我怎么做?

最佳答案

简短的回答是:没有区别。

更长的答案是:将 SPARQL 查询视为具有两个部分。

  • 查询 (WHERE) 部分,它生成变量绑定(bind)列表(尽管某些变量可能未绑定(bind))。
  • 将结果放在一起的部分。 SELECT , ASK , CONSTRUCT , 或 DESCRIBE .
  • SELECT *实际上是查询返回的内容。 SELECT ?v1 ?v2获取结果并生成另一个结果集,其中删除了其他变量。 ASK只是看看有没有结果。
    CONSTRUCT使用模板从结果中生成 RDF。对于每个结果行,它绑定(bind)变量并将语句添加到结果模型中。如果模板三元组包含未绑定(bind)的变量,则会跳过它。
    DESCRIBE是最不寻常的,因为它获取每个结果节点,找到与之关联的三元组,并将它们添加到结果模型中。与其他人不同,它可以包含比查询匹配更多的信息。

    所以有 UNION , OPTIONAL ,无论如何,在查询中允许所有形式。由于未绑定(bind)的变量,它们可能会导致丢失三元组。

    您的查询没有多大意义。和 {?s ?p ?o} 没什么区别.你想做什么?好的,现在更有意义了。

    鉴于下面的说明,听起来您想要以下内容:
    construct { <http://seekda.com/providers/cdyne.com/PhoneNotify> ?p ?o }
    from <http://localhost:8890/DAV/ranking>
    where {
    { <http://seekda.com/providers/cdyne.com/PhoneNotify> so:hasEndpoint ?s.
    ?s ?p ?o }
    union
    { <http://seekda.com/providers/cdyne.com/PhoneNotify> ?p ?o }
    }

    关于select - 在构造 sparql 查询中使用联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2736155/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com