1 个稳定版本
4.0.0 | 2020 年 10 月 30 日 |
---|
#373 在 科学
23KB
YAGO 4(Pipeline)
[4
什么是 YAGO?
YAGO 4 是一个 RDFS 知识库。它是一组事实的集合——基于 Wikidata ——每个事实由一个主题、一个谓词和一个对象组成——如在 yago:Elvis_Presley rdf:type schema:Person
中。
YAGO 将每个实体至少放入一个类中。这些类形成一个分类法,其中高层次的类来自 schema.org(和 bioschemas.org),低层次的类是来自 Wikidata 的类别的选择。最高的类是 schema:Thing
。
这是运行 YAGO 4 的管道。它允许从 Wikidata 导出中构建 YAGO 4。此管道在“YAGO 4:一个合理的知识库”论文中详细描述。
如何运行
要安装和编译它,您需要安装 Clang、Rust 和 Cargo。
- Ubuntu/Debian:
apt-get install cargo clang
- Arch:
pacman -S rust clang
- Windows:
cargo install yago
- 通用:
cargo install yago
然后您需要下载一个全量的 Wikidata 导出,格式为 N-Triples,并使用 GZip 压缩。最新版本可在 https://dumps.wikimedia.org/other/wikibase/wikidatawiki/latest-all.nt.gz(截至 2019 年 12 月为 115GB)获得。
然后您需要使管道预处理文件以供管道使用。可以在代码的根目录中运行以下命令来完成此操作:
cargo运行 --发布 ---c wd-preprocessed.db 分区 -f latest-all.nt.gz
其中 preprocessed.db
是将要存储预处理的数据的目录(请注意,截至 2019 年 12 月需要 300GB)和 latest-all.nt.gz
是下载的 Wikidata 导出。如果使用 SSD,此过程大约需要一夜之间。
完成后,您可以使用以下命令构建 YAGO 4:
cargo运行 --发布 ---c wd-preprocessed.db 构建 -o yago4 --full
其中 yago4
是 YAGO 4 将要写入的输出目录,--full
是构建完整 YAGO 4 的选项。如果您只想构建具有维基百科条目的实体 YAGO 4,请使用 --all-wikis
代替,并使用 --en-wiki
仅包含具有英文维基百科条目的实体。整个过程可能需要几个小时。
如何贡献
YAGO 4 管道的源代码是用 Rust 编写的。
源代码分为多个文件
main.rs
:程序的入口点,解析命令行参数model.rs
:用于在内存中高效表示 RDF 数据的数据结构multimap.rs
:一个 Multimap 实现。partitioned_statements.rs
:将 Wikidata 溢出文件索引到 RocksDB,并允许高效查询。plan.rs
:YAGO 4 的实际构建计划。schema.rs
:读取 schema.org 数据和 SHACL 模式。由管道使用。vocab.rs
:程序中使用的有用 URI。
使用多个数据文件
data/schema.ttl
:来自 https://schema.org/version/latest/all-layers.ttl 的 schema.org 的官方 Turtle 定义data/bioschemas.ttl
:来自 biochemas 的 Turtle 定义。data/shapes.ttl
:来自 Wikidata 的形状定义和映射。data/shapes-bio.ttl
:为 bioschemas 来自 Wikidata 的形状定义和映射。
技巧
- 请使用
cargo fmt
格式化您的源代码。 cargo clippy
是一个非常强大的代码检查工具。
许可证
版权 (C) 2019-2020 YAGO 4 贡献者。
本程序是自由软件:您可以在自由软件基金会发布的 GNU 通用公共许可证的条款和条件下重新分发和/或修改它,许可证版本为 3 或(按您选择)任何较新版本。
本程序以希望它将是有用的目的进行分发,但没有任何保证;甚至没有关于适销性或适用于特定目的的隐含保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应该已经收到了一份 GNU 通用公共许可证副本,与该程序一起。如果没有,请参阅 https://www.gnu.org/licenses/。
引用
如果您使用本软件进行学术出版,请引用
@inproceedings{DBLP:conf/esws/TanonWS20,
author = {Pellissier Tanon, Thomas and Weikum, Gerhard and Suchanek, Fabian M.},
title = {{YAGO} 4: {A} Reason-able Knowledge Base},
booktitle = {The Semantic Web - 17th International Conference, {ESWC} 2020, Heraklion, Crete, Greece, May 31-June 4, 2020, Proceedings},
series = {Lecture Notes in Computer Science},
volume = {12123},
pages = {583--596},
publisher = {Springer},
year = {2020},
url = {https://doi.org/10.1007/978-3-030-49461-2_34},
doi = {10.1007/978-3-030-49461-2_34}
}
依赖关系
~33MB
~662K SLoC