gpt4 book ai didi

sparql - 有没有办法使用变量而不用 SPARQL "select *"返回它?

转载 作者:行者123 更新时间:2023-12-01 03:58:53 25 4
gpt4 key购买 nike

有没有办法在使用 SELECT * 时将一种占位符变量与 SPARQL 一起使用而不返回它? ?

例如:

SELECT * WHERE { 
?s dcterms:title ?title;
foaf:person ?name.
?s2 :inProject ?s.
}

我不想返回 ?s变量,只是 ?title , ?name , 和 ?s2离开 SELECT * 时的变量.

我知道我可以使用 SELECT ?title ?name ... 来限制选择结果,但我只是好奇是否有某种占位符变量的表示法或某种方式来管理它。

编辑:

我了解您可以在某些情况下使用空白节点来完成此操作,例如:
SELECT * WHERE { 
_:s dcterms:title ?title;
foaf:person ?name.
?s2 :inProject _:s.
}

但是,由于空白节点不能跨基本图形模式使用,这不会引起问题吗?例如,这在这种情况下会中断:
SELECT * WHERE { 
_:s dcterms:title ?title;
foaf:person ?name.
OPTIONAL { ?s2 :inProject _:s. }
}

谢谢!

最佳答案

对于范围为单个模式的变量,是的,请使用您在问题中演示的空白节点变量语法

在一般情况下没有,如果你使用一个变量,那么 SELECT *将返回它。

一种可能的解决方法是使用子查询来列出变量并忽略不需要的变量,例如

SELECT * WHERE
{
{
SELECT ?title ?name ?s2 WHERE
{
?s dcterms:title ?title;
foaf:person ?name.
OPTIONAL{ ?s2 :inProject ?s. }
}
}
}

但是我认为这正是您要避免的,因为无论如何您最终都会列出变量。

关于sparql - 有没有办法使用变量而不用 SPARQL "select *"返回它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007408/

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