Documentation

Graphite Class

This object represents a set of zero or more bits of RDF data and gives you some functions to start poking them.

$graph = new Graphite();
$graph = new Graphite( $namespace_map );
Create a new instance of Graphite. See the Namespaces example above for how to specify a namespace map and a list of pre-declared namespaces.
$graph->ns( $alias, $namespace );
Add an additional namespace alias to the Graphite instance.
$count = $graph->load( $uri_to_load );
Load the RDF from the given URI or URL. Return the number of triples loaded.
$count = $graph->addTurtle( $base, $data );
Take a base URI and a string of turtle RDF and load the new triples into the graph. Return the number of triples loaded.
$count = $graph->addRDFXML( $base, $data );
As for addTurtle but load a string of RDF XML.
$resource = $graph->resource( $uri );
Get the resource with given URI. $uri may be abbreviated to "namespace:value".
$graph->cacheDir( $dir, [$age] );
$dir should be a directory the webserver has permission to read and write to. Any RDF/XML documents which graphite downloads will be saved here. If a cache exists and is newer than $age seconds then load() will use the document in the cache directory in preference to doing an HTTP request. $age defaults to 24*60*60 - 24 hours. This including this function can seriously improve graphite performance! If you want to always load certain documents, load them before setting the cache.
print $graph->dump( [$options] );
Returns the entire RDF in memory in nicely formatted HTML so you can see what's going on. Options is an optional array, same parameters as $options on a dump() of an individual resource.
print_r( $graph->toArcTriples() );
Returns the entire RDF in memory in Arc2's internal triples format.
print $graph->serialize( [$serializer="RDFXML"] );
Returns the serialization of the entire RDF graph in memory using one of Arc2's serializers. By default the RDF/XML serializer is used, but others (try passing "Turtle" or "NTriples") can be used - see the Arc2 documentation.
$resource = $graph->primaryTopic();
Utility method (shamelessly ripped off from EasyRDF). Returns the primary topic of the first URL that was loaded. Handy when working with FOAF.
$resources = $graph->allOfType( $type_uri );
Return a list of all resources loaded, with the rdf:type given. eg. $graph->allOfType( "foaf:Person" )
$resources = $graph->allSubjects();
Return a list of all resources in the graph which are the subject of at least one triple.
$resources = $graph->allObjects();
Return a list of all resources in the graph which are the object of at least one triple.

Resource Class

This represents a single RDF thing, with a URI, or a literal value. If you treat it as a string it will return the URI or the literal, but there's some useful functions you can call on it, too.

$new_resource = $resource->get( $property );
$new_resource = $resource->get( *resource list* );
Get a single resource, related to the current resource by the given property. The property may be a URI or "namespace:value". It may be a literal or a normal resource. If there's no value, it returns a null resource object (not a null value), so your code will muddle through. If you specify multiple properties, then this returns the first resource it finds. To get a value from the inverse of a relationship, prefix the property string with "-". For example, to get the mayor of a city you may need to do $city->get( "-somens:isMayorOf" );
$string = $resource->getString( $property );
$string = $resource->getString( *resource list* );
As for get() but return the result's string value.
$boolean = $resource->has( $property );
$boolean = $resource->has( *resource list* );
Returns true if there this resource has at least one relationship with the given properties (or with any of the given properties)
$resource_list = $resource->all( $property );
$resource_list = $resource->all( *resource list* );
As for get(), but returns a resource list of zero or more matching resources. Resource lists may be treated as arrays, but see below for additional properties.
$resource_list = $resource->allString( $property );
$resource_list = $resource->allString( *resource list* );
As for all(), but returns a resource list the string values of each result.
$relation_list = $resource->relations();
Returns a resource list of the properties relating to this resource, including inverse ones.
$count = $resource->load();
Try and resolve this resource via the web and load the RDF found there into the current Graphite object. Returns the number of triples loaded (zero probably indicates failure).
$count = $resource->loadSameAs( [$prefix] );
Iterate over any owl:sameAs properties this resource has and load them from the web. Any loaded triples with the URI of the resource being loaded will be created with both that URI and the URI of the current resource, causing the linked data to be immediately available via the current resource. A single Graphite instance won't load the same URI more than once, so you can call this function twice to follow first, then second generation sameAs relations, if you want. The 2nd call will return the number of triples it loaded the first time, so don't try looping until it returns zero, rather loop until the number of triples returned does not increase. If $prefix is set then only follow sameAs links to URIs with that prefix.
$resource = $resource->type()
$resources_list = $resource->types()
Handy methods for getting the rdf:type or types of the resource. Use for code readability.
$boolean = $resource->isType( $type );
$boolean = $resource->isType( *resource list* );
Return true if the resource is of the given type, or any of the given list of types.
$boolean = $resource->isNull();
Return true if the resource is a null node, e.g. as the result of $resource->get("something:nonexistent").
$label = $resource->label()
Get a valid label for this resource, tries all of skos:prefLabel, rdfs:label, foaf:name, dct:title, dc:title, sioc:name.
$htmllink = $resource->link()
Returns <a href='THIS'>THIS</a> - saves time when wanting to link homepages, etc.
$dump = $resource->dump( [$options] );
Create a pretty HTML dump of the current resource. Handy for debugging halfway through hacking something. $options is an optional array of flags to modify how dump() renders HTML.
"label"=>1 - add a label for the URI, and the rdf:type, to the top of each resource box, if the information is in the current graph.
"labeluris"=>1 - when listing the resources to which this URI relates, show them as a label, if possible, rather than a URI. Hovering the mouse will still show the URI.
"internallinks"=>1 - instead of linking directly to the URI, link to that resource's dump on the current page (which may or may not be present). This can, for example, make bnode nests easier to figure out.
print_r( $graph->toArcTriples() );
Returns all triples of which this resource is the subject in Arc2's internal triples format.
print $graph->serialize( [$serializer="RDFXML"] );
Returns the serialization of the resource including any bnodes it points to (and any those point to). See the serialize method of the Graphite class above.

Experimental Resource Class methods

These do some funky stuff relating to our research at Southampton. They may be modified or removed in later versions of Graphite.

$count = $resource->loadSameAsOrg( $prefix );
Look up this URI in http://sameas.org and follow any sameAs URIs from there which match the prefix. $prefix is enforced as sameAs.org may return hundreds of URIs.
$count = $resource->loadDataGovUKBackLinks()
Takes the current resource and attempts to find backlinks via The EnAKTing project. This works rather nicely with dbpedia URIs of British regions, cities etc.

ResourceList Class

This represents a list of RDF things, URIs or literal values. You can just treat it like an array, or you can call methods on it.

$new_resourcelist = $resourcelist->get( $property );
$new_resourcelist = $resourcelist->get( *resource list* );
Call $resource->get(...) on every item in this list and return a resourcelist of the results.
$string = $resource->getString( $property );
$string = $resource->getString( *resource list* );
Call $resource->getString(...) on every item in this list and return a resourcelist of the results.
$new_resourcelist = $resourcelist->all( $property );
$new_resourcelist = $resourcelist->all( *resource list* );
Call $resource->all(...) on every item in this list and return a resourcelist of all the results. Duplicate resources are eliminated.
$resource_list = $resource->allString( $property );
$resource_list = $resource->allString( *resource list* );
Call $resource->allString(...) on every item in this list and return a resourcelist of all the results. As with all(), duplicate resources and eliminated.
$resource_list = $resource->allOfType( $type_uri );
Create a new resource list containing all resources in the current list of the given type.
$new_resourcelist = $resourcelist->label();
Call $resource->label() on every item in this list and return a resourcelist of the results.
$n = $resourcelist->load();
Call $resource->load() on every item in this list and return the total triples from these resources. Careful, this could cause a large number of requests at one go!
$str = $resourcelist->join( $joinstr );
Returns a string of all the items in the resource list, joined with the given string.
$new_resourcelist = $resourcelist->sort( $property );
$new_resourcelist = $resourcelist->sort( *resource list* );
Return a copy of this resource list sorted by the given property or properties. If a resource has multiple values for a property then one will be used, as with $resource->get().
$new_resourcelist = $resourcelist->distinct();
Return a list with any duplicates removed, otherwise preserving current order.
$new_resourcelist = $resourcelist->append( $resource );
$new_resourcelist = $resourcelist->append( *resource list* );
Create a new resource list with the given resource or list of resources appended on the end of the current resource list.
$new_resourcelist = $resourcelist->union( $resource );
$new_resourcelist = $resourcelist->union( *resource list* );
Create a new resource list with the given resource or list of resources merged with the current list. Functionally the same as calling $resourcelist->append( ... )->distinct()
$new_resourcelist = $resourcelist->intersection( $resource );
$new_resourcelist = $resourcelist->intersection( *resource list* );
Create a new resource list with containing only the resources which are in both lists. Only returns one instance of each resource no matter how many duplicates were in either list.
$new_resourcelist = $resourcelist->except( $resource );
$new_resourcelist = $resourcelist->except( *resource list* );
Create a new resource list with containing only the resources which are in $resourcelist but not in the list being passed in. Only returns one instance of each resource no matter how many duplicates were in either list.
$dump = $resourcelist->dump( [$options] );
Returns a string containing a dump of all the resources in the list. Options is an optional array, same parameters as $options on a dump() of an individual resource.

* Note about Graphite methods which can take a list of resources

These methods work in a pretty cool way. To make life easier for you they can take a list of resources in any of the following ways.

$resource->get() is used as an example, it applies to many other methods.

$resource->get( $uri_string )
Such as "http://xmlns.com/foaf/0.1/name".
$resource->get( $short_uri_string )
using any namespace defined with $graph->ns() or just built in. eg. "foaf:name".
$resource->get( $resource )
An instance of Graphite_resource.
$resource->get( $thing, $thing, $thing, ... )
$resource->get( array( $thing, $thing, $thing, ... ) )
Where each thing is any of $uri_string, $short_uri_string or $resource.
$resource->get( $resourcelist )
An instance of Graphite_resourceList.

This should make it quick and easy to write readable code!