Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package it.unibz.krdb.obda.owlrefplatform.core.reformulation;
  
  /*
   * #%L
   * ontop-reformulation-core
   * %%
   * Copyright (C) 2009 - 2014 Free University of Bozen-Bolzano
   * %%
   * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * #L%
  */
 
 
 import java.util.List;
 import java.util.Map;
 
 public class ExtDatalogProgram {
 	private static final OBDADataFactory fac = OBDADataFactoryImpl.getInstance();
 	private static final Logger log = LoggerFactory.getLogger(ExtDatalogProgram.class);
 
 	private Ontology sigma;
 
 	private final TreeWitnessReasonerLite reasoner;
 
 	private final DatalogProgram fullDP;
 
 		this. = reasoner;
 	}

clears the cache (called when a new CBox is set)
 
 	
 	public void setSigma(Ontology sigma) {
 		this. = sigma;
 	}
 
 	public DatalogProgram getFullDP() {
 		return ;
 	}
 	
 	private final Term x = .getVariable("x");			
 	private final Term y = .getVariable("y");
 	private final Term w = .getVariableNondistinguished(); 
 	
 		if (def == null) {			
 			String extName = TreeWitnessRewriter.getIRI(p.getName(), "_EXT");
 			if (p.getArity() == 1) {
 				Predicate extp = .getClassPredicate(extName);		
 				def = new ExtDatalogProgramDef(.getFunction(extp), .getFunction(p));
 				
 				// add a rule for each of the sub-concepts
 					if (c instanceof OClass
 					else {     
 						def.add((!some.isInverse()) ? 
 								.getFunction(some.getPredicate(), ) : .getFunction(some.getPredicate(), )); 
 					}						
 				}
 			}
 			else  {
 				def = new ExtDatalogProgramDef(.getFunction(extp), .getFunction(p));
				// add a rule for each of the sub-roles
				for (Property sub.getSubProperties(pfalse))
					def.add((!sub.isInverse()) ? 
						.getFunction(sub.getPredicate(), ) : .getFunction(sub.getPredicate(), )); 
			}
			def.minimise();			
			// if the reduced datalog program is not trivial
			if (def.dp != null
		}
		return def.extPredicate;	
	}	

class for Datalog program definitions of the Ext_E implements simplified CQ containment checks

Author(s):
Roman Kontchakov
	private class ExtDatalogProgramDef {
		private final Predicate mainPredicate;
		private final CQIE mainQuery;
		private List<CQIEdp = new LinkedList<CQIE>();
		public ExtDatalogProgramDef(Function extAtomFunction mainAtom) {
			this. = mainAtom.getFunctionSymbol();
			this. = extAtom.getFunctionSymbol();
			this. = .getCQIE(extAtommainAtom);
		}
		public void add(Function body) {
				return;
			CQIE query = .getCQIE(.getHead(), body);
			CQCUtilities cqc = new CQCUtilities(query);
				.add(query);
			else
				.debug("    CQC CONTAINMENT: {} IN {}"query);
		}
		public void minimise() {
			.debug("DP FOR {} IS {}");
			if (!.isEmpty()) {
				 = CQCUtilities.removeContainedQueries(true);
				.debug("SIMPLIFIED DP FOR {} IS {}");
			}
			// reset if the reduced datalog program is trivial
			if (.size() <= 1) {
				 = null;
				 = null;
			}
		}
	}	
New to GrepCode? Check out our FAQ X