甜RDF/

EasyRdf 是一个 PHP 库,旨在使消费和生成 RDF 变得容易。

1.14.1 2024-05-27 10:24 UTC

README

CI

关于这个分支 🚀

这是我利用业余时间维护的 EasyRdf 分支。我的目标是让 EasyRdf 在最新的 PHP 版本上保持活跃和可用。代码基本上得到了维护,但没有进一步开发。如果您想参与,请随时提交 pull request!有关此分支的更多信息,请滚动至文档末尾。

关于 EasyRdf

EasyRdf 是一个 PHP 库,旨在使消费和生成 RDF 变得容易。它旨在在由经验丰富和缺乏经验的 RDF 开发者组成的团队中使用。它使用面向对象 PHP 编写,并通过 PHPUnit 进行了广泛测试。

EasyRdf 解析后,构建了一个 PHP 对象图,然后可以遍历该图以获取要放置在页面上的数据。提供了一些输出方法,以便在开发过程中检查可用的数据。

数据通常从源 RDF 文档加载到 EasyRdf\Graph 对象中,通过 HTTP 从网络加载。EasyRdf\GraphStore 类简化了将数据加载和保存到 SPARQL 1.1 Graph Store。

可以使用 EasyRdf\Sparql\Client 类通过 HTTP 对 Triplestore 执行 SPARQL 查询。SELECTASK 查询将返回 EasyRdf\Sparql\Result 对象,而 CONSTRUCTDESCRIBE 查询将返回 EasyRdf\Graph 对象。

示例

$foaf = new \EasyRdf\Graph("http://njh.me/foaf.rdf");
$foaf->load();
$me = $foaf->primaryTopic();
echo "My name is: ".$me->get('foaf:name')."\n";

要求

  • PHP 8.0 或更高版本
  • PHP 扩展:dom, mbstring, pcre, xmlreader
  • PHP 库:libxml

特性

  • 无需依赖其他库(PEAR、Zend 等)
  • 库在 Linux 和 Windows 环境中运行
  • 使用 PHPUnit 编写的大量单元测试
  • 内置解析器和序列化器:RDF/JSON,N-Triples,RDF/XML,Turtle
  • 可选解析支持:[ARC2](https://github.com/semsol/arc2/),[rapper](http://librdf.org/raptor/rapper.html)
  • 可选支持 Laminas\Http\ClientZend\Http\Client
  • 类型映射器 - 类型为 foaf:Person 的资源可以映射到类 Foaf_Person 的 PHP 对象
  • 支持使用 GraphViz 可视化图
  • 附带多个示例

示例列表

贡献

欢迎贡献!请阅读CONTRIBUTING.md以获取更多信息。

有关扩展/黑客EasyRdf的更多信息,请阅读DEVELOPER.md

其他维护者也是可能的,请发送电子邮件至@k00ni

运行示例

尝试一些示例的最简单方法是使用PHP命令在您的计算机上运行本地Web服务器。

php -S localhost:8080 -t examples

然后在浏览器中打开以下URL: http://localhost:8080/

为什么这个分支?(2020年底撰写)

EasyRdf自2017年以来处于维护模式(链接),并且没有积极维护。当时有6+个待处理的拉取请求,包含修复和新功能。看到另一个RDF PHP项目缓慢死亡是令人悲伤的,所以我决定清理环境,并为代码找到一个新家(更多信息)。2020年底,EasyRdf得到了积极改进(我在一段时间内是共同维护者),但那停止了,又开始衰退。这是一个令人沮丧的时期,让我们到此为止。

最后,我决定放弃我的旧分支,并在本存储库中从最新的EasyRdf改进开始。

作为用户,你可以期待什么?

这个分支(v1.*)旨在成为easyrdf/easyrdf包的替代品,这意味着,你可以在不更改代码的情况下使用它。但您仍应阅读最新版本的说明,以确保更新后不会出现意外情况。

作为EasyRdf开发人员,你可以期待什么?

与原始版本相比,此存储库的设置旨在降低维护开销。测试相关工具部分被更轻量级的解决方案所取代。此外,此存储库由一个组织而不是一个用户持有,这允许更灵活的维护。

接下来是什么?我的计划是什么?

如上所述,主要目标是保持EasyRdf的遗留代码更新并与最新版本的PHP兼容。我欢迎pull请求,并尽可能快速响应。如果有在easyrdf/easyrdf中有用的pull请求(而且我有空闲时间),我会选择它们并将它们集成到这里(例如#9#14)。

许可

EasyRdf库和测试程序采用BSD-3-Clause许可证。示例属于公共领域,更多信息请参阅UNLICENSE