我正在使用youtube API来检索特定视频的 freebase 主题详细信息。由于freebase 即将关闭,我如何使用wikidata来查询特定主题 ID?
例如以下主题 id/m/0181lj
应提供以下信息
我尝试使用wikidata REST API,但没有找到符合我需要的请求。
更新
Freebase发布了知识图谱topicId
,允许您通过as so进行查询
https://kgsearch.googleapis.com/v1/entities:search?ids=/m/0181lj&key=API_KEY&limit=5&indent=True
然而,有些 ID 似乎没有返回数据,例如以下音乐流派/m/05fqyx
,/m/02w1p3
作为替代方案,可以下载 freebase,但我还没有尝试过!
如何(可靠地)从 API 获取维基百科信息框中使用的主图像?
这个问题之前已经被问过,接受的答案承认这只是一个猜测。随后的答案充其量看起来像是黑客,并且不会返回正确的图像。
例如,吉米·亨德里克斯维基百科条目用作"File:Jimi Hendrix 1967.png"
信息框中的主图像。
更新的答案建议使用此网址,但对于吉米·亨德里克斯(和其他主题),它经常返回错误的图像。
如果我拉入所有图像,则无法确定信息框中使用的图像。
我正在尝试使用 Sparql (通过在线端点)在维基数据中进行模糊(即部分或不区分大小写)实体标签查找。不幸的是,这些返回一个“ QueryTimeoutException:查询截止日期已过期。 ”我假设这是因为查询返回太多结果,无法在维基数据的 1 分钟超时中运行过滤器。
具体查询如下:
def findByFuzzyLabel(self, item_label):
qstring = '''
SELECT ?item WHERE {
?item rdfs:label ?label .
FILTER( lcase(str(?label)) = "%s")
}
LIMIT 20
''' % (item_label)
results = self.query(qstring)
Run Code Online (Sandbox Code Playgroud)
有没有办法在维基数据的实体标签上进行部分字符串和/或不区分大小写的标签查找,或者我需要在下载原始数据时离线执行此操作?
我希望将“Lindbergh”等标签与“Charles Lindbergh”相匹配,并在某些情况下处理不区分大小写的问题。任何关于如何做到这一点的建议,无论是通过 Sparql 还是在 Python 中离线,都值得赞赏。
我正在遵循有关从维基数据查询的指南。
我可以使用以下命令获取某个实体(如果我知道其代码):
from wikidata.client import Client
client = Client()
entity = client.get('Q20145', load=True)
entity
>>><wikidata.entity.Entity Q20145 'IU'>
entity.description
>>>m'South Korean singer-songwriter, record producer, and actress'
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能获得该实体的 RDF 三元组呢?即所有出边和入边的形式为(主语、谓语、宾语)
我正在尝试将项目分类为维基数据支持的主要类别:通用,人员,组织,事件,工作,条款,地点,其他.这些类别列在这里:https://www.wikidata.org/wiki/Wikidata : List_of_properties
我找不到指定主类别的属性.我查看了P31"实例"属性和P279"子类",但它们不是我需要的.
例如,对于"IBM",P31返回"上市公司"和"软件公司",而"瑞士国际航空公司"则返回"航空公司".所以我不能说他们都是组织.
有没有办法做到这一点?
一种选择是检查物品的属性,因此如果物品具有P21"性别或性别",则它是人(或动物).但我不认为这是稳定的,因为没有财产是强制性的.
我正在使用维基数据工具包进行查询.
我进行了查询,显示了“分类单元”“沙眼衣原体D / UW-3 / CX”中找到的所有项目。这些项目必须具有属性P644(基因组起始)和P645(基因组终止)。到目前为止,这有效。但是后来我想根据“基因组起点”和“基因组终点”的值来过滤这些项目。在我的示例中,我想接收“基因组起始值”高于“ 100”且“基因组终止值”低于“ 3000”的所有项目。但这没有用。我不是以正确的方式使用FILTER吗?
这是我的直接在Wikidata查询服务页面中的代码: Wikidata查询服务
SELECT ?item ?genomic_start ?genomic_end
Where{
?item wdt:P703 wd:Q20800373. #P703:found in taxon
?item wdt:P644 ?genomic_start.
?item wdt:P645 ?genomic_end.
FILTER (?genomic_start > "100").
FILTER (?genomic_end < "3000").
}
Run Code Online (Sandbox Code Playgroud) 使用维基数据SPARQL服务,我想获得50个州的列表,并包括维基数据区的哥伦比亚特区.我想出了一个kludgy查询来做到这一点:
#-- wdt:P31 = instance of; wd:Q35657 = list of states
SELECT ?state ?stateLabel
WHERE {
{?state wdt:P31 wd:Q35657} UNION
{?state wdt:P3403 wd:Q3551781} . #-- coextensive with District of Columbia
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
Run Code Online (Sandbox Code Playgroud)
我的查询有效,但我将DC提取到结果中的方式很难看.(未来维基数据中的数据更改可能会破坏此查询.)我希望能够说的是
UNION {?state == wd:Q61}
Run Code Online (Sandbox Code Playgroud)
直接包括华盛顿特区(Q61).但是,作为一个SPARQL新手,我无法弄清楚这样做的SPARQL语法.我很感激任何帮助重写这个查询直接拉入wd:Q61
.
在维基数据SPARQL端点上,我试图制作一些特定期刊中引用文章的直方图.引文计数没有明确地存在于数据库中,所以我必须先计算它们.但后来我基本上想要直方图显示引用计数分布,即引用X次的论文次数.所以,像:
SELECT ?work (COUNT(?citing_work) AS ?count)
(COUNT(?count) AS ?hist)
WHERE {
?work wdt:P1433 wd:Q6294930.
?citing_work wdt:P2860 ?work.
}
GROUP BY ?work ?count
ORDER BY DESC(?count)
Run Code Online (Sandbox Code Playgroud)
但这并不是我所希望的那样,并为此hist变量赋予零:
我确实尝试不输出?工作的ID,但这实际上只是删除了第一列.但仍然给出了四行引用计数17.但我希望有一行?count = 17和?hist = 4(见截图).
如何更新此SPARQL查询?
我有自己的数据集,我想在SPARQL中执行联合查询.这是查询:
PREFIX : <http://myURIsNamespace#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
select * where {
?bioentity :hasMutatedVersionOf ?gene .
?gene :partOf wd:Q430258 .
SERVICE <https://query.wikidata.org/sparql> {
?gene p:P644 ?statement;
wdt:P31 wd:Q7187 ;
wdt:P703 wd:Q15978631 ;
wdt:P1057 wd:Q430258 .
?statement ps:P644 ?start .
?statement pq:P659 wd:Q20966585 .
?gene p:P645 ?statement2.
?statement2 ps:P645 ?end .
?statement2 pq:P659 wd:Q20966585 .
FILTER (xsd:integer(?start)>21000000 && xsd:integer(?start)<30000000)
}
}
Run Code Online (Sandbox Code Playgroud)
我通过graphDB SPARQL接口运行查询,但它真的很慢.返回8条记录需要一分多钟.如果我将查询分为两部分,那么它们的速度非常快.
查询#1
select * where …
Run Code Online (Sandbox Code Playgroud) query-optimization sparql wikidata graphdb federated-queries
我为Wikidata创建了以下SPARQL查询.此查询的结果是与德国州相关的记录.但正如您所看到的,结果连续发生了四次(您可以在此处测试:https://query.wikidata.org/).我认为地理坐标和语言存在问题,但无论如何我无法解决它.这个查询有什么问题,如何修复它以便不重复地接收结果?
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX schema: <http://schema.org/>
PREFIX psv: <http://www.wikidata.org/prop/statement/value/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd: <http://www.wikidata.org/entity/>
SELECT DISTINCT ?subject ?featureCode ?countryCode ?name ?latitude ?longitude ?description ?iso31662
WHERE
{ ?subject wdt:P31 wd:Q1221156 ;
rdfs:label ?name ;
wdt:P17 ?countryClass .
?countryClass
wdt:P297 ?countryCode .
?subject wdt:P31/(wdt:P279)* ?adminArea .
?adminArea wdt:P2452 "A.ADM1" ;
wdt:P2452 ?featureCode .
?subject wdt:P300 ?iso31662
OPTIONAL
{ ?subject schema:description ?description
FILTER ( lang(?description) = "en" )
?subject p:P625 ?coordinate …
Run Code Online (Sandbox Code Playgroud)