protected void expandAndAddAnnotations(String expandTo, AtomicBoolean expandedSomething, Set<OWLAnnotation> annotations) { visitor.getTool().parseManchesterExpressionFrames(expandTo).stream() .map(axp -> axp.getAxiom()).map( ax -> shouldTransferAnnotations() ? ax.getAnnotatedAxiom(annotations) : ax) .forEach(expandedAxiom -> { newAxioms.add(expandedAxiom); expandedSomething.set(true); }); } }
private Set<OntologyAxiomPair> parseObjectPropertyFrame(boolean eof) { Set<OntologyAxiomPair> axioms = new HashSet<>(); consumeToken(OBJECT_PROPERTY); String token = consumeToken(); OWLObjectProperty prop = getOWLObjectProperty(token); if (!prop.isAnonymous()) { axioms.add(new OntologyAxiomPair(defaultOntology, df.getOWLDeclarationAxiom(prop.asOWLObjectProperty()))); } parseFrameSections(eof, axioms, prop, objectPropertyFrameSections); return axioms; }
public List<OWLOntologyChange> generateChanges(Set<OntologyAxiomPair> fromPairs, Set<OntologyAxiomPair> toPairs) { List<OWLOntologyChange> result = Lists.newArrayList(); for(OntologyAxiomPair fromPair : fromPairs) { if(!toPairs.contains(fromPair)) { result.add(new RemoveAxiom(checkNotNull(fromPair.getOntology()), fromPair.getAxiom())); } } for(OntologyAxiomPair toPair : toPairs) { if(!fromPairs.contains(toPair)) { result.add(new AddAxiom(checkNotNull(toPair.getOntology()), toPair.getAxiom())); } } return result; } }
private Set<OntologyAxiomPair> parseObjectPropertyFrame(boolean eof) { Set<OntologyAxiomPair> axioms = new HashSet<>(); consumeToken(OBJECT_PROPERTY); String token = consumeToken(); OWLObjectProperty prop = getOWLObjectProperty(token); if (!prop.isAnonymous()) { axioms.add(new OntologyAxiomPair(defaultOntology, df.getOWLDeclarationAxiom(prop.asOWLObjectProperty()))); } parseFrameSections(eof, axioms, prop, objectPropertyFrameSections); return axioms; }
protected void expandAndAddAnnotations(String expandTo, AtomicBoolean expandedSomething, Set<OWLAnnotation> annotations) { visitor.getTool().parseManchesterExpressionFrames(expandTo).stream() .map(axp -> axp.getAxiom()).map( ax -> shouldTransferAnnotations() ? ax.getAnnotatedAxiom(annotations) : ax) .forEach(expandedAxiom -> { newAxioms.add(expandedAxiom); expandedSomething.set(true); }); } }
private <F, O> Set<OntologyAxiomPair> parseAnnotatedListItems(F s, AnnAxiom<F, O> itemParser, Set<OWLOntology> ontologies) { Set<OntologyAxiomPair> result = new HashSet<>(); String sep = COMMA.keyword(); while (COMMA.matches(sep)) { Set<OWLAnnotation> annotations = parseAnnotations(); O item = itemParser.parse.apply(s); OWLAxiom axiom = itemParser.createAxiom(s, item, annotations); for (OWLOntology ontology : ontologies) { result.add(new OntologyAxiomPair(ontology, axiom)); } sep = peekToken(); if (COMMA.matches(sep)) { consumeToken(); } } return result; }
protected void expandAndAddAnnotations(String expandTo, AtomicBoolean expandedSomething, Set<OWLAnnotation> annotations) { visitor.getTool().parseManchesterExpressionFrames(expandTo).stream() .map(axp -> axp.getAxiom()).map( ax -> shouldTransferAnnotations() ? ax.getAnnotatedAxiom(annotations) : ax) .forEach(expandedAxiom -> { newAxioms.add(expandedAxiom); expandedSomething.set(true); }); } }
private Set<OntologyAxiomPair> parseObjectPropertyFrame(boolean eof) { Set<OntologyAxiomPair> axioms = new HashSet<>(); consumeToken(OBJECT_PROPERTY); String token = consumeToken(); OWLObjectProperty prop = getOWLObjectProperty(token); if (!prop.isAnonymous()) { axioms.add(new OntologyAxiomPair(defaultOntology, df.getOWLDeclarationAxiom(prop.asOWLObjectProperty()))); } parseFrameSections(eof, axioms, prop, objectPropertyFrameSections); return axioms; }
protected void expandAndAddAnnotations(String expandTo, AtomicBoolean expandedSomething, Set<OWLAnnotation> annotations) { visitor.getTool().parseManchesterExpressionFrames(expandTo).stream() .map(axp -> axp.getAxiom()).map( ax -> shouldTransferAnnotations() ? ax.getAnnotatedAxiom(annotations) : ax) .forEach(expandedAxiom -> { newAxioms.add(expandedAxiom); expandedSomething.set(true); }); } }
private Set<OntologyAxiomPair> parseObjectPropertyFrame(boolean eof) { Set<OntologyAxiomPair> axioms = new HashSet<>(); consumeToken(OBJECT_PROPERTY); String token = consumeToken(); OWLObjectProperty prop = getOWLObjectProperty(token); if (!prop.isAnonymous()) { axioms.add(new OntologyAxiomPair(defaultOntology, df.getOWLDeclarationAxiom(prop.asOWLObjectProperty()))); } parseFrameSections(eof, axioms, prop, objectPropertyFrameSections); return axioms; }
private boolean expand(OWLAnnotationAssertionAxiom ax) { OWLAnnotationProperty prop = ax.getProperty(); AtomicBoolean didExpansion = new AtomicBoolean(false); String expandTo = visitor.expandAssertionToMap.get(prop.getIRI()); if (expandTo != null) { LOG.info("Template to Expand{}", expandTo); expandTo = expandTo .replaceAll("\\?X", visitor.getTool().getId((IRI) ax.getSubject())); expandTo = expandTo .replaceAll("\\?Y", visitor.getTool().getId((IRI) ax.getValue())); LOG.info("Expanding {}", expandTo); try { visitor.getTool().parseManchesterExpressionFrames(expandTo).forEach(axp -> { OWLAxiom axiom = axp.getAxiom(); if (shouldPreserveAnnotationsWhenExpanding()) { axiom = axiom.getAnnotatedAxiom( visitor.getAnnotationsWithOptionalExpansionMarker(ax)); } newAxioms.add(axiom); didExpansion.set(true); }); } catch (Exception ex) { LOG.error(ex.getMessage(), ex); } } return didExpansion.get(); } }
private Set<OntologyAxiomPair> parseNaryEquivalentProperties() { String tok = consumeToken(); if (!EQUIVALENT_PROPERTIES.matches(tok)) { throw new ExceptionBuilder().withKeyword(EQUIVALENT_PROPERTIES).build(); } Set<OWLOntology> ontologies = getOntologies(); Set<OWLAnnotation> annotations = parseAnnotations(); Set<OWLPropertyExpression> properties = parsePropertyList(); OWLAxiom propertyAxiom; if (properties.iterator().next().isObjectPropertyExpression()) { Set<OWLObjectPropertyExpression> ope = new HashSet<>(); properties.forEach(pe -> ope.add(pe.asObjectPropertyExpression())); propertyAxiom = df.getOWLEquivalentObjectPropertiesAxiom(ope, annotations); } else { Set<OWLDataPropertyExpression> dpe = new HashSet<>(); properties.forEach(pe -> dpe.add(pe.asDataPropertyExpression())); propertyAxiom = df.getOWLEquivalentDataPropertiesAxiom(dpe, annotations); } Set<OntologyAxiomPair> pairs = new HashSet<>(); for (OWLOntology ont : ontologies) { pairs.add(new OntologyAxiomPair(ont, propertyAxiom)); } return pairs; }
private boolean expand(OWLAnnotationAssertionAxiom ax) { OWLAnnotationProperty prop = ax.getProperty(); AtomicBoolean didExpansion = new AtomicBoolean(false); String expandTo = visitor.expandAssertionToMap.get(prop.getIRI()); if (expandTo != null) { LOG.info("Template to Expand{}", expandTo); expandTo = expandTo .replaceAll("\\?X", visitor.getTool().getId((IRI) ax.getSubject())); expandTo = expandTo .replaceAll("\\?Y", visitor.getTool().getId((IRI) ax.getValue())); LOG.info("Expanding {}", expandTo); try { visitor.getTool().parseManchesterExpressionFrames(expandTo).forEach(axp -> { OWLAxiom axiom = axp.getAxiom(); if (shouldPreserveAnnotationsWhenExpanding()) { axiom = axiom.getAnnotatedAxiom( visitor.getAnnotationsWithOptionalExpansionMarker(ax)); } newAxioms.add(axiom); didExpansion.set(true); }); } catch (Exception ex) { LOG.error(ex.getMessage(), ex); } } return didExpansion.get(); } }
private Set<OntologyAxiomPair> parseDisjointProperties() { String section = consumeToken(); if (!DISJOINT_PROPERTIES.matches(section)) { throw new ExceptionBuilder().withKeyword(DISJOINT_PROPERTIES).build(); } Set<OWLOntology> ontologies = getOntologies(); Set<OWLAnnotation> annotations = parseAnnotations(); Set<OWLPropertyExpression> props = parsePropertyList(); Set<OntologyAxiomPair> pairs = new HashSet<>(); OWLAxiom propertiesAxiom; if (props.iterator().next().isObjectPropertyExpression()) { Set<OWLObjectPropertyExpression> ope = new HashSet<>(); props.forEach(pe -> ope.add(pe.asObjectPropertyExpression())); propertiesAxiom = df.getOWLDisjointObjectPropertiesAxiom(ope, annotations); } else { Set<OWLDataPropertyExpression> dpe = new HashSet<>(); props.forEach(pe -> dpe.add(pe.asDataPropertyExpression())); propertiesAxiom = df.getOWLDisjointDataPropertiesAxiom(dpe, annotations); } for (OWLOntology ont : ontologies) { pairs.add(new OntologyAxiomPair(ont, propertiesAxiom)); } return pairs; }
private boolean expand(OWLAnnotationAssertionAxiom ax) { OWLAnnotationProperty prop = ax.getProperty(); AtomicBoolean didExpansion = new AtomicBoolean(false); String expandTo = visitor.expandAssertionToMap.get(prop.getIRI()); if (expandTo != null) { LOG.info("Template to Expand{}", expandTo); expandTo = expandTo .replaceAll("\\?X", visitor.getTool().getId((IRI) ax.getSubject())); expandTo = expandTo .replaceAll("\\?Y", visitor.getTool().getId((IRI) ax.getValue())); LOG.info("Expanding {}", expandTo); try { visitor.getTool().parseManchesterExpressionFrames(expandTo).forEach(axp -> { OWLAxiom axiom = axp.getAxiom(); if (shouldPreserveAnnotationsWhenExpanding()) { axiom = axiom.getAnnotatedAxiom( visitor.getAnnotationsWithOptionalExpansionMarker(ax)); } newAxioms.add(axiom); didExpansion.set(true); }); } catch (Exception ex) { LOG.error(ex.getMessage(), ex); } } return didExpansion.get(); } }
private <F, O> Set<OntologyAxiomPair> parseAnnotatedListItems(F s, AnnAxiom<F, O> itemParser, Set<OWLOntology> ontologies) { Set<OntologyAxiomPair> result = new HashSet<>(); String sep = COMMA.keyword(); while (COMMA.matches(sep)) { Set<OWLAnnotation> annotations = parseAnnotations(); O item = itemParser.parse.apply(s); OWLAxiom axiom = itemParser.createAxiom(s, item, annotations); for (OWLOntology ontology : ontologies) { result.add(new OntologyAxiomPair(ontology, axiom)); } sep = peekToken(); if (COMMA.matches(sep)) { consumeToken(); } } return result; }
private boolean expand(OWLAnnotationAssertionAxiom ax) { OWLAnnotationProperty prop = ax.getProperty(); AtomicBoolean didExpansion = new AtomicBoolean(false); String expandTo = visitor.expandAssertionToMap.get(prop.getIRI()); if (expandTo != null) { LOG.info("Template to Expand{}", expandTo); expandTo = expandTo .replaceAll("\\?X", visitor.getTool().getId((IRI) ax.getSubject())); expandTo = expandTo .replaceAll("\\?Y", visitor.getTool().getId((IRI) ax.getValue())); LOG.info("Expanding {}", expandTo); try { visitor.getTool().parseManchesterExpressionFrames(expandTo).forEach(axp -> { OWLAxiom axiom = axp.getAxiom(); if (shouldPreserveAnnotationsWhenExpanding()) { axiom = axiom.getAnnotatedAxiom( visitor.getAnnotationsWithOptionalExpansionMarker(ax)); } newAxioms.add(axiom); didExpansion.set(true); }); } catch (Exception ex) { LOG.error(ex.getMessage(), ex); } } return didExpansion.get(); } }
private <F, O> Set<OntologyAxiomPair> parseAnnotatedListItems(F s, AnnAxiom<F, O> itemParser, Set<OWLOntology> ontologies) { Set<OntologyAxiomPair> result = new HashSet<>(); String sep = COMMA.keyword(); while (COMMA.matches(sep)) { Set<OWLAnnotation> annotations = parseAnnotations(); O item = itemParser.parse.apply(s); OWLAxiom axiom = itemParser.createAxiom(s, item, annotations); for (OWLOntology ontology : ontologies) { result.add(new OntologyAxiomPair(ontology, axiom)); } sep = peekToken(); if (COMMA.matches(sep)) { consumeToken(); } } return result; }
public SWRLRule createObject(String text) throws OWLExpressionParserException { ManchesterOWLSyntaxParser parser = new ManchesterOWLSyntaxParserImpl(OWLOntologyLoaderConfiguration::new, mngr.getOWLDataFactory()); parser.setOWLEntityChecker(new ProtegeOWLEntityChecker(mngr.getOWLEntityFinder())); parser.setStringToParse(text); try { return (SWRLRule) parser.parseRuleFrame().iterator().next().getAxiom(); } catch (ParserException e) { throw ParserUtil.convertException(e); } } }
private <F, O> Set<OntologyAxiomPair> parseAnnotatedListItems(F s, AnnAxiom<F, O> itemParser, Set<OWLOntology> ontologies) { Set<OntologyAxiomPair> result = new HashSet<>(); String sep = COMMA.keyword(); while (COMMA.matches(sep)) { Set<OWLAnnotation> annotations = parseAnnotations(); O item = itemParser.parse.apply(s); OWLAxiom axiom = itemParser.createAxiom(s, item, annotations); for (OWLOntology ontology : ontologies) { result.add(new OntologyAxiomPair(ontology, axiom)); } sep = peekToken(); if (COMMA.matches(sep)) { consumeToken(); } } return result; }