Skip to content
EasyRdf is a PHP library designed to make it easy to consume and produce RDF.
PHP Makefile
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


EasyRdf is a PHP library designed to make it easy to consume and produce [RDF]. It was designed for use in mixed teams of experienced and inexperienced RDF developers. It is written in Object Oriented PHP and has been tested extensively using PHPUnit.

After parsing EasyRdf builds up a graph of PHP objects that can then be walked around to get the data to be placed on the page. Dump methods are available to inspect what data is available during development.

Data is typically loaded into a EasyRdf_Graph object from source RDF documents, loaded from the web via HTTP. The EasyRdf_GraphStore class simplifies loading and saving data to a SPARQL 1.1 Graph Store.

SPARQL queries can be made over HTTP to a Triplestore using the EasyRdf_Sparql_Client class. SELECT and ASK queries will return an EasyRdf_Sparql_Result object and CONSTRUCT and DESCRIBE queries will return an EasyRdf_Graph object.


$foaf = new EasyRdf_Graph("");
$me = $foaf->primaryTopic();
echo "My name is: ".$me->get('foaf:name')."\n";


The latest version of EasyRdf can be downloaded from GitHub.



  • PHP 5.2.8 or higher


  • API documentation written in phpdoc
  • Extensive unit tests written using phpunit
    • Automated testing against PHP 5.2, 5.3 and 5.4
  • Built-in parsers and serialisers: RDF/JSON, N-Triples, RDF/XML, Turtle
  • Optional parsing support for: ARC2, Redland Bindings, rapper
  • Optional support for Zend_Http_Client
  • No required external dependancies upon other libraries (PEAR, Zend, etc...)
  • Complies with Zend Framework coding style.
  • Type mapper - resources of type foaf:Person can be mapped into PHP object of class Foaf_Person
  • Comes with a number of examples

Property Paths

EasyRdf supports querying the data in a graph using basic property paths. This is a small subset of the property paths described in SPARQL 1.1 query language.

You may use the caret character (^) to get an inverse property, for example:

$person = $homepage->get('^foaf:homepage');

You can use the pipe character (|) to get alternate properties, for example:

$title = $document->get('dc:title|dc11:title');

You can use a forward slash (/) to follow a property sequence, for example to get the names of all my friends:

$name = $me->all('foaf:knows/foaf:name');

Finally, in order to use a full property URI, enclose it in angle brackets:

$name = $me->get('<>');

More Examples


The EasyRdf library and tests are licensed under the BSD-3-Clause license. The examples are in the public domain, for more information see UNLICENSE.

Something went wrong with that request. Please try again.