Skip to content
Snippets Groups Projects
Queries.php 1.68 KiB
<?

class Queries{
  public static function uriExist($uri, $e){
  	$q = "SELECT * WHERE{
  	{<$uri> ?p1 ?o1}
  	UNION
  	{?s1 <$uri> ?o2}
  	UNION
  	{?s2 ?p2 <$uri>}
  	}LIMIT 1";
  	
  	$r = $e->query($q);
  	if(sizeof($r['results']['bindings'])>0){
  	  return true;
  	}
  	return false;
  }
  
  public static function getClass($uri, $e){
  	$q = "SELECT DISTINCT ?class ?inst WHERE{
  	{
  	  <$uri> a ?class .
  	}UNION{
  	  ?inst a <$uri> .
  	}
  	} LIMIT 1";
  	try{
  	  $r = $e->query($q);
  	}catch (Exception $ex){
  	  echo $ex->getMessage();
  	}
  	if(sizeof($r['results']['bindings'])>0){
  	  return $r['results']['bindings'][0]['class']['value'];
  	}
  	return NULL;
  }
  
  
  public static function getMetadata($uri, $format, $e){
		global $conf;
		$q = <<<QUERY
		SELECT uri, doc, format FROM document WHERE 
			(uri = "$uri" AND format = "$format") OR doc = "$uri"
		LIMIT 1
QUERY;
	   $r = $e->query($q);
		if(sizeof($r) > 0){
		 $u = $r[0]['uri'];
		 $p = $r[0]['doc'];
		 $f = $r[0]['format'];
		  return array($u, $p, $f);
		}else{
		  return NULL;
		}
	}
  

	public static function createPage($uri, $localUri, $contentType, $e){
	 global $conf;
	 
		$ext = 'html';
		$inserts = "";
		foreach($conf['http_accept'] as $extension => $f){
		  $page = $localUri.".".$extension;
			foreach($f as $v){
			  if($contentType == $v){
				$returnPage = $localUri.".".$extension;
			  }
			  if($inserts != ""){
				$inserts .= "UNION ";
			  }
			  $inserts .= "SELECT '$uri', '$page', '$v' \n";
			  if($v == $contentType){
				$ext = $extension;
			  }
			}
		  }
		  $q = <<<QUERY
		  INSERT INTO document (uri, doc, format) $inserts
QUERY;
	$r = $e->write($q);
	
		return $returnPage;
	}
	
}

?>