Привет, я работаю над Проектом Финального Года , который в основном Поисковая система вакансий с использованием онтологии .Я использую технологию Java.
Способ, которым он работает, заключается в том, что пользователь ищет любую работу, например: Java-разработчик, а затем это ключевое слово должно идти в созданной онтологии и соответствовать в онтологии.После сопоставления он отправляет файл XML, который содержит все задания и получает только сопоставленные задания.
Онтология успешно создана, и единственная проблема заключается в том, что у меня возникают проблемы с пониманием и записью SPARQL-запрос с Jena API , который будет принимать введенное пользователем ключевое слово и переходить в файл OWL или RDF Ontology , затем находить совпадение, затем переходить к файлу данных XML и получать толькосопоставление данных и отображение их на странице.
Это код, который я написал.я могу читать только онтологию, и я решил сначала отобразить их правильно, но я получаю ошибку.
OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_MICRO_RULE_INF);
String inputFileName="e:/springmvc/jena/bin/jena/ontology14.owl";
InputStream in = FileManager.get().open( inputFileName );
if (in == null) {
throw new IllegalArgumentException(
"File: " + inputFileName + " not found");
}
model.read(in, null);
String queryString =
"prefix rdfs: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "+
"prefix owl: <http://www.w3.org/2002/07/owl#> "+
"select ?ab where {?person owl:equivalentClass ?ab " +
"}";
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet results = qe.execSelect();
while(results.hasNext()){
QuerySolution soln = results.nextSolution();
Literal jobs = soln.getLiteral("x");
System.out.println(jobs);
}
qe.close();
Ошибка, которую я получаю:
Exception in thread "main" java.lang.ClassCastException: com.hp.hpl.jena.rdf.model.impl.ResourceImpl cannot be cast to com.hp.hpl.jena.rdf.model.Literal
at com.hp.hpl.jena.sparql.core.QuerySolutionBase.getLiteral(QuerySolutionBase.java:41)
at jena.jeena.main(jeena.java:79)