Skip to content
PHP wrapper of the Google's Cayley graph database REST interface
PHP Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
src/Cayley
tests
.gitignore
.travis.sh
.travis.yml
LICENSE
README.md
composer.json
phpunit.xml.dist

README.md

php-cayley Build Status

PHP Wrapper for the Google's Cayley graph database REST interface.

Cayley is an open-source graph inspired by the graph database behind Freebase and Google's Knowledge Graph. Its goal is to be a part of the developer's toolbox where Linked Data and graph-shaped data (semantic webs, social networks, etc) in general are concerned.

The Cayley's default query language is called Gremlin based on JavaScript. php-cayley is a replica of this Gremlin Javascript API in PHP, all the methods and patterns from Gremlin are applicable to this library.

Requirements

  • php >=5.5.0
  • guzzlehttp/guzzle ~6.0

Installation

The recommended way to install php-cayley is through composer. You can see the package information on Packagist.

{
    "require": {
        "mcuadros/php-cayley": "dev-master"
    }
}

Usage

Basic example

$cayley = new Cayley\Client();
$query = $cayley->graph()->vertex('Humphrey Bogart')->all();
$result = $cayley->query($query);
print_r($result);

Morphism example

$cayley = new Cayley\Client();

$filmToActor = $cayley->graph()
    ->morphism()
    ->out('/film/film/starring')
    ->out('/film/performance/actor');

$query = $cayley->graph()
    ->vertex()
    ->has('name', 'Casablanca')
    ->follow($filmToActor)
    ->out('name')
    ->all();

$starring = $cayley->query($query);
foreach($starring as $actor) {
    var_dump($actor['id']);
}

These examples are based on the data contained in the example database 30kmoviedata.nq.gz

For more information please read Gremlin Javascript API documentation.

Tests

Tests are in the tests folder. To run them, you need PHPUnit. Example:

$ phpunit --configuration phpunit.xml.dist

License

MIT, see LICENSE

You can’t perform that action at this time.