下面是我用来实现它的过程和代码,我只想告诉那些与我有类似问题的人(或者那些想用Jena阅读protg本体的人):
2-将文件复制到WEB-INF目录(如果需要,可以在任何子目录下);
3-创建一个类来读取本体。例如:
import java.io.InputStream;
import org.apache.jena.ontology.*;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.util.FileManager;
public class ReadOntology {
public OntModel model;
public static void run(String ontologyInFile) {
model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF, null);
InputStream ontologyIn = FileManager.get().open(ontologyInFile);
loadModel(model, ontologyIn);
}
/**
* @param m
* @param ontologyIn */
protected static void loadModel(OntModel m, InputStream ontologyIn) {
try {
m.read(ontologyIn, "RDF/XML");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
4-使用Servlet类(扩展了HttpServlet),可以使用创建的类,如下所示:
ServletContext context = this.getServletContext();
String fullPath = context.getRealPath("/WEB-INF/yourOntologyName.owl");
ReadOntology.run(fullPath);
ExtendedIterator<OntClass> classIterator = ReadOntology.model.listClasses();
while (classIterator.hasNext()) {
OntClass ontClass = classIterator.next();
System.out.println(ontClass.toString());
}