Rdf 解析Wikidata n-triples数据

Rdf 解析Wikidata n-triples数据,rdf,wikidata,n-triples,Rdf,Wikidata,N Triples,我第一次使用WikiData和RDF。我下载了24GB的维基数据(只有N-Triples.nt格式),但现在我很难理解它 以下是.nt文件中与显示(主语、谓语、宾语)三元组相关的一些行: 此文件是否包含获取Q24、P27和Q30的英文可读名称所需的信息?或者我必须进行单独的HTTP API调用才能解决这些问题 我也能得到一份工作我的理解正确吗?.nt三元组只是JSON层次结构的深度优先遍历,将所有数据展平为三元组 三元组的所有URI都可以从这个巨大的文件解析为英语,还是我必须进行API调用? 将

我第一次使用WikiData和RDF。我下载了24GB的维基数据(只有N-Triples
.nt
格式),但现在我很难理解它

以下是
.nt
文件中与显示(主语、谓语、宾语)三元组相关的一些行:

此文件是否包含获取
Q24
P27
Q30
的英文可读名称所需的信息?或者我必须进行单独的HTTP API调用才能解决这些问题

  • 我也能得到一份工作我的理解正确吗?
    .nt
    三元组只是JSON层次结构的深度优先遍历
    ,将所有数据展平为三元组

  • 三元组的所有URI都可以从这个巨大的文件解析为英语,还是我必须进行API调用?

    将三元组解析为英语需要三元组的不同表示形式,如。大多数RDF序列化对于人类来说可读性不是很好。是其中一个比较可读的。这也是个好主意。RDF的通用工具链对程序员不是那么友好。看见

    您可能希望将三元组导入SPARQL存储,然后使用查询前端。这将大大简化你的生活。这是你可能一直在想的那种“API”

    有关步骤的说明,请参阅。截至2020年5月11日,我正在向Apache Jena导入

    查询前端可能更易于用于简单查询。请在下面找到一个表示您找到的三元组的查询

    # WikiData statements about Jack Bauer
    SELECT ?pLabel ?oLabel 
    WHERE 
    {
      wd:Q24 ?p ?o.
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
    }
    

    此文件是否包含获取Q24、P27和Q30的英文可读名称所需的信息?或者我必须进行单独的HTTP API调用才能解决这些问题吗? 该文件应该包含这些信息,因为“truthy”仅表示您没有来源数据,但拥有所有事实数据。使用WikiData可能相当麻烦,请参见。有一些库可以帮助您通过编程语言API直接处理WikiData。例如,对于Java。有关更全面的列表,请参阅

    我还可以获取此文件的.json转储。我的理解正确吗?.nt三元组只是JSON层次结构的深度优先遍历,将所有数据平铺成三元组?


    三元组的内容应相同。我不确定json转储中三元组的顺序是什么。坏消息是仅仅导入转储的一部分是不够的,因为这样会丢失链接信息

    至少对于QXX实体,
    rdfs:label
    应该为您提供人类可读的表单。此外,属性
    skos:altLabel
    还应该根据实体的类型为您提供某种别名。另外,您应该知道,您当时有英文标签,即带有
    @en
    语言标记的标签。对于属性
    PXX
    不确定标签是否包含在文件本身中,如果不包含,您可以通过SPARQL查询获得这些标签,并在本地进行映射,类似这样的查询可能是
    select?prop?propLabel{{select distinct?prop WHERE{prop wikibase:directClaim?a.}}服务wikibase:label{bd:serviceParam wikibase:language“en”。}}按asc(?prop)排序
    <http://www.wikidata.org/entity/Q24> <http://www.wikidata.org/prop/direct/P27> <http://www.wikidata.org/entity/Q30> .
    
    Jack Bauer, country of citizenship, United States of America
    
    # WikiData statements about Jack Bauer
    SELECT ?pLabel ?oLabel 
    WHERE 
    {
      wd:Q24 ?p ?o.
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
    }