@Override public Set<OWLAnnotationProperty> parseAnnotationPropertyList() { Set<OWLAnnotationProperty> props = new HashSet<>(); String sep = COMMA.keyword(); while (COMMA.matches(sep)) { props.add(parseAnnotationProperty()); sep = peekToken(); if (COMMA.matches(sep)) { consumeToken(); } } return props; }
private Set<OWLAnnotation> parseAnnotations() { String next = peekToken(); Set<OWLAnnotation> annotations = Collections.emptySet(); if (ANNOTATIONS.matches(next)) { consumeToken(); annotations = parseAnnotationList(); } return annotations; }
private ManchesterOWLSyntaxOntologyHeader parseOntologyHeader(boolean toEOF) { String tok = consumeToken(); if (!ONTOLOGY.matches(tok)) { throw new ExceptionBuilder().withKeyword(ONTOLOGY).build(); if (peekToken().startsWith("<")) { ontologyIRI = parseIRI(); if (peekToken().startsWith("<")) { versionIRI = parseIRI(); Set<OWLImportsDeclaration> imports = new HashSet<>(); while (true) { String section = peekToken(); if (IMPORT.matches(section)) { handleImport(imports); } else if (ANNOTATIONS.matches(section)) { consumeToken(); annotations.addAll(parseAnnotationList()); } else if (eof(section)) { break; } else if (toEOF) { throw new ExceptionBuilder().withKeyword(IMPORT, ANNOTATIONS).build(); } else { break;
protected void handleImport(Set<OWLImportsDeclaration> imports) { String tok; consumeToken(); tok = peekToken(); Optional<IRI> importedIRI = emptyOptional(); if (tok.startsWith("<")) { importedIRI = optional(parseIRI()); } else if (isOntologyName(tok)) { consumeToken(); OWLOntology ont = getOntology(tok); if (ont != null) { importedIRI = ont.getOntologyID().getOntologyIRI(); } } else { consumeToken(); throw new ExceptionBuilder().withOnto().withKeyword("<$ONTOLOGYYURI$>").build(); } if (!importedIRI.isPresent()) { throw new ExceptionBuilder().withOnto().withKeyword("Imported IRI is null").build(); } IRI importedOntologyIRI = importedIRI.get(); imports.add(df.getOWLImportsDeclaration(importedOntologyIRI)); }
private <F> void parseFrameSections(boolean eof, Set<OntologyAxiomPair> axioms, F frameSubject, Map<ManchesterOWLSyntax, AnnAxiom<F, ?>> sectionParsers) { while (true) { String sect = peekToken(); AnnAxiom<F, ?> parser = sectionParsers.get(parse(sect)); if (parser != null) { consumeToken(); Set<OWLOntology> onts = getOntologies(); if (!isEmptyFrameSection(sectionParsers)) { axioms.addAll(parseAnnotatedListItems(frameSubject, parser, onts)); } } else if (eof && !eof(sect)) { List<ManchesterOWLSyntax> expected = new ArrayList<>(); expected.addAll(sectionParsers.keySet()); if (frameSubject instanceof OWLAnnotationSubject || frameSubject instanceof OWLEntity) { expected.add(ANNOTATIONS); } throw new ExceptionBuilder().withKeyword(expected).build(); } else { break; } } }
private SWRLIArgument parseIObject() { String s = peekToken(); if (isIndividualName(s)) { return parseIIndividualObject(); } else if ("?".equals(s)) { return parseIVariable(); } else { consumeToken(); throw new ExceptionBuilder().withInd().withKeyword("?$var$").build(); } }
@Override public Set<OntologyAxiomPair> parseDatatypeFrame() { String tok = consumeToken(); if (!DATATYPE.matches(tok)) { throw new ExceptionBuilder().withKeyword(DATATYPE).build(); String subj = consumeToken(); OWLDatatype datatype = getOWLDatatype(subj); Set<OntologyAxiomPair> axioms = new HashSet<>(); axioms.add(new OntologyAxiomPair(defaultOntology, df.getOWLDeclarationAxiom(datatype))); while (true) { String sect = peekToken(); if (EQUIVALENT_TO.matches(sect)) { potentialKeywords.clear(); consumeToken(); Set<OWLOntology> onts = getOntologies(); Set<OWLDataRange> drs = parseDataRangeList(); for (OWLOntology ont : onts) { for (OWLDataRange dr : drs) { axioms.add(new OntologyAxiomPair(ont, df.getOWLDatatypeDefinitionAxiom(datatype, dr))); } else if (ANNOTATIONS.matches(sect)) { potentialKeywords.clear(); axioms.addAll(parseAnnotations(datatype.getIRI()));
protected void handleImport(Set<OWLImportsDeclaration> imports) { String tok; consumeToken(); tok = peekToken(); Optional<IRI> importedIRI = emptyOptional(); if (tok.startsWith("<")) { importedIRI = optional(parseIRI()); } else if (isOntologyName(tok)) { consumeToken(); OWLOntology ont = getOntology(tok); if (ont != null) { importedIRI = ont.getOntologyID().getOntologyIRI(); } } else { consumeToken(); throw new ExceptionBuilder().withOnto().withKeyword("<$ONTOLOGYYURI$>").build(); } if (!importedIRI.isPresent()) { throw new ExceptionBuilder().withOnto().withKeyword("Imported IRI is null").build(); } IRI importedOntologyIRI = importedIRI.get(); imports.add(df.getOWLImportsDeclaration(importedOntologyIRI)); }
private <F> void parseFrameSections(boolean eof, Set<OntologyAxiomPair> axioms, F frameSubject, Map<ManchesterOWLSyntax, AnnAxiom<F, ?>> sectionParsers) { while (true) { String sect = peekToken(); AnnAxiom<F, ?> parser = sectionParsers.get(parse(sect)); if (parser != null) { consumeToken(); Set<OWLOntology> onts = getOntologies(); if (!isEmptyFrameSection(sectionParsers)) { axioms.addAll(parseAnnotatedListItems(frameSubject, parser, onts)); } } else if (eof && !eof(sect)) { List<ManchesterOWLSyntax> expected = new ArrayList<>(); expected.addAll(sectionParsers.keySet()); if (frameSubject instanceof OWLAnnotationSubject || frameSubject instanceof OWLEntity) { expected.add(ANNOTATIONS); } throw new ExceptionBuilder().withKeyword(expected).build(); } else { break; } } }
private Set<OWLAnnotation> parseAnnotations() { String next = peekToken(); Set<OWLAnnotation> annotations = Collections.emptySet(); if (ANNOTATIONS.matches(next)) { consumeToken(); annotations = parseAnnotationList(); } return annotations; }
private SWRLIArgument parseIObject() { String s = peekToken(); if (isIndividualName(s)) { return parseIIndividualObject(); } else if ("?".equals(s)) { return parseIVariable(); } else { consumeToken(); throw new ExceptionBuilder().withInd().withKeyword("?$var$").build(); } }
@Override public Set<OntologyAxiomPair> parseDatatypeFrame() { String tok = consumeToken(); if (!DATATYPE.matches(tok)) { throw new ExceptionBuilder().withKeyword(DATATYPE).build(); String subj = consumeToken(); OWLDatatype datatype = getOWLDatatype(subj); Set<OntologyAxiomPair> axioms = new HashSet<>(); axioms.add(new OntologyAxiomPair(defaultOntology, df.getOWLDeclarationAxiom(datatype))); while (true) { String sect = peekToken(); if (EQUIVALENT_TO.matches(sect)) { potentialKeywords.clear(); consumeToken(); Set<OWLOntology> onts = getOntologies(); Set<OWLDataRange> drs = parseDataRangeList(); for (OWLOntology ont : onts) { for (OWLDataRange dr : drs) { axioms.add(new OntologyAxiomPair(ont, df.getOWLDatatypeDefinitionAxiom(datatype, dr))); } else if (ANNOTATIONS.matches(sect)) { potentialKeywords.clear(); axioms.addAll(parseAnnotations(datatype.getIRI()));
protected void handleImport(Set<OWLImportsDeclaration> imports) { String tok; consumeToken(); tok = peekToken(); Optional<IRI> importedIRI = emptyOptional(); if (tok.startsWith("<")) { importedIRI = optional(parseIRI()); } else if (isOntologyName(tok)) { consumeToken(); OWLOntology ont = getOntology(tok); if (ont != null) { importedIRI = ont.getOntologyID().getOntologyIRI(); } } else { consumeToken(); throw new ExceptionBuilder().withOnto().withKeyword("<$ONTOLOGYYURI$>").build(); } if (!importedIRI.isPresent()) { throw new ExceptionBuilder().withOnto().withKeyword("Imported IRI is null").build(); } IRI importedOntologyIRI = importedIRI.get(); imports.add(df.getOWLImportsDeclaration(importedOntologyIRI)); }
private <F> void parseFrameSections(boolean eof, Set<OntologyAxiomPair> axioms, F frameSubject, Map<ManchesterOWLSyntax, AnnAxiom<F, ?>> sectionParsers) { while (true) { String sect = peekToken(); AnnAxiom<F, ?> parser = sectionParsers.get(parse(sect)); if (parser != null) { consumeToken(); Set<OWLOntology> onts = getOntologies(); if (!isEmptyFrameSection(sectionParsers)) { axioms.addAll(parseAnnotatedListItems(frameSubject, parser, onts)); } } else if (eof && !eof(sect)) { List<ManchesterOWLSyntax> expected = new ArrayList<>(); expected.addAll(sectionParsers.keySet()); if (frameSubject instanceof OWLAnnotationSubject || frameSubject instanceof OWLEntity) { expected.add(ANNOTATIONS); } throw new ExceptionBuilder().withKeyword(expected).build(); } else { break; } } }
private Set<OWLAnnotation> parseAnnotations() { String next = peekToken(); Set<OWLAnnotation> annotations = Collections.emptySet(); if (ANNOTATIONS.matches(next)) { consumeToken(); annotations = parseAnnotationList(); } return annotations; }