甜RDF /
EasyRdf 是一个 PHP 库,旨在使消费和生成 RDF 变得容易。
Requires
- php: ^8.0
- ext-dom: *
- ext-mbstring: *
- ext-pcre: *
- ext-xmlreader: *
- lib-libxml: *
- sweetrdf/rdf-helpers: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- laminas/laminas-http: ^2
- ml/json-ld: ^1.0
- phpstan/phpstan: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5.0|^10.0.0
- semsol/arc2: ^3
- zendframework/zend-http: ^2
Replaces
- easyrdf/easyrdf: 1.1.*
This package is auto-updated.
Last update: 2024-08-24 07:31:41 UTC
README
关于这个分支 🚀
这是我利用业余时间维护的 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 查询。SELECT
和 ASK
查询将返回 EasyRdf\Sparql\Result
对象,而 CONSTRUCT
和 DESCRIBE
查询将返回 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\Client
和Zend\Http\Client
- 类型映射器 - 类型为
foaf:Person
的资源可以映射到类Foaf_Person
的 PHP 对象 - 支持使用 GraphViz 可视化图
- 附带多个示例
示例列表
basic.php
- 基本的“你好世界”类型示例basic_sparql.php
- 执行 SPARQLSELECT
查询的示例converter.php
- 将 RDF 从一种格式转换为另一种格式的示例dump.php
- 显示图的内容的示例foafinfo.php
- 显示 FOAF 文档的基本信息的示例foafmaker.php
- 使用不同的序列化方式构建 FOAF 文档的示例graph_direct.php
- 使用EasyRdf\Graph
而不是EasyRdf\Resource
的示例graphstore.php
- 存储和检索SPARQL 1.1图存储中的数据graphviz.php
- GraphViz渲染示例html_tag_helpers.php
- Rails风格的html标签助手,使EasyRdf示例更加简单httpget.php
- 无RDF,仅测试EasyRdf\Http\Client
open_graph_protocol.php
- 从网页中提取Open Graph协议元数据serialise.php
- 基本序列化示例sparql_queryform.php
- 提交SPARQL查询并显示结果的表单uk_postcode.php
- 使用uk-postcodes.com解析英国邮编的示例wikidata_villages.php
- 从Wikidata获取Fife地区的村庄信息zend_framework.php
- 使用Zend\Http\Client
与EasyRdf的示例
贡献
欢迎贡献!请阅读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。