public static OWLClassExpression classExpressionPropertyExpanderChecked(OWLClassExpression startClass, AbstractReasonerComponent reasoner, OWLDataFactory df, boolean sfp, Logger logger) { return classExpressionPropertyExpanderChecked(startClass, reasoner, df, null, logger, sfp); } }
public static OWLClassExpression classExpressionPropertyExpander (OWLClassExpression startClass, AbstractReasonerComponent reasoner, OWLDataFactory dataFactory) { return classExpressionPropertyExpander(startClass, reasoner, dataFactory, false); }
protected Map<OWLIndividual, SortedSet<Integer>> getIntDatatypeMembersImpl( OWLDataProperty datatypeProperty) throws ReasoningMethodUnsupportedException { Map<OWLIndividual, SortedSet<OWLLiteral>> mapping = getDatatypeMembersImpl(datatypeProperty); Map<OWLIndividual, SortedSet<Integer>> ret = new TreeMap<>(); for (Entry<OWLIndividual, SortedSet<OWLLiteral>> e : mapping.entrySet()) { SortedSet<OWLLiteral> values = e.getValue(); SortedSet<Integer> valuesInt = values.stream() .filter(lit -> OWLAPIUtils.isIntegerDatatype(lit)) .map((Function<OWLLiteral, Integer>) OWLLiteral::parseInteger) .collect(Collectors.toCollection(TreeSet::new)); ret.put(e.getKey(), valuesInt); } return ret; }
private Model generateSample(OWLEntity entity, AxiomTypeCluster cluster){ logger.info("Generating sample (" + cluster + ") for " + OWLAPIUtils.getPrintName(entity.getEntityType()) + " " + entity.toStringID() + "..."); long startTime = System.currentTimeMillis();
if (OWLAPIUtils.isNumericDatatype(range.asOWLDatatype())) { numericDataProperties.add(dataProperty);
.filter(e -> e.getValue().stream().anyMatch(val -> OWLAPIUtils.inRange(val, min, max))) .map(Entry::getKey) .collect(Collectors.toCollection(TreeSet::new));
public static OWLClassExpression classExpressionPropertyExpander (OWLClassExpression startClass, AbstractReasonerComponent reasoner, OWLDataFactory dataFactory, boolean sfp) { if(!startClass.isAnonymous() && startClass.asOWLClass().getIRI().toString().startsWith(UNPARSED_OCE)) { try { String s = startClass.asOWLClass().getIRI().toString().substring(UNPARSED_OCE.length()); return fromManchester(s, reasoner, dataFactory, sfp); } catch (ManchesterOWLSyntaxParserException e) { throw new RuntimeException("Parsing of class expression in OWL Manchester Syntax failed. Please check the syntax and " + "remember to use either full IRIs or prefixed IRIs.", e); } } else { return startClass; } } public static OWLClassExpression classExpressionPropertyExpander (OWLClassExpression startClass, AbstractReasonerComponent reasoner, OWLDataFactory dataFactory) {
} catch (Exception e) { logger.error("An error occurred while generating " + axiomType.getName() + " axioms for " + OWLAPIUtils.getPrintName(entity.getEntityType()) + " " + entity.toStringID(), e);
if(OWLAPIUtils.isNumericDatatype(datatype) || OWLAPIUtils.dtDatatypes.contains(datatype)){ for (OWLFacetRestriction facetRestriction : facetRestrictions) { OWLFacet facet = facetRestriction.getFacet();
if (OWLAPIUtils.inRange(value, min, max)) { return true;
public static OWLClassExpression classExpressionPropertyExpanderChecked(OWLClassExpression startClass, AbstractReasonerComponent reasoner, OWLDataFactory df, Supplier<OWLClassExpression> defaultClass, Logger logger) { return classExpressionPropertyExpanderChecked(startClass, reasoner, df, defaultClass, logger, false); } public static OWLClassExpression classExpressionPropertyExpanderChecked(OWLClassExpression startClass, AbstractReasonerComponent reasoner, OWLDataFactory df, boolean sfp, Logger logger) {
public static OWLClassExpression classExpressionPropertyExpanderChecked(OWLClassExpression startClass, AbstractReasonerComponent reasoner, OWLDataFactory df, Supplier<OWLClassExpression> defaultClass, Logger logger, boolean sfp) { if(startClass == null) { if (defaultClass != null) startClass = defaultClass.get(); } else { try { startClass = OWLAPIUtils.classExpressionPropertyExpander(startClass, reasoner, df, sfp); } catch (ManchesterOWLSyntaxParserException e) { logger.info("Error parsing startClass: " + e.getMessage()); startClass = defaultClass.get(); logger.warn("Using "+ startClass +" instead."); } } return startClass; } public static OWLClassExpression classExpressionPropertyExpanderChecked(OWLClassExpression startClass, AbstractReasonerComponent reasoner, OWLDataFactory df, Supplier<OWLClassExpression> defaultClass, Logger logger) {
SortedSet<T> numericValues = new TreeSet<>(); for (OWLLiteral lit : values) { if(OWLAPIUtils.isIntegerDatatype(lit)) { numericValues.add((T) Integer.valueOf(lit.parseInteger())); } else {
@Override public void start() { logger.info("Started learning of " + axiomType.getName() + " axioms for " + OWLAPIUtils.getPrintName(entityToDescribe.getEntityType()) + " " + entityToDescribe.toStringID() + "..."); startTime = System.currentTimeMillis(); logger.warn("Cannot make " + axiomType.getName() + " axiom suggestions for empty " + OWLAPIUtils.getPrintName(entityToDescribe.getEntityType()) + " " + entityToDescribe.toStringID()); return; + " axioms for " + OWLAPIUtils.getPrintName(entityToDescribe.getEntityType()) + " " + entityToDescribe.toStringID() + " in {}ms.", (System.currentTimeMillis() - startTime));
public static OWLClassExpression classExpressionPropertyExpanderChecked(OWLClassExpression startClass, AbstractReasonerComponent reasoner, final OWLDataFactory df, Logger logger) { return classExpressionPropertyExpanderChecked(startClass, reasoner, df, df::getOWLThing, logger); }
positiveExamples = OWLAPIUtils.classExpressionPropertyExpander(positiveExamples, reasonerComponent, dataFactory, true); Set<OWLIndividual> posEx = reasonerComponent.getIndividuals(positiveExamples); if (positiveRandomCount > 0) { negativeExamples = OWLAPIUtils.classExpressionPropertyExpander(negativeExamples, reasonerComponent, dataFactory, true); Set<OWLIndividual> negEx; if (reasonerComponent instanceof SPARQLReasoner) {
Set<OWLLiteral> relatedValues = reasoner.getRelatedValues(ex, dp); for (OWLLiteral lit : relatedValues) { if(OWLAPIUtils.isIntegerDatatype(lit)) { posRelatedValues.add((T) Integer.valueOf(lit.parseInteger())); } else { Set<OWLLiteral> relatedValues = reasoner.getRelatedValues(ex, dp); for (OWLLiteral lit : relatedValues) { if(OWLAPIUtils.isIntegerDatatype(lit)) { negRelatedValues.add((T) Integer.valueOf(lit.parseInteger())); } else {
@Override public void run() { try { org.apache.log4j.Logger.getLogger("org.dllearner").setLevel(Level.toLevel(logLevel.toUpperCase())); } catch (Exception e) { logger.warn("Error setting log level to " + logLevel); } lp = context.getBean(AbstractClassExpressionLearningProblem.class); rs = lp.getReasoner(); expression = OWLAPIUtils.classExpressionPropertyExpanderChecked(this.expression, rs, dataFactory, true, logger); if (expression != null) { EvaluatedHypothesis ev = lp.evaluate(expression); if (ev instanceof EvaluatedDescriptionPosNeg) { logger.info("#EVAL# tp: " + ((EvaluatedDescriptionPosNeg) ev).getCoveredPositives().size()); logger.info("#EVAL# fp: " + ((EvaluatedDescriptionPosNeg) ev).getCoveredNegatives().size()); logger.info("#EVAL# tn: " + ((EvaluatedDescriptionPosNeg) ev).getNotCoveredNegatives().size()); logger.info("#EVAL# fn: " + ((EvaluatedDescriptionPosNeg) ev).getNotCoveredPositives().size()); } } else { logger.error("Expression is empty."); throw new RuntimeException("Expression is empty."); } } }
@Override public void init() throws ComponentInitException { heuristic = new DisjunctiveHeuristic(); candidates = new TreeSet<>(heuristic); trees = new TreeSet<>(new ELDescriptionTreeComparator()); if(startClass == null) { startClass = dataFactory.getOWLThing(); } else { try { this.startClass = OWLAPIUtils.classExpressionPropertyExpander(startClass, reasoner, dataFactory); } catch (ManchesterOWLSyntaxParserException e) { logger.info("Error parsing startClass: " + e.getMessage()); this.startClass = dataFactory.getOWLThing(); } } operator = new ELDown(reasoner, instanceBasedDisjoints); operator.init(); baseURI = reasoner.getBaseURI(); prefixes = reasoner.getPrefixes(); minimizer = new OWLClassExpressionMinimizer(dataFactory, reasoner); noise = noisePercentage/100d; initialized = true; }
startClass = OWLAPIUtils.classExpressionPropertyExpanderChecked(startClass, reasoner, df, logger);