コード例 #1
0
ファイル: Model.php プロジェクト: bakulf/raop
 /**
  * Load statements from a URI using a {@link LibRDF_Parser}.
  *
  * @param   LibRDF_Parser   $parser The parser with which to parse the URI's contents
  * @param   string          $uri    The URI with the contents to load
  * @param   string          $base_uri   The base URI to use for relative URIs if different from $uri
  * @return  void
  * @throws  LibRDF_Error    If unable to parse the URI contents
  * @access  public
  */
 public function loadStatementsFromURI(LibRDF_Parser $parser, $uri, $base_uri = NULL)
 {
     if ($uri instanceof LibRDF_URINode) {
         $uri = new LibRDF_URI(substr($uri, 1, -1));
     } else {
         $uri = new LibRDF_URI($uri);
     }
     if ($base_uri) {
         $base_uri = new LibRDF_URI($base_uri);
     }
     $ret = librdf_parser_parse_into_model($parser->getParser(), $uri->getURI(), $base_uri ? $base_uri->getURI() : $base_uri, $this->model);
     if ($ret) {
         throw new LibRDF_Error("Unable to parse URI into model");
     }
 }
コード例 #2
0
ファイル: test.php プロジェクト: jeroenooms/redland-bindings
foreach ($dlls as $dll) {
    if (file_exists($dll)) {
        dl($dll);
    }
}
$world = librdf_php_get_world();
print "Redland world opened\n";
$storage = librdf_new_storage($world, 'hashes', 'dummy', "new=yes,hash-type='memory'");
print "Redland storage created\n";
$model = librdf_new_model($world, $storage, '');
print "Redland model created\n";
$parser = librdf_new_parser($world, 'rdfxml', 'application/rdf+xml', null);
print "Redland parser created\n";
$uri = librdf_new_uri($world, 'file:../data/dc.rdf');
print "Parsing...\n";
librdf_parser_parse_into_model($parser, $uri, $uri, $model);
print "Done...\n";
librdf_free_uri($uri);
librdf_free_parser($parser);
$query = librdf_new_query($world, 'sparql', null, "PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?a ?c ?d WHERE { ?a dc:title ?c . OPTIONAL { ?a dc:related ?d } }", null);
print "Querying for dc:titles:\n";
$results = librdf_model_query_execute($model, $query);
$count = 1;
while ($results && !librdf_query_results_finished($results)) {
    print "result {$count}: {\n";
    for ($i = 0; $i < librdf_query_results_get_bindings_count($results); $i++) {
        $val = librdf_query_results_get_binding_value($results, $i);
        if ($val) {
            $nval = librdf_node_to_string($val);
        } else {
            $nval = '(unbound)';
コード例 #3
0
ファイル: Graph.php プロジェクト: sgml/rww.io
 function append_file($content_type, $file, $base = null)
 {
     $p = librdf_new_parser($this->_world, $content_type, null, null);
     $file_uri = librdf_new_uri($this->_world, $file);
     $base_uri = librdf_new_uri($this->_world, is_null($base) ? $this->_base : $base);
     $r = librdf_parser_parse_into_model($p, $file_uri, $base_uri, $this->_model);
     librdf_free_parser($p);
     librdf_free_uri($base_uri);
     librdf_free_uri($file_uri);
     return $r == 0;
 }