-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfunctions.php
102 lines (79 loc) · 2.66 KB
/
functions.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
<?php
/**
* Führt eine Sparql-Abfrage durch und gibt das Ergebnis als JSON zurück
*/
function sparqlQuery($query) {
global $graphUri, $requestUri;
// Anfrage zusammenbasteln
$curRequestURI = str_replace(array('{GRAPHURI}', '{QUERY}', '{FORMAT}'), array(urlencode($graphUri), urlencode($query), urlencode("application/sparql-results+json")), $requestUri);
// JSON abrufen
$json = file_get_contents($curRequestURI);
$json = json_decode($json, true);
if ($json == NULL) {
die ("Fehler bei der Abfrage der JSON-Daten: URL: ".$curRequestURI);
}
return $json;
}
/**
* Führt eine Sparql-Abfrage durch und gibt das Ergebnis als HTML-Tabelle zurück
*/
function sparqlQueryTable($query) {
global $graphUri, $requestUri;
// Anfrage zusammenbasteln
$curRequestURI = str_replace(array('{GRAPHURI}', '{QUERY}', '{FORMAT}'), array(urlencode($graphUri), urlencode($query), urlencode("text/html")), $requestUri);
// JSON abrufen
$result = file_get_contents($curRequestURI);
return $result;
}
/**
* Erstellt einen neuen Knoten
*/
function createNode($uri, $name, $shape, $color) {
global $results, $nodes, $c;
// Existiert Knoten schon?
if (isset($nodes[$uri])) return $nodes[$uri];
// Uri registieren und ID zuweisen
$nodes[$uri] = $c;
$c++;
// Knoten abspeichern
$results['nodes'][] = array("name" => $name, "uri" => $uri, "type" => $shape, "color" => $color);
return $nodes[$uri];
}
/**
* Erstellt eine neue Verbindung
*/
function createLink($sourceUri, $targetUri, $name, $value) {
global $results, $nodes;
// Ignorieren, falls Startknoten nicht existiert
if (!isset($nodes[$sourceUri]) || $sourceUri === NULL) {
return;
//throw new Exception ("Verknüpfung zu nicht existierendem Source-Knoten: ".$sourceUri);
}
// Ignorieren, falls Zielknoten nicht existiert
if (!isset($nodes[$targetUri]) ||!$nodes[$targetUri] === NULL) {
return;
//throw new Exception ("Verknüpfung zu nicht existierendem Target-Knoten: ".$targetUri);
}
// Link abspeichern
$results['links'][] = array("source" => $nodes[$sourceUri], "target" => $nodes[$targetUri], "name" => $name, "value" => $value);
}
/**
* Wandelt die URI in einen lesbaren Titel um
*/
function getTitleByUri($uri) {
global $uriResolver;
if (substr($uri, 0, strlen($uriResolver)) == $uriResolver) {
$title = substr($uri, strlen($uriResolver));
$title = urldecode($title);
$title = str_replace(array('_', "-2D", "-3A"), array(' ', "-", ":"), $title);
return $title;
}
return $uri;
}
/**
* Gibt einen Permalink zur aktuellen Abfrage zurück
*/
function getPermalink() {
global $nodeQuery, $linkQuery;
return "?nodeQuery=".urlencode($nodeQuery)."&linkQuery=".urlencode($linkQuery);
}