示例#1
0
 /**
  * Constructor
  * You can supply a base_uri
  *
  * @param string $baseURI 
  * @access	public
  */
 function InfModel($baseURI = NULL)
 {
     //call the memmodel constructor method
     parent::MemModel($baseURI);
     //initialise vars
     $this->infRulesTriggerIndex['s'] = array();
     $this->infRulesTriggerIndex['p'] = array();
     $this->infRulesTriggerIndex['o'] = array();
     $this->infRulesEntailIndex['s'] = array();
     $this->infRulesEntailIndex['p'] = array();
     $this->infRulesEntailIndex['o'] = array();
     $this->infRules = array();
     $this->statementRuleIndex = array();
     //arraylist of predicate labels that shall add inference rules
     //to the model
     //The constants, wich statements will create rules can be configured in constants.php
     if (INF_RES_SUBCLASSOF) {
         $this->supportedInference[] = RDF_SCHEMA_URI . RDFS_SUBCLASSOF;
     }
     if (INF_RES_SUBPROPERTYOF) {
         $this->supportedInference[] = RDF_SCHEMA_URI . RDFS_SUBPROPERTYOF;
     }
     if (INF_RES_RANGE) {
         $this->supportedInference[] = RDF_SCHEMA_URI . RDFS_RANGE;
     }
     if (INF_RES_DOMAIN) {
         $this->supportedInference[] = RDF_SCHEMA_URI . RDFS_DOMAIN;
     }
     if (INF_RES_OWL_SAMEAS) {
         $this->supportedInference[] = OWL_URI . OWL_SAME_AS;
     }
     if (INF_RES_OWL_INVERSEOF) {
         $this->supportedInference[] = OWL_URI . OWL_INVERSE_OF;
     }
     //Rule: rdfs12
     if (INF_RES_RULE_RDFS12) {
         $infRule = new InfRule();
         $infRule->setTrigger(null, new Resource(RDF_NAMESPACE_URI . RDF_TYPE), new Resource(RDF_SCHEMA_URI . 'ContainerMembershipProperty'));
         $infRule->setEntailment('<s>', new Resource(RDF_SCHEMA_URI . RDFS_SUBPROPERTYOF), new Resource(RDF_SCHEMA_URI . 'member'));
         $this->_addInfRule($infRule, 'base');
     }
     //Rule: rdfs6
     if (INF_RES_RULE_RDFS6) {
         $infRule = new InfRule();
         $infRule->setTrigger(null, new Resource(RDF_NAMESPACE_URI . RDF_TYPE), new Resource(RDF_NAMESPACE_URI . RDF_PROPERTY));
         $infRule->setEntailment('<s>', new Resource(RDF_SCHEMA_URI . RDFS_SUBPROPERTYOF), '<s>');
         $this->_addInfRule($infRule, 'base');
     }
     //Rule: rdfs8
     if (INF_RES_RULE_RDFS8) {
         $infRule = new InfRule();
         $infRule->setTrigger(null, new Resource(RDF_NAMESPACE_URI . RDF_TYPE), new Resource(RDF_SCHEMA_URI . RDFS_CLASS));
         $infRule->setEntailment('<s>', new Resource(RDF_SCHEMA_URI . RDFS_SUBCLASSOF), new Resource(RDF_SCHEMA_URI . RDFS_RESOURCE));
         $this->_addInfRule($infRule, 'base');
     }
     //Rule: rdfs10
     if (INF_RES_RULE_RDFS10) {
         $infRule = new InfRule();
         $infRule->setTrigger(null, new Resource(RDF_NAMESPACE_URI . RDF_TYPE), new Resource(RDF_SCHEMA_URI . RDFS_CLASS));
         $infRule->setEntailment('<s>', new Resource(RDF_SCHEMA_URI . RDFS_SUBCLASSOF), '<s>');
         $this->_addInfRule($infRule, 'base');
     }
     //Rule: rdfs13
     if (INF_RES_RULE_RDFS13) {
         $infRule = new InfRule();
         $infRule->setTrigger(null, new Resource(RDF_NAMESPACE_URI . RDF_TYPE), new Resource(RDF_SCHEMA_URI . RDFS_DATATYPE));
         $infRule->setEntailment('<s>', new Resource(RDF_SCHEMA_URI . RDFS_SUBCLASSOF), new Resource(RDF_SCHEMA_URI . RDFS_LITERAL));
         $this->_addInfRule($infRule, 'base');
     }
 }