kwijibo / raffles
此包最新版本(dev-master)没有可用的许可信息。
支持简单查询、搜索、地理搜索和分面浏览的嵌入式 RDF 存储
dev-master
2012-11-07 08:16 UTC
Requires
- kwijibo/arc2: dev-master
- nharbour/pecs: dev-master
This package is not auto-updated.
Last update: 2024-09-28 14:06:58 UTC
README
Raffles 是一个用 PHP 编写的简单的基于文件的 RDF/Graph 数据存储库。它是作为一种方式编写的,以便在没有使用外部数据库的情况下,在 PHP 网络托管上动态发布小型数据集。
安装
composer create-project kwijibo/raffles raffles
见 Composer
创建存储库并导入数据
require 'Raffles/lib/rafflesstore.php';
require_once 'Raffles/vendor/autoload.php';
$data_dir = __DIR__ . '/data';
$store = new RafflesStore($data_dir);
$store->indexPredicates = array(
'http://www.w3.org/1999/02/22-rdf-syntax-ns#type',
'http://purl.org/dc/terms/creator',
'http://purl.org/dc/terms/date',
);
// you can configure Raffles to only index specific predicates
$store->addNamespacePrefix('library', 'http://purl.org/library/');
// add prefixes you want to use in queries
获取存储库中事物的类型
$types = $store->getTypes();
// array(
// http://schema.org/Place => 321,
// http://schema.org/Person => 456,
//)
获取分面
$dates = $store->getFacets('http://purl.org/dc/terms/date');
// array ( "1560" => 4, "1562" => 12, "1570" => 31 )
基本路径查询语言
rdf:type=foaf:Person
(所有类型为 Person 的事物)
foaf:made/dct:date=1780
(任何在 1780 年制作过东西的人)
$limit=20;
$offset=0;
$results = $store->query("foaf:made/dct:date=1560", $limit, $offset);
结果以遵循 RDF JSON 结构的 PHP 关联数组返回
array (
S => array(
P => array (
array(
value => O,
type => literal|uri|bnode
[, lang=O_LANG ]
[, datatype=O_DATATYPE ]
)
)
)
搜索
$results = $store->search("Edinbu");
运行测试
php specs/run.php
许可
此代码为公有领域。自由使用、复制或修改,风险自负。