Something went wrong on our end
-
Alvaro Graves authored
Removed functions related to extract metadata from a SPARQL endpoint, it stores it on the sqlite database. This will ease the installation process
Alvaro Graves authoredRemoved functions related to extract metadata from a SPARQL endpoint, it stores it on the sqlite database. This will ease the installation process
index.php 3.09 KiB
<?
if(!file_exists('settings.inc.php')){
echo 'Need to configure lodspeakr first. Please run "install.sh" first';
exit(0);
}
include_once('common.inc.php');
include_once('classes/Utils.php');
include_once('classes/Queries.php');
include_once('classes/Endpoint.php');
include_once('classes/MetaDb.php');
$endpoint = new Endpoint($conf['endpoint']['host'], $conf['endpoint']['config']);
$metaDb = new MetaDb($conf['metadata']['db']['location']);
$uri = $conf['basedir'].$_GET['q'];
if($uri == $conf['basedir']){
//TODO: A better frontpage
echo "root";
return;
}
$acceptContentType = Utils::getBestContentType($_SERVER['HTTP_ACCEPT']);
$extension = Utils::getExtension($acceptContentType);
if($acceptContentType == NULL){
Utils::send406($uri);
}
$pair = Queries::getMetadata($uri, $acceptContentType, $metaDb);
if($pair == NULL){ // Original URI is not in metadata
if(Queries::uriExist($uri, $endpoint)){
$page = Queries::createPage($uri, $acceptContentType, $metaDb);
if($page == NULL){
Utils::send500(NULL);
}
Utils::send303($page, $acceptContentType);
}else{
Utils::send404($uri);
}
}
list($res, $page, $format) = $pair;
//If resource is not the page, send a 303 to the document
if($res == $uri){
Utils::send303($page, $acceptContentType);
}
$uri = $res;
$curieType = Utils::uri2curie(Queries::getClass($uri, $endpoint));
/*Redefine Content type based on the
* dcterms:format for this page
*/
$acceptContentType = $format;
$extension = Utils::getExtension($acceptContentType);
//Check if files for model and view exist
$viewFile = $conf['view']['directory'].$curieType.$conf['view']['extension'].".".$extension;
$modelFile = $conf['model']['directory'].$curieType.$conf['model']['extension'].".".$extension;
if(!file_exists($modelFile) || !file_exists($viewFile) || $curieType == null){
$modelFile = $conf['model']['directory'].$conf['model']['default'].$conf['model']['extension'].".".$extension;
$viewFile = $conf['view']['directory'].$conf['view']['default'].$conf['view']['extension'].".".$extension;
}
$query = file_get_contents($modelFile);
$query = preg_replace("|".$conf['resource']['url_delimiter']."|", "<".$uri.">", $query);
header('Content-Type: '.$acceptContentType);
if(preg_match("/describe/i", $query)){
$results = $endpoint->query($query, $conf['endpoint']['describe']['output']);
require('lib/arc2/ARC2.php');
$parser = ARC2::getRDFParser();
$parser->parse($conf['basedir'], $results);
$triples = $parser->getTriples();
$ser;
switch ($extension){
case 'ttl':
$ser = ARC2::getTurtleSerializer();
break;
case 'nt':
$ser = ARC2::getNTriplesSerializer();
break;
case 'rdf':
$ser = ARC2::getRDFXMLSerializer();
break;
}
$doc = $ser->getSerializedTriples($triples);
echo $doc;
exit(0);
}
elseif(preg_match("/select/i", $query)){
$results = $endpoint->query($query, $conf['endpoint']['select']['output']);
if(sizeof($results['results']['bindings']) == 0){
Utils::send404($uri);
}
}
Utils::showView($uri, $results, $viewFile);
exit(0);
//}
?>