gpt4 book ai didi

sparql - 维基数据+SPARQL : lookup a company based on it's ticker symbol

转载 作者:行者123 更新时间:2023-12-04 00:32:46 42 4
gpt4 key购买 nike

我正在尝试使用 sparql 根据股票代码查找公司。

此查询将列出企业及其代码(基本查询)

SELECT DISTINCT ?id ?idLabel ?ticker
WHERE {
?id wdt:P31/wdt:P279* wd:Q4830453 .
?id wdt:P249 ?ticker .
?id rdfs:label ?idLabel
FILTER(LANG(?idLabel) = 'en').
}

但是,IBM 不包括在内,因为 IBM 将其股票代码置于 P414 属性(证券交易所)“内部”。

https://www.wikidata.org/wiki/Q37156

我如何扩展此列表以包括“内部”有 P414 和 P249 代码的公司?

这里是我如何显示 ibm 不包括在内:

SELECT DISTINCT ?id ?idLabel ?exchange ?ticker2
WHERE {
?id wdt:P31/wdt:P279* wd:Q4830453 .
?id wdt:P249 ?ticker . FILTER(LCASE(STR(?ticker)) = 'ibm') .
?id rdfs:label ?idLabel
FILTER(LANG(?idLabel) = 'en').
}

最佳答案

所以答案基于 AKSWStanisla v 的评论是,此查询将列出纽约证券交易所的所有股票(只要股票代码在交易所“下方”列出:

SELECT DISTINCT ?id ?idLabel ?exchange ?ticker
WHERE {
?id wdt:P31/wdt:P279* wd:Q4830453 .
?id p:P414 ?exchange .
?exchange ps:P414 wd:Q13677 .
?exchange pq:P249 ?ticker .

?id rdfs:label ?idLabel
FILTER(LANG(?idLabel) = 'en').
}

此查询将在纽约证券交易所查找特定股票 (IBM):

SELECT DISTINCT ?id ?idLabel ?exchange ?ticker
WHERE {
?id wdt:P31/wdt:P279* wd:Q4830453 .
?id p:P414 ?exchange .
?exchange ps:P414 wd:Q13677 .
?exchange pq:P249 ?ticker . FILTER(LCASE(STR(?ticker)) = 'ibm') .

?id rdfs:label ?idLabel
FILTER(LANG(?idLabel) = 'en').
}

此查询将在任何证券交易所查找特定股票,或直接引用(此处显示两个不同的股票代码以说明搜索)。这个查询很长,因为 wikidata 有时在股票代码下有证券交易所子字段,有时反过来。哦,有时它们完全是两个不同的领域(未链接)。哦,乔伊。

SELECT DISTINCT ?id ?idLabel ?exchange ?exchangeLabel ?ticker
WHERE {
?id wdt:P31/wdt:P279* wd:Q4830453 .
{
# Find cases where the ticker is the main attribute, and the exchange may be below it.
?id wdt:P249 ?ticker . FILTER(LCASE(STR(?ticker)) = 'nsu') .
?id p:P249 ?tickersub .
?tickersub pq:P414 ?exchange
}
UNION {
# Find the exchange and it's ticker
?id wdt:P414 ?exchange .
?id p:P414 ?exchangesub .
?exchangesub pq:P249 ?ticker . FILTER(LCASE(STR(?ticker)) = 'ibm') .
}
UNION {
# Find the exchange and it's ticker
?id wdt:P414 ?exchange .
?id wdt:P249 ?ticker . FILTER(LCASE(STR(?ticker)) = 'frme') .
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

关于sparql - 维基数据+SPARQL : lookup a company based on it's ticker symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48568094/

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