gpt4 book ai didi

sparql - SPARQL 中的 GROUP BY?

转载 作者:行者123 更新时间:2023-12-02 08:57:35 25 4
gpt4 key购买 nike

假设我使用 FOAF 本体。我想返回每个人的namembox。我使用以下查询:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?name ?email
WHERE {
?person foaf:name ?name.
?person foaf:mbox ?email.
}

连接的结果是一组行:?person?name?email。此查询返回 ?name?email。请注意,在某些 ?person 中可能有多个邮箱,因此在返回的集合中,?name 行可能会出现多次,每个邮箱一次。

有没有办法让GROUP BY person ?name

最佳答案

您可以按人员分组,但需要对 ?name?email 进行聚合

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT (sample(?name) AS ?name2) (sample(?email) as ?email2)
WHERE {
?person foaf:name ?name.
?person foaf:mbox ?email.
} GROUP BY ?person

SAMPLE 从组中为每个 ?person 选择一个可能的选项。

或者也许

SELECT (group_concat(?name) AS ?names)

(除了那是一个字符串)。

合作可能会更容易

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?email
WHERE {
?person foaf:name ?name.
?person foaf:mbox ?email.
}
ORDER BY ?person ?name ?email

并在您的应用程序中处理结果,您知道传入的结果包含一个人的所有条目,是结果的一个部分。

关于sparql - SPARQL 中的 GROUP BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268261/

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