/** * */ function &rewriteURIsInResDescrModel(&$rd_m) { global $_PUBBY_DATASET; global $namespaces; $rew_rd_m = new MemModel(); // uri rewriting + regex filtering if ($_PUBBY_DATASET['datasetURIPattern'] != '') { $l = strlen($_PUBBY_DATASET['datasetBase']); $iter = $rd_m->getStatementIterator(); while ($iter->hasNext()) { $triple = $iter->next(); $subj = $triple->getSubject(); // if subjURI is a datasetURI & does not match the pattern if (stripos($subj->getURI(), $_PUBBY_DATASET['datasetBase']) === 0 && !preg_match($_PUBBY_DATASET['datasetURIPattern'], substr($subj->getURI(), $l))) { continue; } else { // if predURI is a datasetURI & does not match the pattern $pred = $triple->getPredicate(); if (stripos($pred->getURI(), $_PUBBY_DATASET['datasetBase']) === 0 && !preg_match($_PUBBY_DATASET['datasetURIPattern'], substr($pred->getURI(), $l))) { continue; } else { // if obj is a Literal & objeURI is a datasetURI & does not match the pattern $obj = $triple->getObject(); if (!is_a($obj, "Literal")) { if (stripos($obj->getURI(), $_PUBBY_DATASET['datasetBase']) === 0 && !preg_match($_PUBBY_DATASET['datasetURIPattern'], substr($obj->getURI(), $l))) { continue; } else { $obj = new Resource(RAPpubbyURIrewriter::datasetURItoPubbyURI($obj->getURI())); } } $subj = new Resource(RAPpubbyURIrewriter::datasetURItoPubbyURI($subj->getURI())); $pred = new Resource(RAPpubbyURIrewriter::datasetURItoPubbyURI($pred->getURI())); $rew_rd_m->add(new Statement($subj, $pred, $obj)); } } } } else { $iter = $rd_m->getStatementIterator(); while ($iter->hasNext()) { $triple = $iter->next(); $subj = new Resource(RAPpubbyURIrewriter::datasetURItoPubbyURI($triple->getSubject()->getURI())); $pred = new Resource(RAPpubbyURIrewriter::datasetURItoPubbyURI($triple->getPredicate()->getURI())); $obj = $triple->getObject(); if (!is_a($obj, "Literal")) { $obj = new Resource(RAPpubbyURIrewriter::datasetURItoPubbyURI($obj->getURI())); } $rew_rd_m->add(new Statement($subj, $pred, $obj)); } } return $rew_rd_m; }
/** * loads system namespaces + namespaces from file or rewrites from configuration model */ function loadNamespaces($systemNs, $url) { if ($url) { $nmsp_m = new MemModel(); $nmsp_m->load($url); $this->ns = $nmsp_m->getParsedNamespaces(); if (!$this->ns) { trigger_error("The file:" . $url . "does not contain any namespace declarations." . "The prefixes from the configuration model will be used instead"); } } else { $nmsp = $this->m->getParsedNamespaces(); if ($nmsp) { $this->ns = RAPpubbyURIrewriter::rewrNamespaces($nmsp); } } $this->ns = array_merge($this->ns, $systemNs); }
if ($rd->isEmpty()) { header('HTTP/1.1 404 Not Found'); } $c = $rd->serialize("html"); header('Content-length: ' . strlen($c)); echo $c; break; default: if (strpos($_SERVER['HTTP_ACCEPT'], "application/rdf+xml") !== false) { $dataURI = RAPpubbyURIrewriter::resURItoDataURI($http_reqest_URI); header('HTTP/1.1 303 See Other'); header('Location: ' . $dataURI); header('Content-type: text/plain'); $c = "303 See Other: For a description of this item, see <{$dataURI}>"; } elseif (strpos($_SERVER['HTTP_ACCEPT'], "application/n3") !== false) { $dataURI = RAPpubbyURIrewriter::resURItoDataURI($http_reqest_URI, 'n3'); header('HTTP/1.1 303 See Other'); header('Location: ' . $dataURI); header('Content-type: text/plain'); $c = "303 See Other: For a description of this item in n3, see <{$dataURI}>"; } else { $pageURI = RAPpubbyURIrewriter::resURItoPageURI($http_reqest_URI); header('HTTP/1.1 303 See Other'); header('Location: ' . $pageURI); header('Content-type: text/plain'); header('Content-length: 33'); $c = "303 See Other: For a description of this item see <{$pageURI}>"; } header('Content-length: ' . strlen($c)); echo $c; }
/** * */ function getPageURI() { return RAPpubbyURIrewriter::resURItoPageURI($this->res->getURI()); }