-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdata-response-handler.php
97 lines (81 loc) · 2.84 KB
/
data-response-handler.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
<?php
include_once ("private/md-from-xml.php");
include_once ("response-handler-class.php");
include_once ("private/sparqllib/sparqllib.php");
include_once ("private/sparqllib/sparqllib-beta-functions.php");
function connect_to_sparql()
{
$endpoint = "http://" . $_SERVER['HTTP_HOST'] . "/public/sparql/endpoint.php";
$db = sparql_connect( $endpoint );
if(!$db)
{
print $db->errno() . ": " . $db->error(). "\n";
exit;
}
return $db;
}
function set_subject_uri($slugs, $uritype)
{
$uri_type_string = $slugs->slugs_arr[ResponseHandler::URITYPE];
if($uritype == ResponseHandler::DOC)
{
$uri_type_string = 'id';
}
$subject_uri = "<http://the-fr.org/" .
$uri_type_string . "/".
$slugs->slugs_arr[ResponseHandler::URICLASS]. "/" .
$slugs->slugs_arr[ResponseHandler::URIVALUE] . ">";
return $subject_uri;
}
function handle_request($db)
{
$slugs = new ResponseHandler();
if($slugs->slugsize >= 3 && $slugs->slugsize < 5)
{
if (($slugs->uri_type == ResponseHandler::DOC &&
strcmp($slugs->slugs_arr[ResponseHandler::URICLASS], DATACLASS) == 0) ||
($slugs->uri_type == ResponseHandler::DEF ||
$slugs->uri_type == ResponseHandler::PROP) &&
strcmp($slugs->slugs_arr[ResponseHandler::URICLASS], FORMATREG) == 0)
{
$subject_uri = set_subject_uri($slugs, $slugs->uri_type);
if (ask_triplestore($db, $subject_uri) == 'true')
{
$tfr_describe_result = describe_triplestore_subject($db, $subject_uri, ARC2XML);
$xslMDresult = format_tfr_xml($tfr_describe_result, $slugs->uri_type);
print generate_markdown($xslMDresult);
}
else
{
print generate_markdown("## No data for requested uri: " . $_SERVER['REQUEST_URI']);
}
}
elseif (strcmp($slugs->slugs_arr[ResponseHandler::URITYPE], DATA) == 0 && strcmp($slugs->slugs_arr[ResponseHandler::URICLASS], DATACLASS) == 0)
{
$subject_uri = set_subject_uri($slugs);
if (ask_triplestore($db, $subject_uri) == 'true')
{
$tfr_describe_result = describe_triplestore_subject($db, $subject_uri, $slugs->handle_return_format($slugs->slugs_arr[ResponseHandler::RETURNFORMAT]));
$filename = 'Content-disposition: attachment; filename=' . $slugs->slugs_arr[ResponseHandler::URIVALUE] . "." . $slugs->slugs_arr[ResponseHandler::RETURNFORMAT];
header ($filename);
header ("Content-Type: " . $slugs->content_type);
print $tfr_describe_result;
}
else
{
print generate_markdown("## No data for requested uri (DATA): " . $_SERVER['REQUEST_URI']);
}
}
else
{
print generate_markdown("## No results... potentially invalid uri: " . $_SERVER['REQUEST_URI']);
}
}
else
{
print generate_markdown("## No results... potentially invalid uri: " . $_SERVER['REQUEST_URI']);
}
}
$db = connect_to_sparql();
handle_request($db);
?>