This repository has been archived by the owner on Dec 1, 2021. It is now read-only.
forked from easyrdf/easyrdf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
foafmaker.php
112 lines (93 loc) · 4.17 KB
/
foafmaker.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?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-2014 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', '[email protected]') ?><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>