<?php
/*
homepage: http://bzr.mfd-consult.dk/scutter-store/
license:  http://arc.semsol.org/license

class:    ARC2 scutter trigger looking for rdfs:seeAlso
author:   Morten Høybye Frederiksen
version:  $ bzr-revision-id $
*/

ARC2::inc('Class');

class 
ARC2_SeeAlsosTrigger extends ARC2_Class {

  function 
__construct($a '', &$caller) {/* caller is a store */
    
parent::__construct($a$caller);
  }
  
  function 
ARC2_SeeAlsosTrigger($a '', &$caller) {
    
$this->__construct($a$caller);
  }

  function 
__init() {
    
parent::__init();
    
$this->store $this->caller;
  }

  
/*  */

  
function go() {
    
# Look for rdfs:seeAlso's, but only for a scutter store.
    
if (method_exists($this->store'addGraph')
        && isset(
$this->a['query_infos']['query']['target_graph'])) {
      
$rows $this->store->query('
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?url
WHERE { GRAPH <'
.$this->a['query_infos']['query']['target_graph'].'> {
  ?x rdfs:seeAlso ?url
} }'
'rows');
      
$res = array();
      foreach (
$rows as $row) {
        
$r $this->store->addGraph($row['url'], $this->a['query_infos']['query']['target_graph']);
        if (
$r['t_count'])
          
$res[] = $row['url'];
      }
      return array(
'seeAlsos'=>$res);
    }
    return array(
'seeAlsos'=>false);
  }

  
/*  */

}