コード例 #1
0
 /**
  *
  */
 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;
 }
コード例 #2
0
 /**
  * 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);
 }
コード例 #3
0
        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;
}
コード例 #4
0
 /**
  *
  */
 function getPageURI()
 {
     return RAPpubbyURIrewriter::resURItoPageURI($this->res->getURI());
 }