gpt4 book ai didi

sparql - 维基数据 SPARQL 查询限定符值

转载 作者:行者123 更新时间:2023-12-02 20:49:30 25 4
gpt4 key购买 nike

对于熟悉 SPARQL 的人(我不熟悉)来说,这应该相当容易。我试图在此查询中返回“score_by”的限定符/属性值,但它显示为空白:

SELECT ?item ?itemLabel ?IMDb_ID ?_review_score ?_score_by WHERE {
?item wdt:P345 "tt3315342".
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
OPTIONAL { ?item wdt:P345 ?IMDb_ID. }
OPTIONAL { ?item wdt:P444 ?_review_score. }
OPTIONAL { ?item ps:P447 ?_score_by. }
}

Here is a link to this query

最佳答案

“得分依据”是一件棘手的事情,因为它限定了得分。

分数是复杂的东西:它们不仅仅是一个值,而是由评分者(烂番茄、IMDB 等)评定的。如果您的查询有效,答案将会产生误导,因为不清楚 ?_review_score 是否对应于 ?_score_by,即评论分数是否与评论相对应。

(您可能会问为什么 P444 - 分数 - 在那里,因为没有审阅者,信息就不完整。这是一个公平的问题。实际属性是 wdt:P444,一个 wikidata 直接属性。这意味着创建该属性是为了方便快捷,但代价是丢失一些上下文。它们就像数据库 View 。)

他们实际工作的方式是将复杂的评论分数“具体化”为一个事物,一个对象“评论”,然后将信息(分数、评论者等)卡在其上。

例如:

select * where {
wd:Q24053263 p:P444 ?review . # Get reviews for wolverine
?review ?p ?o # Get all info from the review
}

Link

您可以在此处看到分数位于 p:statement/P444 下,并且有一个“限定符”p:qualifier/P447,即审核者。

本质上,维基数据中的属性可以以多种形式出现,并在前缀中进行编码。

回答您的问题:

OPTIONAL { ?item wdt:P444 ?_review_score. }
OPTIONAL { ?item ps:P447 ?_score_by. }

应该是

OPTIONAL { 
?item p:P444 ?review .
?review pq:P447 ?_score_by ; ps:P444 ?_review_score
}

Link

即将评论视为一件事情,然后从中获取分数和相应的评论者。

(如果您担心可能会有没有审阅者的分数,您可以在其中添加另一个选项)

关于sparql - 维基数据 SPARQL 查询限定符值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42796557/

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