甜RDF / quick-rdf-io-raptor
允许访问 Raptor RDF 解析和序列化工具 (https://librdf.org/raptor/rapper.html)。
1.0.0-RC2
2024-05-16 09:32 UTC
Requires
- php: >=8.0
- sweetrdf/quick-rdf-io: ^1.1.1
- sweetrdf/rdf-interface: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.49.0
- phpstan/phpstan: ^1
- phpunit/phpunit: ^9||^10
- sweetrdf/quick-rdf: ^2.0.1
Suggests
- sweetrdf/quick-rdf: Fast implementations of interfaces from sweetrdf dfInterface
This package is auto-updated.
Last update: 2024-09-16 10:09:45 UTC
README
它提供了一个使用来自 Raptor RDF 解析和序列化工具 的 rapper
命令行工具的 RDF 解析器。生成的内部 PHP 表示(四元组等)与 https://github.com/sweetrdf/rdfInterface 兼容,可以与其他 rdfInterface 实现一起使用,例如 quickRdfIo,以序列化 RDF 到其他格式,例如。
安装
要求
- PHP 8.0+
- Raptor RDF 解析器工具已安装(我们需要其
rapper
命令行工具);通常它不是默认安装的一部分- 在 Debian/Ubuntu 上:运行
apt-get install raptor2-utils
- 在其他 Linux 发行版中,该软件包可能具有不同的名称
- 在 Debian/Ubuntu 上:运行
Composer
使用 Composer 安装它: composer require sweetrdf/quick-rdf-io-raptor
。
您需要一个 rdfInterfaces 的实现,例如 quickRdf。作为开始,只需使用 composer require sweetrdf/quick-rdf
使用方法
注意:以下我们将使用来自 https://github.com/sweetrdf/quickRdf 的 rdfInterface 实现。在运行代码之前,请确保已安装此包。
解析
解析文件
use \quickrdf\DataFactory; use \quickRdfIo\Raptor\Parser; // create a file handle for a n-quads/n-triple file $fileHandle = fopen('/path/to/n-quads-file.nq', 'r'); // init a parser instance and read file handle $parser = new Parser(new DataFactory()); $quadsIterator = $parser->parseStream($fileHandle); // iterate through the quads // note: the file isn't read before, only as you iterating $quadIterator foreach ($quadsIterator as $quad ) { var_dump($quad); } // free file handle fclose($fileHandle);
解析字符串
use \quickrdf\DataFactory; use \quickRdfIo\Raptor\Parser; $str = '_:foo <http://foo> <http://bar> .'; // init a parser instance and read RDF string $parser = new Parser(new DataFactory()); $quadsIterator = $parser->parse($str); // iterate through the quads foreach ($quadsIterator as $quad ) { var_dump($quad); }
注意事项和已知问题
在使用此类时,请记住以下事项
Parser
类基本上是rapper
命令的包装,这意味着输入必须准备以进行进一步处理(可能会影响性能)。需要一个可读的本地文件作为源以及一个本地文件用于生成的 N-Quads 输出,该输出稍后用于内部 NQuads 解析器。