跳转到主要内容

一个用于处理JSON-LD和在不同形式的RDF之间进行转换的算法库。

项目描述

TRLD

TRLD是一个可转换的算法实现,用于处理链接数据作为JSON-LD。这包括将数据转换为各种RDF语法以及词汇映射。

转换链接数据算法

TRLD是用类型化Python编写的,并特别关注支持转换。当前实现可以转换为

  • Java
  • Javascript

转换器是代码库的一部分,并且仅支持实现这些算法所需的小(有些冗余)类型注释Python子集。 它不是一个通用的转换器

转录链接数据

在解析RDF时,将句法语句逐字转录到JSON-LD中,尽可能保持紧凑形式和排序。相反,序列化是通过将JSON-LD形状原样写出而完成的,使用选择的语法。

为了控制此数据的精确形状,请使用JSON-LD算法进行扩展、展平和紧缩。

将JSON-LD序列化为Turtle或TriG

目前,必须注意使用简单的JSON-LD上下文,以便Turtle或TriG序列化能够工作。这意味着,除了前缀和一些对语言索引和类型转换的支持之外,当将数据转录为Turtle或TriG时,JSON-LD 1.1的高级紧缩功能将不起作用。如果您处理此类紧缩数据,请确保先将其展开,并且最好将其重新紧缩为更简单的形式。

实现的算法

JSON-LD 1.1 (W3C 规范)

  • 展开
  • 压缩
  • 扁平化
  • RDF 序列化/反序列化

N-Quads (W3C 规范)

  • 解析器
  • 序列化器

TriG (W3C 规范)

  • 解析器
  • 序列化器

目标词汇映射 (实验性)

  • 基本 RDFS & OWL
  • 属性链
  • 具象形式
  • SKOS 匹配

运行

基于 Python 的命令行使用

$ python3 -m trld [-h] [-c CONTEXT] [-e [EXPAND_CONTEXT]] [-b BASE] [-f] \
  [-i INPUT_FORMAT] [-o OUTPUT_FORMAT] [SOURCE ...]

基于 Java 的命令行使用

$ java -jar build/java/build/libs/trld-with-deps.jar [-f] [-c CONTEXT] FILE

基于 JS 的命令行使用

$ cd build/js
$ node -r esm lib/jsonld/cli.js [-f] [-c CONTEXT] FILE

构建 & 测试 (& 状态)

构建要求

  • Make
  • 对于 Python: Python 3.6+ (开发使用 mypy)
  • 对于 Java: Java 8+ (使用 Gradle Wrapper)
  • 对于 JS: Node 11+ (使用 ES6 & ESM)

对于 Python,这将运行 mypy 和测试套件

$ make pytest
[...]

python3 -m trld.jsonld.test [...]
Running test suite: cache/json-ld-api/tests/expand-manifest.jsonld
Ran 371 test cases. Passed: 367. Failed: 3. Errors: 1.
Running test suite: cache/json-ld-api/tests/compact-manifest.jsonld
Ran 242 test cases. Passed: 239. Failed: 2. Errors: 1.
Running test suite: cache/json-ld-api/tests/flatten-manifest.jsonld
Ran 55 test cases. Passed: 55. Failed: 0. Errors: 0.
Running test suite: cache/json-ld-api/tests/fromRdf-manifest.jsonld
Ran 51 test cases. Passed: 51. Failed: 0. Errors: 0.
Running test suite: cache/json-ld-api/tests/toRdf-manifest.jsonld
Ran 451 test cases. Passed: 401. Failed: 49. Errors: 1.

python3 -m trld.tvm.test
Running [...]: OK

python3 -m trld.trig.test | grep '^Ran '
Ran 335 tests. Passed 301, failed 34

python3 -m trld.trig.test_serializer | grep '^Examined '
Examined 335 tests. Round-tripped 232, passed 216, failed 13

对于其他语言,这将生成构建目录中每种语言的包,然后运行各自的测试套件

$ make java
[...]
java -cp build/java/build/libs/trld-with-deps.jar trld.jsonld.TestRunner [...]
Ran 371 test cases. Passed: 330. Failed: 14. Errors: 27.

java -cp build/java/build/libs/trld-with-deps.jar trld.trig.Test [...]
Ran 335 tests. Passed 252, failed 83

$ make js
[...]
1..551
# tests 551
# pass  540
# fail  11

[...] node [...] lib/trig/test.js [...]
Ran 335 tests. Passed 270, failed 65

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源分发

trld-0.2.0.tar.gz (60.3 kB 查看哈希值)

上传时间 源代码

构建分发

trld-0.2.0-py3-none-any.whl (69.7 kB 查看哈希值)

上传时间 Python 3

由以下机构支持