Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

113 lines (93 sloc) 4.273 kB
<?php
/**
* Construct a FOAF document with a choice of serialisations
*
* This example is similar in concept to Leigh Dodds' FOAF-a-Matic.
* The fields in the HTML form are inserted into an empty
* EasyRdf\Graph and then serialised to the chosen format.
*
* @package EasyRdf
* @copyright Copyright (c) 2009-2013 Nicholas J Humfrey
* @license http://unlicense.org/
*/
require_once realpath(__DIR__.'/..')."/vendor/autoload.php";
require_once __DIR__."/html_tag_helpers.php";
if (isset($_REQUEST['enable_arc']) && $_REQUEST['enable_arc']) {
\EasyRdf\Format::registerSerialiser('ntriples', 'EasyRdf\Serialiser\Arc');
\EasyRdf\Format::registerSerialiser('posh', 'EasyRdf\Serialiser\Arc');
\EasyRdf\Format::registerSerialiser('rdfxml', 'EasyRdf\Serialiser\Arc');
\EasyRdf\Format::registerSerialiser('turtle', 'EasyRdf\Serialiser\Arc');
}
if (isset($_REQUEST['enable_rapper']) && $_REQUEST['enable_rapper']) {
\EasyRdf\Format::registerSerialiser('dot', 'EasyRdf\Serialiser\Rapper');
\EasyRdf\Format::registerSerialiser('rdfxml', 'EasyRdf\Serialiser\Rapper');
\EasyRdf\Format::registerSerialiser('turtle', 'EasyRdf\Serialiser\Rapper');
}
$format_options = array();
foreach (\EasyRdf\Format::getFormats() as $format) {
if ($format->getSerialiserClass()) {
$format_options[$format->getLabel()] = $format->getName();
}
}
?>
<html>
<head><title>EasyRdf FOAF Maker Example</title></head>
<body>
<h1>EasyRdf FOAF Maker Example</h1>
<?= form_tag(null, array('method' => 'POST')) ?>
<h2>Your Identifier</h2>
<?= labeled_text_field_tag('uri', 'http://www.example.com/joe#me', array('size'=>40)) ?><br />
<h2>Your details</h2>
<?= labeled_text_field_tag('title', 'Mr', array('size'=>8)) ?><br />
<?= labeled_text_field_tag('given_name', 'Joseph') ?><br />
<?= labeled_text_field_tag('family_name', 'Bloggs') ?><br />
<?= labeled_text_field_tag('nickname', 'Joe') ?><br />
<?= labeled_text_field_tag('email', 'joe@example.com') ?><br />
<?= labeled_text_field_tag('homepage', 'http://www.example.com/', array('size'=>40)) ?><br />
<h2>People you know</h2>
<?= labeled_text_field_tag('person_1', 'http://www.example.com/dave#me', array('size'=>40)) ?><br />
<?= labeled_text_field_tag('person_2', '', array('size'=>40)) ?><br />
<?= labeled_text_field_tag('person_3', '', array('size'=>40)) ?><br />
<?= labeled_text_field_tag('person_4', '', array('size'=>40)) ?><br />
<h2>Output</h2>
Enable Arc 2? <?= check_box_tag('enable_arc') ?><br />
Enable Rapper? <?= check_box_tag('enable_rapper') ?><br />
<?= label_tag('format').select_tag('format', $format_options, 'rdfxml') ?><br />
<?= submit_tag() ?>
<?= form_end_tag() ?>
<?php
if (isset($_REQUEST['uri'])) {
$graph = new \EasyRdf\Graph();
# 1st Technique
$me = $graph->resource($_REQUEST['uri'], 'foaf:Person');
$me->set('foaf:name', $_REQUEST['title'].' '.$_REQUEST['given_name'].' '.$_REQUEST['family_name']);
if ($_REQUEST['email']) {
$email = $graph->resource("mailto:".$_REQUEST['email']);
$me->add('foaf:mbox', $email);
}
if ($_REQUEST['homepage']) {
$homepage = $graph->resource($_REQUEST['homepage']);
$me->add('foaf:homepage', $homepage);
}
# 2nd Technique
$graph->addLiteral($_REQUEST['uri'], 'foaf:title', $_REQUEST['title']);
$graph->addLiteral($_REQUEST['uri'], 'foaf:givenname', $_REQUEST['given_name']);
$graph->addLiteral($_REQUEST['uri'], 'foaf:family_name', $_REQUEST['family_name']);
$graph->addLiteral($_REQUEST['uri'], 'foaf:nick', $_REQUEST['nickname']);
# Add friends
for($i=1; $i<=4; $i++) {
if ($_REQUEST["person_$i"]) {
$person = $graph->resource($_REQUEST["person_$i"]);
$graph->add($me, 'foaf:knows', $person);
}
}
# Finally output the graph
$data = $graph->serialise($_REQUEST['format']);
if (!is_scalar($data)) {
$data = var_export($data, true);
}
print "<pre>".htmlspecialchars($data)."</pre>";
}
?>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.