kwijibo/raffles

此包最新版本(dev-master)没有可用的许可信息。

支持简单查询、搜索、地理搜索和分面浏览的嵌入式 RDF 存储

dev-master 2012-11-07 08:16 UTC

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

许可

此代码为公有领域。自由使用、复制或修改,风险自负。