标签: wikidata

如何使用 YouTube 视频中的 freebase ID 查询 wiki 数据?

我正在使用youtube API来检索特定视频的 freebase 主题详细信息。由于freebase 即将关闭,我如何使用wikidata来查询特定主题 ID?

例如以下主题 id/m/0181lj应提供以下信息

/米/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,但我还没有尝试过!

youtube freebase youtube-api wikidata wikidata-api

4
推荐指数
1
解决办法
3286
查看次数

如何可靠地获取维基百科信息框中使用的图像?

如何(可靠地)从 API 获取维基百科信息框中使用的主图像?

这个问题之前已经被问过,接受的答案承认这只是一个猜测。随后的答案充其量看起来像是黑客,并且不会返回正确的图像。

例如,吉米·亨德里克斯维基百科条目用作"File:Jimi Hendrix 1967.png"信息框中的主图像。

更新的答案建议使用此网址,但对于吉米·亨德里克斯(和其他主题),它经常返回错误的图像。

如果我拉入所有图像,则无法确定信息框中使用的图像。

json wikipedia wikipedia-api wikidata wikidata-api

4
推荐指数
1
解决办法
2329
查看次数

使用 Sparql 在 Wikidata 中模糊实体查询超时

我正在尝试使用 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 中离线,都值得赞赏。

sparql wikidata

4
推荐指数
1
解决办法
2065
查看次数

从 Wikidata 中提取 RDF 三元组

我正在遵循有关从维基数据查询的指南

我可以使用以下命令获取某个实体(如果我知道其代码):

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 三元组呢?即所有出边和入边的形式为(主语、谓语、宾语)

看起来这个SO问题设法获得了三元组,但只能从这里的数据转储中获得。我正试图从图书馆本身获取它。

python database rdf wikidata

4
推荐指数
1
解决办法
1660
查看次数

如何对Wikidata项目进行分类?

我正在尝试将项目分类为维基数据支持的主要类别:通用,人员,组织,事件,工作,条款,地点,其他.这些类别列在这里:https://www.wikidata.org/wiki/Wikidata : List_of_properties

我找不到指定主类别的属性.我查看了P31"实例"属性和P279"子类",但它们不是我需要的.

例如,对于"IBM",P31返回"上市公司"和"软件公司",而"瑞士国际航空公司"则返回"航空公司".所以我不能说他们都是组织.

有没有办法做到这一点?

一种选择是检查物品的属性,因此如果物品具有P21"性别或性别",则它是人(或动物).但我不认为这是稳定的,因为没有财产是强制性的.

我正在使用维基数据工具包进行查询.

wikidata

3
推荐指数
1
解决办法
571
查看次数

Wikidata查询服务,过滤位于某个值之上/之下的值/字符串

我进行了查询,显示了“分类单元”“沙眼衣原体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)

rdf sparql wikidata

3
推荐指数
1
解决办法
129
查看次数

使用SPARQL,如何通过identifer选择节点,特别是在wikidata中?

使用维基数据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 wikidata

3
推荐指数
1
解决办法
218
查看次数

在SPARQL中聚合计数变量?

维基数据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 wikidata

3
推荐指数
1
解决办法
93
查看次数

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

3
推荐指数
1
解决办法
558
查看次数

来自维基数据的重复结果

我为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)

sparql wikidata

3
推荐指数
1
解决办法
318
查看次数