示例#1
0
文件: Graph.php 项目: sgml/rww.io
 function _node($node)
 {
     $r = array();
     if (librdf_node_is_resource($node)) {
         $r['type'] = 'uri';
         $r['value'] = librdf_uri_to_string(librdf_node_get_uri($node));
     } elseif (librdf_node_is_literal($node)) {
         $r['type'] = 'literal';
         $r['value'] = librdf_node_get_literal_value($node);
         $dt = librdf_node_get_literal_value_datatype_uri($node);
         if ($dt) {
             $r['datatype'] = librdf_uri_to_string($dt);
         }
     } elseif (librdf_node_is_blank($node)) {
         $r['type'] = 'bnode';
         $r['value'] = librdf_node_get_blank_identifier($node);
     }
     return $r;
 }
 /**
  * Convert a node into an associate array
  * @ignore
  */
 protected static function nodeToArray($node)
 {
     $object = array();
     $object['type'] = EasyRdf_Parser_Redland::nodeTypeString($node);
     if ($object['type'] == 'uri') {
         $object['value'] = EasyRdf_Parser_Redland::nodeUriString($node);
     } else {
         if ($object['type'] == 'bnode') {
             $object['value'] = '_:' . librdf_node_get_blank_identifier($node);
         } else {
             if ($object['type'] == 'literal') {
                 $object['value'] = librdf_node_get_literal_value($node);
                 $lang = librdf_node_get_literal_value_language($node);
                 if ($lang) {
                     $object['lang'] = $lang;
                 }
                 $datatype = librdf_node_get_literal_value_datatype_uri($node);
                 if ($datatype) {
                     $object['datatype'] = librdf_uri_to_string($datatype);
                 }
             } else {
                 throw new EasyRdf_Exception("Unsupported type: " . $object['type']);
             }
         }
     }
     return $object;
 }
示例#3
0
 public function getBlankId()
 {
     return librdf_node_get_blank_identifier($this->redlandNode);
 }