Skip to content
Snippets Groups Projects
Commit 68150c60 authored by alvaro's avatar alvaro
Browse files

Merge branch 'master' into hotfixes

parents 96ded389 7f6c91e7
No related branches found
No related tags found
No related merge requests found
......@@ -50,9 +50,10 @@ class Queries{
echo $ex->getMessage();
}
$result = array();
if(sizeof($r['results']['bindings']) == 0){
/*if(sizeof($r['results']['bindings']) == 0){
return 'http://www.w3.org/2000/01/rdf-schema#Resource'; //default value if no type is present
}
}*/
//$result[] = 'http://www.w3.org/2000/01/rdf-schema#Resource'; //All resources are rdf:type rdfs:Resource
foreach($r['results']['bindings'] as $v){
$result[]= $v['class']['value'];
}
......
......@@ -226,9 +226,6 @@ class Utils{
$extension = Utils::getExtension($contentType);
header('Content-Type: '.$contentType);
if($extension != 'html'){
$data = Utils::serializeRdf($data, $extension);
}
Utils::showView($lodspk, $data, $viewFile);
}
......
......@@ -14,133 +14,145 @@ class ServiceModule extends abstractModule{
return FALSE;
}
$extension = Utils::getExtension($acceptContentType);
$lodspk['model'] = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0]."/";
$lodspk['model'] = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0].'/';
$lodspk['view'] = $conf['home'].$conf['view']['directory'].$conf['service']['prefix'].$qArr[0].'/';
$viewFile = $extension.".template";
$modelFile = $extension.".queries";
if(file_exists($lodspk['model'].$modelFile) && file_exists($lodspk['view'].$viewFile) && $qArr[0] != null){
trigger_error("Using model ".$modelFile." and view ".$viewFile, E_USER_NOTICE);
return array($modelFile, $viewFile);
}elseif($extension != 'html' && file_exists($lodspk['model'].$conf['service']['prefix'].$qArr[0].'/html.queries')){
$modelFile = $conf['home'].$lodspk['model'].$conf['service']['prefix'].$qArr[0].'/html.queries';
$viewFile = null;
trigger_error("Using ".$modelFile." as model. It will be used as a CONSTRUCT", E_USER_NOTICE);
return array($modelFile, $viewFile);
if(file_exists($lodspk['model']) && file_exists($lodspk['view'])){
if(!file_exists($lodspk['view'].$viewFile)){
$viewFile = null;
}
if(file_exists($lodspk['model'].$modelFile) && $qArr[0] != null){
trigger_error("Using model ".$modelFile." and view ".$viewFile, E_USER_NOTICE);
return array($modelFile, $viewFile);
}elseif($extension != 'html' && file_exists($lodspk['model'].'/html.queries')){
$modelFile = 'html.queries';
trigger_error("Using ".$modelFile." as model. It will be used as a CONSTRUCT", E_USER_NOTICE);
return array($modelFile, $viewFile);
}else{
Utils::send406($uri);
exit(0);
}
}
return FALSE;
}
public function execute($service){
global $conf;
global $localUri;
global $uri;
global $acceptContentType;
global $endpoints;
global $lodspk;
global $first;
$context = array();
$context['contentType'] = $acceptContentType;
$context['endpoints'] = $endpoints;
//$sp = new SpecialFunction();
//$sp->execute($localUri, $context);
$f = $this->getFunction($localUri);
$params = array();
$params = $this->getParams($localUri);
//$params[] = $context;
$acceptContentType = Utils::getBestContentType($_SERVER['HTTP_ACCEPT']);
$extension = Utils::getExtension($acceptContentType);
$args = array();
list($modelFile, $viewFile) = $service;
try{
$prefixHeader = array();
public function execute($service){
global $conf;
global $localUri;
global $uri;
global $acceptContentType;
global $endpoints;
global $lodspk;
global $first;
$context = array();
$context['contentType'] = $acceptContentType;
$context['endpoints'] = $endpoints;
//$sp = new SpecialFunction();
//$sp->execute($localUri, $context);
$f = $this->getFunction($localUri);
$params = array();
$params = $this->getParams($localUri);
//$params[] = $context;
$acceptContentType = Utils::getBestContentType($_SERVER['HTTP_ACCEPT']);
$extension = Utils::getExtension($acceptContentType);
$args = array();
list($modelFile, $viewFile) = $service;
for($i=0;$i<sizeof($params);$i++){
if($conf['mirror_external_uris']){
$altUri = Utils::curie2uri($params[$i]);
$altUri = preg_replace("|^".$conf['basedir']."|", $conf['ns']['local'], $altUri);
$params[$i] = Utils::uri2curie($altUri);
try{
$prefixHeader = array();
for($i=0;$i<sizeof($params);$i++){
if($conf['mirror_external_uris']){
$altUri = Utils::curie2uri($params[$i]);
$altUri = preg_replace("|^".$conf['basedir']."|", $conf['ns']['local'], $altUri);
$params[$i] = Utils::uri2curie($altUri);
}
}
}
for($i=0;$i<sizeof($params);$i++){
$auxPrefix = Utils::getPrefix($params[$i]);
if($auxPrefix['ns'] != NULL){
$prefixHeader[] = $auxPrefix;
for($i=0;$i<sizeof($params);$i++){
$auxPrefix = Utils::getPrefix($params[$i]);
if($auxPrefix['ns'] != NULL){
$prefixHeader[] = $auxPrefix;
}
$args["arg".$i]=$params[$i];
}
$args["arg".$i]=$params[$i];
}
$results['params'] = $params;
$lodspk['home'] = $conf['basedir'];
$lodspk['baseUrl'] = $conf['basedir'];
$lodspk['module'] = 'service';
$lodspk['root'] = $conf['root'];
$lodspk['contentType'] = $acceptContentType;
$lodspk['ns'] = $conf['ns'];
$lodspk['this']['value'] = $uri;
$lodspk['this']['curie'] = Utils::uri2curie($uri);
$lodspk['this']['local'] = $localUri;
$lodspk['contentType'] = $acceptContentType;
$lodspk['endpoint'] = $conf['endpoint'];
$lodspk['type'] = $modelFile;
$lodspk['header'] = $prefixHeader;
$lodspk['args'] = $args;
$lodspk['add_mirrored_uris'] = false;
$lodspk['baseUrl'] = $conf['basedir'];
$lodspk['this']['value'] = $uri;
if($viewFile == null){
$lodspk['transform_select_query'] = true;
$results['params'] = $params;
$lodspk['home'] = $conf['basedir'];
$lodspk['baseUrl'] = $conf['basedir'];
$lodspk['module'] = 'service';
$lodspk['root'] = $conf['root'];
$lodspk['contentType'] = $acceptContentType;
$lodspk['ns'] = $conf['ns'];
$lodspk['this']['value'] = $uri;
$lodspk['this']['curie'] = Utils::uri2curie($uri);
$lodspk['this']['local'] = $localUri;
$lodspk['contentType'] = $acceptContentType;
$lodspk['endpoint'] = $conf['endpoint'];
$lodspk['type'] = $modelFile;
$lodspk['header'] = $prefixHeader;
$lodspk['args'] = $args;
$lodspk['add_mirrored_uris'] = false;
$lodspk['baseUrl'] = $conf['basedir'];
$lodspk['this']['value'] = $uri;
if($viewFile == null){
$lodspk['transform_select_query'] = true;
}
chdir($lodspk['model']);
Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
if($lodspk['resultRdf']){
echo Utils::serializeRdf($results, $extension);
exit(0);
}else{
$results = Utils::internalize($results);
}
chdir($lodspk['model']);
Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
$results = Utils::internalize($results);
$lodspk['first'] = Utils::getFirsts($results);
chdir($conf['home']);
if(is_array($results)){
$results = Convert::array_to_object($results);
$lodspk['first'] = Utils::getFirsts($results);
chdir($conf['home']);
if(is_array($results)){
$results = Convert::array_to_object($results);
}
//Need to redefine viewFile as 'local' i.e., inside service.foo/ so I can load files with the relative path correctly
//$viewFile = $extension.".template";
Utils::processDocument($viewFile, $lodspk, $results);
}catch (Exception $ex){
echo $ex->getMessage();
trigger_error($ex->getMessage(), E_ERROR);
Utils::send500($uri);
}
//Need to redefine viewFile as 'local' i.e., inside service.foo/ so I can load files with the relative path correctly
//$viewFile = $extension.".template";
Utils::processDocument($viewFile, $lodspk, $results);
}catch (Exception $ex){
echo $ex->getMessage();
trigger_error($ex->getMessage(), E_ERROR);
Utils::send500($uri);
exit(0);
}
exit(0);
}
protected function getFunction($uri){
global $conf;
$count = 1;
$prefixUri = $conf['basedir'];
$aux = str_replace($prefixUri, '', $uri, $count);
$functionAndParams = explode('/', $aux);
return $functionAndParams[0];
}
protected function getParams($uri){
global $conf;
$count = 1;
$prefixUri = $conf['basedir'];
$functionAndParams = explode('/', str_replace($prefixUri, '', $uri, $count));
if(sizeof($functionAndParams) > 1){
array_shift($functionAndParams);
return $functionAndParams;
}else{
return array(null);
protected function getFunction($uri){
global $conf;
$count = 1;
$prefixUri = $conf['basedir'];
$aux = str_replace($prefixUri, '', $uri, $count);
$functionAndParams = explode('/', $aux);
return $functionAndParams[0];
}
}
protected function getParams($uri){
global $conf;
$count = 1;
$prefixUri = $conf['basedir'];
$functionAndParams = explode('/', str_replace($prefixUri, '', $uri, $count));
if(sizeof($functionAndParams) > 1){
array_shift($functionAndParams);
return $functionAndParams;
}else{
return array(null);
}
}
}
?>
......@@ -60,14 +60,16 @@ class TypeModule extends abstractModule{
//Check if files for model and view exist
$t=Queries::getClass($uri, $endpoints['local']);
$obj = $this->getModelandView($t, $extension);
$obj = $this->getModelandView($t, $extension);
$modelFile = $obj['modelFile'];
$lodspk['model'] = $obj['modelDir'];
$lodspk['model'] = $conf['model']['directory'];
$viewFile = $obj['viewFile'];
$lodspk['view'] = $obj['viewDir'];
$lodspk['view'] = $obj['view']['directory'];
if($viewFile == null){
$lodspk['transform_select_query'] = true;
}
$lodspk['type'] = $modelFile;
$lodspk['home'] = $conf['basedir'];
$lodspk['baseUrl'] = $conf['basedir'];
$lodspk['module'] = 'type';
......@@ -75,16 +77,22 @@ class TypeModule extends abstractModule{
$lodspk['contentType'] = $acceptContentType;
$lodspk['ns'] = $conf['ns'];
$lodspk['endpoint'] = $conf['endpoint'];
$lodspk['view'] = $conf['view']['directory'];
$lodspk['add_mirrored_uris'] = true;
$lodspk['this']['value'] = $uri;
$lodspk['this']['curie'] = Utils::uri2curie($uri);
$lodspk['this']['local'] = $localUri;
$lodspk['this']['extension'] = $extension;
chdir($conf['home'].$lodspk['model']);
chdir($conf['home'].$conf['model']['directory']);
Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
$results = Utils::internalize($results);
if($lodspk['resultRdf']){
echo Utils::serializeRdf($results, $extension);
exit(0);
}else{
$results = Utils::internalize($results);
}
$lodspk['first'] = Utils::getFirsts($results);
chdir($conf['home']);
if(is_array($results)){
......@@ -92,7 +100,8 @@ class TypeModule extends abstractModule{
}else{
$resultsObj = $results;
}
Utils::processDocument($viewFile, $lodspk, $resultsObj);
//chdir($conf['home'].$conf['model']['directory']);
Utils::processDocument($viewFile, $lodspk, $resultsObj);
}
......@@ -101,39 +110,45 @@ class TypeModule extends abstractModule{
global $results;
global $rPointer;
global $lodspk;
$objResult = array();
$objResult = array('modelFile' => null, 'viewFile' => null);
//Defining default views and models
$curieType="";
$objResult['modelFile'] = 'main.query';
$objResult['viewFile'] = null;//'html.template';
/* $objResult['modelFile'] = 'main.query';
$objResult['viewFile'] = 'html.template';
$objResult['modelDir'] = $conf['model']['directory'].'type.rdfs:Resource/html.queries/';
$objResult['viewDir'] = $conf['view']['directory'].'type.rdfs:Resource/';
*/
//Get the first type available
$typesAndValues = array();
$typesAndValues = array('rdfs:Resource' => -1);
foreach($t as $v){
$curie = Utils::uri2curie($v);
$typesAndValues[$curie] = 0;
if(isset($conf['types']['priorities'][$curie]) && $conf['types']['priorities'][$curie] >= 0){
$typesAndValues[$curie] = $conf['types']['priorities'][$curie];
if(isset($conf['type']['priorities'][$curie]) && $conf['type']['priorities'][$curie] >= 0){
$typesAndValues[$curie] = $conf['type']['priorities'][$curie];
}
}
arsort($typesAndValues);
foreach($typesAndValues as $v => $w){
$auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/';
$auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/';
if(file_exists($auxModelFile) && file_exists($auxViewFile) && $v != null){
$auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template';
$auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries';
$objResult['viewFile'] = $extension.'.template';
$objResult['modelFile'] = $extension.'.queries';
break;
$auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries';
$auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template';
if($v == null){continue;}
if(file_exists($auxModelFile)){
$objResult['modelFile'] = $conf['type']['prefix'].$v.'/'.$extension.'.queries';
if(file_exists($auxViewFile)){
$objResult['viewFile'] = $conf['type']['prefix'].$v.'/'.$extension.'.template';
}elseif($extension != 'html'){ //View doesn't exists (and is not HTML)
$objResult['viewFile'] = null;
}
return $objResult;
}elseif($extension != 'html' &&
file_exists($conf['model']['directory'].$conf['type']['prefix'].$v.'/html.queries')){
$auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template';
$auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries';
$objResult['modelFile'] = $conf['type']['prefix'].$v.'/html.queries';
$objResult['viewFile'] = null;
$objResult['modelFile'] = $conf['type']['prefix'].$v.'/html.queries';
if(file_exists($auxViewFile) ){
$objResult['viewFile'] = $conf['type']['prefix'].$v.'/'.$extension.'.template';
}else{
$lodspk['transform_select_query'] = true;
$objResult['viewFile'] = null;
}
trigger_error("LODSPeaKr can't find the proper query. Using HTML query instead.", E_USER_NOTICE);
break;
}
......
......@@ -100,7 +100,6 @@ class UriModule extends abstractModule{
chdir($conf['home'].$conf['model']['directory']);
Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
if($lodspk['resultRdf']){
echo Utils::serializeRdf($results, $extension);
......@@ -137,6 +136,9 @@ class UriModule extends abstractModule{
}elseif($extension != 'html'){
//View doesn't exists (and is not HTML)
$viewFile = null;
}else{
//No HTML representation as fallback, then not recognized by URI module
return array(null, null);
}
return array($modelFile, $viewFile);
}elseif($extension != 'html' && file_exists($conf['model']['directory'].$conf['uri']['prefix'].$uri.'/html.queries')){
......
......@@ -43,7 +43,7 @@ $conf['root'] = 'index.html';
$conf['extension_connector'] = '.';
//Priority for rdfs:Resource (default). Priorities should be >=0
$conf['types']['priorities']['rdfs:Resource'] = -1;
$conf['type']['priorities']['rdfs:Resource'] = -1;
//Debug
$conf['debug'] = false;
......
......@@ -23,19 +23,7 @@ fi
back_one=`cd .. 2>/dev/null && pwd`
parent=`basename $back_one`
mkdir -p meta
cd meta
if [ ! -e $metadb ]; then
SQLITE3=`which sqlite3`
if [ -z "$SQLITE3" ]; then
echo "SQLlite3 is required to continue installation. Please add it to your \$PATH."
exit 1
fi
$SQLITE3 $metadb 'CREATE TABLE document (uri varcharg(1000), doc varchar(1000), format varchar(50));'
else
echo "WARNING: SQLite database already exists."
fi
cd ..
utils/create_db.sh $metadb
while [ "$everything_ok" != "y" ]; do
echo
......
#!/bin/bash
if [[ "$1" = "" ]]; then
echo Usage: $0 sqliteFile
exit 1
fi
mkdir -p meta
cd meta
if [ ! -e $1 ]; then
SQLITE3=`which sqlite3`
if [ -z "$SQLITE3" ]; then
echo "SQLlite3 is required to continue installation. Please add it to your \$PATH."
exit 1
fi
$SQLITE3 $1 'CREATE TABLE document (uri varcharg(1000), doc varchar(1000), format varchar(50));'
else
echo "WARNING: SQLite database already exists."
fi
cd ..
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment