解析 Wikidata n-triples 数据
Parsing Wikidata n-triples data
我是第一次使用 WikiData 和 RDF。我下载了 WikiData 24GB "truthy" dataset(仅提供 N-Triples .nt
格式),但现在我很难理解它。
以下是 .nt
文件中与 Jack Bauer 相关的一些行,显示(主语、谓语、宾语)三元组:
<http://www.wikidata.org/entity/Q24> <http://schema.org/description> "protagonista della serie televisiva americana ''24''"@it .
<http://www.wikidata.org/entity/Q24> <http://schema.org/name> "Jack Bauer"@en .
<http://www.wikidata.org/entity/Q24> <http://www.wikidata.org/prop/direct/P27> <http://www.wikidata.org/entity/Q30> .
<http://www.wikidata.org/entity/Q24> <http://www.wikidata.org/prop/direct/P451> <http://www.wikidata.org/entity/Q284262> .
所以我的问题是:
- 是否可以从这个巨大的文件中将三元组的所有 URI 解析为英语,还是我必须进行 API 调用? 例如,我想解析这个三元组:
<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
此文件是否包含获取 Q24
、P27
和 Q30
的英文可读名称所需的信息?或者我是否必须进行单独的 HTTP API 调用来解决它们?
- 我也可以得到一个
.json
dump of this file。 我的理解是否正确 .nt
三元组只是 JSON 层次结构的深度优先遍历 以将所有数据展平为三元组?
是否可以从这个巨大的文件中将三元组的所有 URI 解析为英语,还是我必须进行 API 调用?
将三元组解析为英语需要对三元组进行不同的表示,例如 http://wiki.bitplan.com/index.php/SiDIF. Most RDF serializations are not very well readable for humans. https://www.w3.org/TR/turtle/ being one of the more readable ones. https://gbv.github.io/aREF/aREF.html 也是一个好主意。 RDF 的通用工具链对程序员来说不是那么友好。看
JSON-LD and Why I Hate the Semantic Web
您可能希望将三元组导入 SPARQL 存储,然后为其使用查询前端。那会大大简化你的生活。这就是您可能一直在想的那种 "API"。
有关过程的说明,请参阅 http://wiki.bitplan.com/index.php/Get_your_own_copy_of_WikiData。截至 2020-05-11 我是导入到 Apache Jena。
https://query.wikidata.org/ 查询前端可能更易于用于简单查询。请在下面找到代表您找到的三元组的查询。
# 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 可能会非常麻烦,请参阅 http://wiki.bitplan.com/index.php/WikiData. There are libraries out there that will help you deal via a programming languages API with WikiData directly. E.g. https://github.com/Wikidata/Wikidata-Toolkit for Java. See https://www.wikidata.org/wiki/Wikidata:Tools/For_programmers 以获得更全面的列表。
我还可以获得此文件的 .json 转储。我的理解是否正确,.nt 三元组只是 JSON 层次结构的深度优先遍历,以将所有数据展平为三元组?
三元组的内容应该是一样的。我不确定 json 转储中三元组的顺序是什么。坏消息是仅导入一部分转储是不够的,因为您会丢失 link 信息。
我是第一次使用 WikiData 和 RDF。我下载了 WikiData 24GB "truthy" dataset(仅提供 N-Triples .nt
格式),但现在我很难理解它。
以下是 .nt
文件中与 Jack Bauer 相关的一些行,显示(主语、谓语、宾语)三元组:
<http://www.wikidata.org/entity/Q24> <http://schema.org/description> "protagonista della serie televisiva americana ''24''"@it .
<http://www.wikidata.org/entity/Q24> <http://schema.org/name> "Jack Bauer"@en .
<http://www.wikidata.org/entity/Q24> <http://www.wikidata.org/prop/direct/P27> <http://www.wikidata.org/entity/Q30> .
<http://www.wikidata.org/entity/Q24> <http://www.wikidata.org/prop/direct/P451> <http://www.wikidata.org/entity/Q284262> .
所以我的问题是:
- 是否可以从这个巨大的文件中将三元组的所有 URI 解析为英语,还是我必须进行 API 调用? 例如,我想解析这个三元组:
<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
此文件是否包含获取 Q24
、P27
和 Q30
的英文可读名称所需的信息?或者我是否必须进行单独的 HTTP API 调用来解决它们?
- 我也可以得到一个
.json
dump of this file。 我的理解是否正确.nt
三元组只是 JSON 层次结构的深度优先遍历 以将所有数据展平为三元组?
是否可以从这个巨大的文件中将三元组的所有 URI 解析为英语,还是我必须进行 API 调用?
将三元组解析为英语需要对三元组进行不同的表示,例如 http://wiki.bitplan.com/index.php/SiDIF. Most RDF serializations are not very well readable for humans. https://www.w3.org/TR/turtle/ being one of the more readable ones. https://gbv.github.io/aREF/aREF.html 也是一个好主意。 RDF 的通用工具链对程序员来说不是那么友好。看 JSON-LD and Why I Hate the Semantic Web
您可能希望将三元组导入 SPARQL 存储,然后为其使用查询前端。那会大大简化你的生活。这就是您可能一直在想的那种 "API"。
有关过程的说明,请参阅 http://wiki.bitplan.com/index.php/Get_your_own_copy_of_WikiData。截至 2020-05-11 我是导入到 Apache Jena。
https://query.wikidata.org/ 查询前端可能更易于用于简单查询。请在下面找到代表您找到的三元组的查询。
# 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 可能会非常麻烦,请参阅 http://wiki.bitplan.com/index.php/WikiData. There are libraries out there that will help you deal via a programming languages API with WikiData directly. E.g. https://github.com/Wikidata/Wikidata-Toolkit for Java. See https://www.wikidata.org/wiki/Wikidata:Tools/For_programmers 以获得更全面的列表。
我还可以获得此文件的 .json 转储。我的理解是否正确,.nt 三元组只是 JSON 层次结构的深度优先遍历,以将所有数据展平为三元组?
三元组的内容应该是一样的。我不确定 json 转储中三元组的顺序是什么。坏消息是仅导入一部分转储是不够的,因为您会丢失 link 信息。