org.protege.editor.owl.ui.clsdescriptioneditor.SWRLRuleChecker Maven / Gradle / Ivy
package org.protege.editor.owl.ui.clsdescriptioneditor;
import org.protege.editor.owl.model.OWLModelManager;
import org.protege.editor.owl.model.classexpression.OWLExpressionParserException;
import org.protege.editor.owl.model.parser.ParserUtil;
import org.protege.editor.owl.model.parser.ProtegeOWLEntityChecker;
import org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxParserImpl;
import org.semanticweb.owlapi.manchestersyntax.renderer.ParserException;
import org.semanticweb.owlapi.model.OWLOntologyLoaderConfiguration;
import org.semanticweb.owlapi.model.SWRLRule;
import org.semanticweb.owlapi.util.mansyntax.ManchesterOWLSyntaxParser;
/**
* Author: drummond
* http://www.cs.man.ac.uk/~drummond/
* The University Of Manchester
* Bio Health Informatics Group
* Date: Jul 23, 2008
*
*/
class SWRLRuleChecker implements OWLExpressionChecker {
private OWLModelManager mngr;
public SWRLRuleChecker(OWLModelManager mngr) {
this.mngr = mngr;
}
public void check(String text) throws OWLExpressionParserException {
createObject(text);
}
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);
}
}
}