From e46e3dfbdcfac9cf6717b466f74897c827962b61 Mon Sep 17 00:00:00 2001 From: alvaro <alvaro@alia.(none)> Date: Wed, 22 Feb 2012 12:08:21 -0800 Subject: [PATCH] Modified to new file structure --- classes/Endpoint.php | 4 +- classes/Utils.php | 74 +++++++++++-------- classes/modules/serviceModule.php | 49 ++++++------ classes/modules/typeModule.php | 58 +++++++-------- classes/modules/uriModule.php | 33 ++++----- common.inc.php | 10 +-- components/includes/header.inc | 5 ++ components/services/classes/html.template | 19 +++++ .../services/classes/queries/main.query | 12 +++ .../instances/html.queries/main.query | 13 ++++ components/services/instances/html.template | 19 +++++ components/services/namedGraphs/html.template | 19 +++++ .../services/namedGraphs/queries/main.query | 6 ++ components/types/rdfs:Resource/html.template | 52 +++++++++++++ .../types/rdfs:Resource/queries/po.query | 9 +++ .../types/rdfs:Resource/queries/sp.query | 9 +++ index.php | 2 +- .../Haanga/Extension/Filter/Googlemaps.php | 2 + 18 files changed, 287 insertions(+), 108 deletions(-) create mode 100644 components/includes/header.inc create mode 100644 components/services/classes/html.template create mode 100644 components/services/classes/queries/main.query create mode 100644 components/services/instances/html.queries/main.query create mode 100644 components/services/instances/html.template create mode 100644 components/services/namedGraphs/html.template create mode 100644 components/services/namedGraphs/queries/main.query create mode 100644 components/types/rdfs:Resource/html.template create mode 100644 components/types/rdfs:Resource/queries/po.query create mode 100644 components/types/rdfs:Resource/queries/sp.query diff --git a/classes/Endpoint.php b/classes/Endpoint.php index 2393bb12..c4bb2db6 100644 --- a/classes/Endpoint.php +++ b/classes/Endpoint.php @@ -35,8 +35,8 @@ class Endpoint{ $aux = curl_exec($c); // execute the curl command if($conf['debug']){ if($aux == false){ - trigger_error("Error executing SPARQL query: ".curl_error($c), E_USER_ERROR); - echo("Error executing SPARQL query: ".curl_error($c)); + trigger_error("Error executing SPARQL query (".$this->sparqlUrl."): ".curl_error($c), E_USER_ERROR); + echo("Error executing SPARQL query (".$this->sparqlUrl."): ".curl_error($c)); } } curl_close($c); diff --git a/classes/Utils.php b/classes/Utils.php index 1988d108..95baf1c3 100644 --- a/classes/Utils.php +++ b/classes/Utils.php @@ -199,7 +199,7 @@ class Utils{ $ser; $dPointer; $docs = Utils::travelTree($data); - require_once('lib/arc2/ARC2.php'); + require_once($conf['home'].'lib/arc2/ARC2.php'); $parser = ARC2::getRDFParser(); $triples = array(); @@ -241,11 +241,12 @@ class Utils{ public static function processDocument($viewFile, $lodspk, $data){ global $conf; + global $lodspk; $contentType = $lodspk['contentType']; $extension = Utils::getExtension($contentType); header('Content-Type: '.$contentType); - if($lodspk['resultRdf']){ + if(isset($lodspk['resultRdf']) && $lodspk['resultRdf'] == true){ echo Utils::serializeRdf($data, $extension); }else{ Utils::showView($lodspk, $data, $viewFile); @@ -271,38 +272,41 @@ class Utils{ global $lodspk; global $endpoints; global $results; + $strippedModelDir = str_replace('endpoint.', '', $modelDir); $lodspk['model'] = $modelDir; $originalDir = getcwd(); $subDirs= array(); - trigger_error("Entering $modelDir from ".getcwd(), E_USER_NOTICE); + trigger_error("Entering $strippedModelDir from ".getcwd(), E_USER_NOTICE); chdir($modelDir); $handle = opendir('.'); while (false !== ($modelFile = readdir($handle))) { if($modelFile != "." && $modelFile != ".." && strpos($modelFile, ".") !== 0){ if(is_dir($modelFile)){ - trigger_error("Save $modelFile for later, after all the queries in the current directory has been resolved", E_USER_NOTICE); - $subDirs[]=$modelFile; + if(strpos('endpoint.', $modelFile) == 0){ + trigger_error("Save $modelFile for later, after all the queries in the current directory has been resolved", E_USER_NOTICE); + $subDirs[]=$modelFile; + } }else{ $e = null; - if(!isset($endpoints[$modelDir])){ - trigger_error("Creating endpoint for $modelDir", E_USER_NOTICE); - if(!isset($conf['endpoint'][$modelDir])){ - trigger_error("Couldn't find $modelDir as a list of available endpoints. Will continue using local", E_USER_WARNING); + if(!isset($endpoints[$strippedModelDir])){ + trigger_error("Creating endpoint for $strippedModelDir", E_USER_NOTICE); + if(!isset($conf['endpoint'][$strippedModelDir])){ + trigger_error("Couldn't find $strippedModelDir as a list of available endpoints. Will continue using local", E_USER_WARNING); $e = $endpoints['local']; }else{ - $endpoints[$modelDir] = new Endpoint($conf['endpoint'][$modelDir], $conf['endpoint']['config']); - $e = $endpoints[$modelDir]; + $endpoints[$strippedModelDir] = new Endpoint($conf['endpoint'][$strippedModelDir], $conf['endpoint']['config']); + $e = $endpoints[$strippedModelDir]; } }else{ - $e = $endpoints[$modelDir]; + $e = $endpoints[$strippedModelDir]; } if($modelDir != $lodspk['type']){ - if(!isset($r[$modelDir]) ){ - $r[$modelDir] = array(); - $f[$modelDir] = array(); + if(!isset($r[$strippedModelDir]) ){ + $r[$strippedModelDir] = array(); + $f[$strippedModelDir] = array(); } - Utils::queryFile($modelFile, $e, $r[$modelDir], $f); + Utils::queryFile($modelFile, $e, $r[$strippedModelDir], $f); }else{ Utils::queryFile($modelFile, $e, $r, $f); } @@ -317,13 +321,13 @@ class Utils{ $r[$modelDir] = array(); } if($modelDir != $lodspk['type']){ - Utils::queryDir($v, $r[$modelDir], $f[$modelDir]); + Utils::queryDir($v, $r[$strippedModelDir], $f[$strippedModelDir]); }else{ Utils::queryDir($v, $r, $f); } } } - chdir($conf['home']); + // chdir($conf['home']); //return $data; } @@ -335,7 +339,7 @@ class Utils{ global $firstResults; $uri = $lodspk['this']['value']; $data = array(); - $strippedModelFile = str_replace('.query', '',$modelFile); + $strippedModelFile = str_replace('endpoint.', '', str_replace('.query', '',$modelFile)); if(!is_dir($modelFile)){ require_once($conf['home'].'lib/Haanga/lib/Haanga.php'); Haanga::configure(array( @@ -464,14 +468,17 @@ class Utils{ } } }else{ - trigger_error("$modelFile is a directory, will process it later", E_USER_NOTICE); - if($modelFile != $lodspk['type']){ - if(!isset($rPointer[$strippedModelFile])){ - $rPointer[$strippedModelFile] = array(); + if(strpos('endpoint.', $modelFile) == 0){ + + trigger_error("$modelFile is a directory, will process it later", E_USER_NOTICE); + if($modelFile != $lodspk['type']){ + if(!isset($rPointer[$strippedModelFile])){ + $rPointer[$strippedModelFile] = array(); + } + Utils::queryDir($modelFile, $rPointer[$strippedModelFile], $fPointer[$strippedModelFile]); + }else{ + Utils::queryDir($modelFile, $rPointer, $fPointer); } - Utils::queryDir($modelFile, $rPointer[$strippedModelFile], $fPointer[$strippedModelFile]); - }else{ - Utils::queryDir($modelFile, $rPointer, $fPointer); } } } @@ -508,12 +515,12 @@ class Utils{ return $array; } - public static function getfirstResultss($array){ + public static function getfirstResults($array){ global $conf; $firstResultsKeyAppearance = true; foreach($array as $key => $value){ if(!isset($value['value'])){ - $aux = Utils::getfirstResultss($value); + $aux = Utils::getfirstResults($value); if(isset($aux['0'])){ $array[$key] = $aux['0']; }else{ @@ -528,6 +535,7 @@ class Utils{ public static function showView($lodspkData, $data, $view){ global $conf; global $uri; + global $lodspk; global $extension; //$lodspk = $conf['view']['standard']; $lodspk = $lodspkData; @@ -535,8 +543,11 @@ class Utils{ $lodspk['this']['params'] = $lodspkData['params']; } require_once($conf['home'].'lib/Haanga/lib/Haanga.php'); + $viewAux = explode("/",$view); + $viewFile = array_pop($viewAux); + $viewPath = join("/", $viewAux); Haanga::configure(array( - 'template_dir' => $lodspk['view'], + 'template_dir' => $conf['home'].$viewPath, 'cache_dir' => $conf['home'].'cache/', )); $models = $data; @@ -550,12 +561,13 @@ class Utils{ } if(is_string($data)){ echo($data); - }elseif(is_file($lodspk['view'].$view)){ - Haanga::Load($view, $vars); + }elseif(is_file($conf['home'].$view)){ + Haanga::Load($viewFile, $vars); }elseif($view == null){ $fnc = Haanga::compile('{{models|safe}}'); $fnc($vars, TRUE); }else{ + echo $conf['home'].$viewPath." ".$viewFile; $fnc = Haanga::compile($view); $fnc($vars, TRUE); } diff --git a/classes/modules/serviceModule.php b/classes/modules/serviceModule.php index d2cb174a..61a4a556 100644 --- a/classes/modules/serviceModule.php +++ b/classes/modules/serviceModule.php @@ -13,28 +13,32 @@ class ServiceModule extends abstractModule{ if(sizeof($qArr)==0){ return FALSE; } - $extension = Utils::getExtension($acceptContentType); - $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']) && file_exists($lodspk['view'])){ - if(!file_exists($lodspk['view'].$viewFile)){ - $viewFile = null; + $extension = Utils::getExtension($acceptContentType); + $viewFile = null; + + $lodspk['model'] = $conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$qArr[0].'/'; + $lodspk['view'] = $conf['view']['directory'].'/'.$conf['service']['prefix'].'/'.$qArr[0].'/'.$extension.'.template'; + $modelFile = $lodspk['model'].$extension.'.queries'; + if(file_exists($lodspk['model'].$extension.'.queries')){ + if(!file_exists($lodspk['view'])){ + $viewFile = null; + }else{ + $viewFile = $lodspk['view']; } - 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); + return array($modelFile, $viewFile); + }elseif(file_exists($lodspk['model'].'queries')){ + if($extension != 'html'){$lodspk['resultRdf'] = true;} + $modelFile = $lodspk['model'].'queries'; + if(!file_exists($lodspk['view'])){ + $viewFile = null; }else{ - Utils::send406($uri); - exit(0); + $viewFile = $lodspk['view']; } + return array($modelFile, $viewFile); + }elseif(file_exists($lodspk['model'])){ + Utils::send406($uri); + exit(0); } - return FALSE; } @@ -59,7 +63,6 @@ class ServiceModule extends abstractModule{ $extension = Utils::getExtension($acceptContentType); $args = array(); list($modelFile, $viewFile) = $service; - try{ $prefixHeader = array(); @@ -109,14 +112,14 @@ class ServiceModule extends abstractModule{ if($viewFile == null){ $lodspk['transform_select_query'] = true; } - chdir($lodspk['model']); + // chdir($lodspk['model']); Utils::queryFile($modelFile, $endpoints['local'], $results, $firstResults); if(!$lodspk['resultRdf']){ $results = Utils::internalize($results); - $lodspk['firstResults'] = Utils::getfirstResultss($results); + $lodspk['firstResults'] = Utils::getfirstResults($results); - chdir($conf['home']); + // chdir($conf['home']); if(is_array($results)){ $resultsObj = Convert::array_to_object($results); }else{ @@ -128,7 +131,7 @@ class ServiceModule extends abstractModule{ //Need to redefine viewFile as 'local' i.e., inside service.foo/ so I can load files with the relative path correctly //$viewFile = $extension.".template"; - chdir($conf['home']); + //chdir($conf['home']); Utils::processDocument($viewFile, $lodspk, $results); }catch (Exception $ex){ echo $ex->getMessage(); diff --git a/classes/modules/typeModule.php b/classes/modules/typeModule.php index 2f5b3f48..0eeae4a9 100644 --- a/classes/modules/typeModule.php +++ b/classes/modules/typeModule.php @@ -15,7 +15,7 @@ class TypeModule extends abstractModule{ $metaDb = new MetaDb($conf['metadata']['db']['location']); $pair = Queries::getMetadata($localUri, $acceptContentType, $metaDb); - + if($pair == NULL){ // Original URI is not in metadata if(Queries::uriExist($uri, $endpoints['local'])){ $page = Queries::createPage($uri, $localUri, $acceptContentType, $metaDb); @@ -68,7 +68,7 @@ class TypeModule extends abstractModule{ if($viewFile == null){ $lodspk['transform_select_query'] = true; } - + $lodspk['type'] = $modelFile; $lodspk['home'] = $conf['basedir']; $lodspk['baseUrl'] = $conf['basedir']; @@ -78,19 +78,20 @@ class TypeModule extends abstractModule{ $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'].$conf['model']['directory']); + //chdir($conf['home'].$conf['model']['directory']); + Utils::queryFile($modelFile, $endpoints['local'], $results, $firstResults); if(!$lodspk['resultRdf']){ $results = Utils::internalize($results); - $lodspk['firstResults'] = Utils::getfirstResultss($results); + $lodspk['firstResults'] = Utils::getfirstResults($results); - chdir($conf['home']); + //chdir($conf['home']); if(is_array($results)){ $resultsObj = Convert::array_to_object($results); }else{ @@ -112,11 +113,6 @@ class TypeModule extends abstractModule{ $objResult = array('modelFile' => null, 'viewFile' => null); //Defining default views and models $curieType=""; -/* $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 firstResults type available $typesAndValues = array('rdfs:Resource' => -1); if($conf['disableComponents'] != true){ @@ -129,34 +125,38 @@ class TypeModule extends abstractModule{ } } arsort($typesAndValues); + $extensionView = $extension."."; + $extensionModel = ''; + if($extension != 'html'){ + $extensionModel = $extension.'.'; + } foreach($typesAndValues as $v => $w){ - $auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries'; - $auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template'; + $auxViewFile = $conf['view']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/'.$extension.'.template'; + $auxModelFile = $conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/'.$extension.'.queries'; if($v == null){continue;} if(file_exists($auxModelFile)){ - $objResult['modelFile'] = $conf['type']['prefix'].$v.'/'.$extension.'.queries'; + $objResult['modelFile'] = $auxModelFile;//$conf['type']['prefix'].'/'.$v.'/'.$extensionModel.'queries'; if(file_exists($auxViewFile)){ - $objResult['viewFile'] = $conf['type']['prefix'].$v.'/'.$extension.'.template'; + $objResult['viewFile'] = $auxViewFile;//$conf['type']['prefix'].'/'.$v.'/'.$extensionView.'template'; }elseif($extension != 'html'){ //View doesn't exists (and is not HTML) - $objResult['viewFile'] = null; + $objResult['viewFile'] = null; } return $objResult; - }elseif($extension != 'html' && - file_exists($conf['model']['directory'].$conf['type']['prefix'].$v.'/html.queries')){ - $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; + }elseif(file_exists($conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/queries')){ + $objResult['modelFile'] = $conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/queries'; + if(file_exists($auxViewFile) ){ + $objResult['viewFile'] = $auxViewFile; + }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; + } } - if($objResult['viewFile'] == null && $extension == 'html'){ + /*if($objResult['viewFile'] == null && $extensionView == 'html'){ $objResult['viewFile'] = 'html.template'; - } + }*/ return $objResult; } diff --git a/classes/modules/uriModule.php b/classes/modules/uriModule.php index 73d55aa5..67d834a9 100644 --- a/classes/modules/uriModule.php +++ b/classes/modules/uriModule.php @@ -16,9 +16,7 @@ class UriModule extends abstractModule{ } require_once('classes/MetaDb.php'); $metaDb = new MetaDb($conf['metadata']['db']['location']); - $pair = Queries::getMetadata($localUri, $acceptContentType, $metaDb); - if($pair == NULL){ // Original URI is not in metadata if(Queries::uriExist($uri, $endpoints['local'])){ $page = Queries::createPage($uri, $localUri, $acceptContentType, $metaDb); @@ -34,7 +32,6 @@ class UriModule extends abstractModule{ $extension = Utils::getExtension($pair[2]); $curie = Utils::uri2curie($pair[0]); list($modelFile, $viewFile) = $this->getModelandView($curie, $extension); - if($modelFile == NULL){ return FALSE; } @@ -89,24 +86,25 @@ class UriModule extends abstractModule{ //$lodspk = $conf['view']['standard']; $lodspk['type'] = $modelFile; + $lodspk['home'] = $conf['basedir']; + $lodspk['module'] = 'uri'; $lodspk['add_mirrored_uris'] = true; $lodspk['this']['value'] = $uri; $lodspk['this']['curie'] = Utils::uri2curie($uri); $lodspk['local']['value'] = $localUri; $lodspk['local']['curie'] = Utils::uri2curie($localUri); - - $lodspk['this']['contentType'] = $acceptContentType; + $lodspk['contentType'] = $acceptContentType; $lodspk['model'] = $conf['model']['directory']; $lodspk['view'] = $conf['view']['directory']; $lodspk['ns'] = $conf['ns']; - chdir($conf['home'].$conf['model']['directory']); + //chdir($conf['home'].$conf['model']['directory']); Utils::queryFile($modelFile, $endpoints['local'], $results, $firstResults); if(!$lodspk['resultRdf']){ $results = Utils::internalize($results); - $lodspk['firstResults'] = Utils::getfirstResultss($results); + $lodspk['firstResults'] = Utils::getfirstResults($results); chdir($conf['home']); if(is_array($results)){ @@ -117,7 +115,7 @@ class UriModule extends abstractModule{ }else{ $resultsObj = $results; } - chdir($conf['home']); + //chdir($conf['home']); if($conf['debug']){ trigger_error("Using template ".$viewFile, E_USER_NOTICE); echo("TEMPLATE: ".$viewFile."\n\n"); @@ -129,14 +127,14 @@ class UriModule extends abstractModule{ private static function getModelandView($uri, $extension){ global $conf; global $lodspk; - $auxViewFile = $conf['view']['directory'].$conf['uri']['prefix'].$uri.'/'.$extension.'.template'; - $auxModelFile = $conf['model']['directory'].$conf['uri']['prefix'].$uri.'/'.$extension.'.queries'; - if(file_exists($auxModelFile)){ + $auxViewFile = $conf['view']['directory'].'/'.$conf['uri']['prefix'].'/'.$uri.'/'.$extension.'.template'; + $auxModelFile = $conf['model']['directory'].'/'.$conf['uri']['prefix'].'/'.$uri.'/'.$extension.'.queries'; + if(file_exists($auxModelFile)){ //Model exists - $modelFile = $conf['uri']['prefix'].$uri.'/'.$extension.'.queries'; + $modelFile = $auxModelFile;//$conf['uri']['prefix'].$uri.'/'.$extension.'.queries'; if(file_exists($auxViewFile) ){ //View exists, everything is fine - $viewFile = $conf['uri']['prefix'].$uri.'/'.$extension.'.template'; + $viewFile = $conf['model']['directory'].'/'.$conf['uri']['prefix'].'/'.$uri.'/'.$extension.'.template'; }elseif($extension != 'html'){ //View doesn't exists (and is not HTML) $viewFile = null; @@ -145,11 +143,11 @@ class UriModule extends abstractModule{ return array(null, null); } return array($modelFile, $viewFile); - }elseif($extension != 'html' && file_exists($conf['model']['directory'].$conf['uri']['prefix'].$uri.'/html.queries')){ - $modelFile = $conf['uri']['prefix'].$uri.'/html.queries'; - if(file_exists($auxViewFile) ){ + }elseif(file_exists($conf['model']['directory'].'/'.$conf['uri']['prefix'].'/'.$uri.'/queries')){ + $modelFile = $conf['model']['directory'].'/'.$conf['uri']['prefix'].'/'.$uri.'/queries';//$conf['uri']['prefix'].$uri.'/html.queries'; + if(file_exists($auxViewFile) ){ //View exists, everything is fine - $viewFile = $conf['uri']['prefix'].$uri.'/'.$extension.'.template'; + $viewFile = $conf['model']['directory'].'/'.$conf['uri']['prefix'].'/'.$uri.'/'.$extension.'.template'; }elseif($extension != 'html'){ //View doesn't exists (and is not HTML) $lodspk['transform_select_query'] = true; @@ -157,6 +155,7 @@ class UriModule extends abstractModule{ } return array($modelFile, $viewFile); } + return array(NULL, NULL); } diff --git a/common.inc.php b/common.inc.php index a51c4f69..0c99dd1b 100644 --- a/common.inc.php +++ b/common.inc.php @@ -12,11 +12,11 @@ $conf['metadata']['db']['location'] = 'meta/db.sqlite'; include_once('namespaces.php'); -$conf['model']['directory'] = 'models/'; #include trailing slash! +$conf['model']['directory'] = 'components'; #include trailing slash! $conf['model']['extension'] = '.model'; $conf['model']['default'] = 'rdfs:Resource'; -$conf['view']['directory'] = 'views/'; #include trailing slash! +$conf['view']['directory'] = 'components'; #include trailing slash! $conf['view']['extension'] = '.view'; $conf['view']['default'] = 'rdfs:Resource'; @@ -32,11 +32,11 @@ $conf['http_accept']['json'] = array('application/json', 'application/x-javascri $conf['http_accept']['nt'] = array('text/plain'); -$conf['service']['prefix'] = 'service.'; +$conf['service']['prefix'] = 'services'; $conf['service']['class'] = 'classes/BasicSpecialFunction.php'; -$conf['type']['prefix'] = 'type.'; -$conf['uri']['prefix'] = 'uri.'; +$conf['type']['prefix'] = 'types'; +$conf['uri']['prefix'] = 'uris'; //Frontpage when user goes to http://example.org/ $conf['root'] = 'index.html'; diff --git a/components/includes/header.inc b/components/includes/header.inc new file mode 100644 index 00000000..2c90255a --- /dev/null +++ b/components/includes/header.inc @@ -0,0 +1,5 @@ +<h4>Endpoint: {{lodspk.endpoint.local}}</h4> +<div style='float:center'> +<a href='{{lodspk.home}}'>Home</a> | <a href='{{lodspk.home}}classes'>Classes</a> | <a href='{{lodspk.home}}namedGraphs'>Named Graphs</a> +</div> + diff --git a/components/services/classes/html.template b/components/services/classes/html.template new file mode 100644 index 00000000..b93ea0f5 --- /dev/null +++ b/components/services/classes/html.template @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" + "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in lodspk.ns %}xmlns:{{i}}="{{ns}}" + {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en"> + <head> + <title>My new Service</title> + <link href="css/basic.css" rel="stylesheet" type="text/css" media="screen" /> + </head> + <body> + <h1>Classes available</h1> +{%include "../../includes/header.inc"%} + <ul> + {% for row in models.main %} + <li><a href="{{lodspk.baseUrl}}instances/{{ row.resource.curie }}">{{row.resource.curie}}</a></li> + {% endfor %} + </ul> + </body> +</html> diff --git a/components/services/classes/queries/main.query b/components/services/classes/queries/main.query new file mode 100644 index 00000000..0157430d --- /dev/null +++ b/components/services/classes/queries/main.query @@ -0,0 +1,12 @@ +{%for h in base.header %} +PREFIX {{h.prefix}}: <{{h.ns}}> +{%endfor%} +SELECT DISTINCT ?resource WHERE { + { + {%if base.args.arg0 %}GRAPH <{{base.args.arg0}}>{%else%} GRAPH ?g {%endif%} { + ?x a ?resource . + } + }UNION{ + ?x a ?resource . + } +}order by ?resource diff --git a/components/services/instances/html.queries/main.query b/components/services/instances/html.queries/main.query new file mode 100644 index 00000000..a93cf367 --- /dev/null +++ b/components/services/instances/html.queries/main.query @@ -0,0 +1,13 @@ +{%for h in lodspk.header %} +PREFIX {{h.prefix}}: <{{h.ns}}> +{%endfor%} +SELECT DISTINCT ?resource WHERE { + { + GRAPH ?g{ + ?resource a {{lodspk.args.arg0}} + } + }UNION{ + ?resource a {{lodspk.args.arg0}} + } +}order by ?resource +limit 1000 diff --git a/components/services/instances/html.template b/components/services/instances/html.template new file mode 100644 index 00000000..1dc603e1 --- /dev/null +++ b/components/services/instances/html.template @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" + "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in base.ns %}xmlns:{{i}}="{{ns}}" + {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en"> + <head> + <title>Instances of {{lodspk.args.arg0}}</title> + <link href="../css/basic.css" rel="stylesheet" type="text/css" media="screen" /> + </head> + <body> + <h1>Instances of class {{lodspk.args.arg0}}</h1> +{%include "../../includes/header.inc"%} + <ul> + {% for row in models.main %} + <li><a href="{{ row.resource.value }}">{{row.resource.curie}}</a></li> + {% endfor %} + </ul> + </body> +</html> diff --git a/components/services/namedGraphs/html.template b/components/services/namedGraphs/html.template new file mode 100644 index 00000000..e6109aef --- /dev/null +++ b/components/services/namedGraphs/html.template @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" + "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in base.ns %}xmlns:{{i}}="{{ns}}" + {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en"> + <head> + <title>Named Graphs</title> + <link href="css/basic.css" rel="stylesheet" type="text/css" media="screen" /> + </head> + <body> + <h1>Named graphs available</h1> +{%include "../../includes/header.inc"%} + <ul> + {% for row in models.main %} + <li>{{row.g.value}}</li> + {% endfor %} + </ul> + </body> +</html> diff --git a/components/services/namedGraphs/queries/main.query b/components/services/namedGraphs/queries/main.query new file mode 100644 index 00000000..c0ec090e --- /dev/null +++ b/components/services/namedGraphs/queries/main.query @@ -0,0 +1,6 @@ +SELECT DISTINCT ?g WHERE { + GRAPH ?g{ + [] ?p ?resource . + } +} + order by ?g diff --git a/components/types/rdfs:Resource/html.template b/components/types/rdfs:Resource/html.template new file mode 100644 index 00000000..7dd111f2 --- /dev/null +++ b/components/types/rdfs:Resource/html.template @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" + "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in lodspk.ns %}xmlns:{{i}}="{{ns}}" + {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en"> + <head> + <title>Page about {{lodspk.this.value}}</title> + <link href="{{lodspk.home}}css/basic.css" rel="stylesheet" type="text/css" media="screen" /> + <link rel="alternate" type="application/rdf+xml" title="RDF/XML Version" href="{{lodspk.this.value}}.rdf" /> + <link rel="alternate" type="text/turtle" title="Turtle Version" href="{{lodspk.this.value}}.ttl" /> + <link rel="alternate" type="text/plain" title="N-Triples Version" href="{{lodspk.this.value}}.nt" /> + <link rel="alternate" type="application/json" title="RDFJSON Version" href="{{lodspk.this.value}}.json" /> + </head> + <body about="{{lodspk.this.value}}"> + <h1>Default view</h1> + + <div style='margin-top: 40px'> + <table> + <tr><th>Subject</th><th>Predicate</th><th>Object</th></tr> + {% for row in models.po %} + <tr> +<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td> + <td style='background-color:#c9f9c9'><a href='{{row.p.value}}'>{{row.p.curie}}</a></td> + + <td style='background-color:#c9f9c9'> + {%if row.o.uri == 1%} + <a rev='[{{row.p.curie}}]' href='{{row.o.value}}'>{{row.o.curie}}</a> + {%else%} + {{row.o.value}} + {%endif%} + </td> + + </tr> + {% endfor %} +<tr><td></td><td><a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a></td><td></td></tr> + + {% for row in models.sp %} + <tr> + <td style='background-color:#c9f9c9'><a href='{{row.s.value}}'>{{row.s.curie}}</a></td> + + <td style='background-color:#c9f9c9'><a rel='{{row.s.curie}}' href='{{row.p.value}}'>{{row.p.curie}}</a></td> +<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td> + </tr> + {% endfor %} + <tr><th>Subject</th><th>Predicate</th><th>Object</th></tr> + + </table> + </div> + + <br/> + </body> +</html> diff --git a/components/types/rdfs:Resource/queries/po.query b/components/types/rdfs:Resource/queries/po.query new file mode 100644 index 00000000..f573aab3 --- /dev/null +++ b/components/types/rdfs:Resource/queries/po.query @@ -0,0 +1,9 @@ +SELECT ?p ?o WHERE { + { + GRAPH ?g{ + <{{uri}}> ?p ?o. + } + }UNION{ + <{{uri}}> ?p ?o . + } +} diff --git a/components/types/rdfs:Resource/queries/sp.query b/components/types/rdfs:Resource/queries/sp.query new file mode 100644 index 00000000..3b5b69fb --- /dev/null +++ b/components/types/rdfs:Resource/queries/sp.query @@ -0,0 +1,9 @@ +SELECT ?s ?p WHERE { + { + GRAPH ?g{ + ?s ?p <{{uri}}> . + } + }UNION{ + ?s ?p <{{uri}}> . + } +} diff --git a/index.php b/index.php index 087d7a1c..07cce5f9 100755 --- a/index.php +++ b/index.php @@ -84,7 +84,7 @@ foreach($conf['modules']['available'] as $i){ } require_once($currentModule); $module = new $className(); - $matching = $module->match($uri) ; + $matching = $module->match($uri); if($matching != FALSE){ $module->execute($matching); exit(0); diff --git a/lib/Haanga/lib/Haanga/Extension/Filter/Googlemaps.php b/lib/Haanga/lib/Haanga/Extension/Filter/Googlemaps.php index 08faea9a..92e36635 100644 --- a/lib/Haanga/lib/Haanga/Extension/Filter/Googlemaps.php +++ b/lib/Haanga/lib/Haanga/Extension/Filter/Googlemaps.php @@ -50,6 +50,7 @@ class Haanga_Extension_Filter_Googlemaps{ $pre = "<div id='map_canvas_".$randId."' style='width: ".$w."px; height: ".$h."px'></div><script type='text/javascript' src='http://maps.googleapis.com/maps/api/js?sensor=false'></script> <script type='text/javascript'> + <![CDATA[ function initialize() { var myOptions = { zoom: 4, @@ -88,6 +89,7 @@ class Haanga_Extension_Filter_Googlemaps{ } google.maps.event.addDomListener(window, 'load', initialize); + ]]> </script>"; return $pre; } -- GitLab