Rdf 解析Wikidata n-triples数据
我第一次使用WikiData和RDF。我下载了24GB的维基数据(只有N-TriplesRdf 解析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调用? 将
.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". }
}