Почему запросы SPARQL 3 и 4 дают пустые результаты, а запросы 1 и 2 работают как положено?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему запросы SPARQL 3 и 4 дают пустые результаты, а запросы 1 и 2 работают как положено?

Сообщение Anonymous »

Я новичок в SPARQL и запросах онтологий. Я работаю с онтологией, которая отслеживает действия, их продолжительность и связанные объекты. Цель состоит в том, чтобы извлечь конкретные данные о действиях на основе различных условий.
Я написал несколько запросов SPARQL для извлечения действий из онтологии. Однако я столкнулся с проблемой, когда третий и четвертый запросы возвращают пустые результаты, а первый и второй запросы предоставляют желаемый результат. Вот запросы:

Код: Выделить всё

 import org.apache.jena.query.*;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.riot.RDFDataMgr;

public class ActivityQueries {
// Add static keyword to `ontologyFile`
static String ontologyFile = "C:\\Users\\Dell\\Desktop\\HBOOntology.OWL";
static Model model = RDFDataMgr.loadModel(ontologyFile);

private static String getQuery1() {
return "PREFIX rdf:  " +
"PREFIX owl:  " +
"PREFIX rdfs:  " +
"PREFIX xsd:  " +
"PREFIX ont:  " +
"PREFIX ex:  " +
"SELECT DISTINCT ?activity ?startTime ?endTime " +
"WHERE { " +
"   ex:hasActivity ?activity . " +
"  ?activity ex:hasStartTime ?startTime ; " +
"            ex:hasEndTime ?endTime . " +
"} ";
}

// Query 2: Extract activities from Query 1 that have duration >= 5 minutes
// Query 2: Extract activities from Query 1 that have duration > 4 minutes
private static String getQuery2() {
return "PREFIX ont:  " +
"PREFIX ex:  " +
"PREFIX xsd:  " +
"SELECT DISTINCT (STRAFTER(STR(?activity), \"#\") AS ?activityName) " +
"                ?startTime " +
"                ?endTime " +
"WHERE { " +
"  { " +
"    SELECT ?activity ?startTime ?endTime " +
"    WHERE { " +
"       ex:hasActivity ?activity . " +
"      ?activity ex:hasStartTime ?startTime ; " +
"                ex:hasEndTime ?endTime . " +
"    } " +
"  } " +
"  FILTER ((xsd:dateTime(?endTime) - xsd:dateTime(?startTime)) > \"PT6M\"^^xsd:duration) . " +
"} ";
}

private static String getQuery3() {
return "PREFIX ont:  " +
"PREFIX j0:  " +
"PREFIX xsd:  " +
"PREFIX rdfs:  " +
"PREFIX owl:  " +
"PREFIX rdf:  " +
"SELECT DISTINCT ?activity1 ?activity2 ?location1 ?location2 " +
"WHERE { " +
"  { " +
"    SELECT ?activity1 ?startTime1 ?endTime1 ?location1 " +
"    WHERE { " +
"      ?activity1 a j0:Activity ; " +
"                 j0:hasStartTime ?startTime1 ; " +
"                 j0:hasEndTime ?endTime1 ; " +
"                 ont:hasActivityLocation ?location1 . " +
"      FILTER (xsd:dateTime(?endTime1) - xsd:dateTime(?startTime1) > \"PT4M\"^^xsd:duration) .  " +
"    } " +
"  } " +
"  { " +
"    SELECT ?activity2 ?startTime2 ?endTime2 ?location2 " +
"    WHERE { " +
"      ?activity2 a j0:Activity ; " +
"                 j0:hasStartTime ?startTime2 ; " +
"                 j0:hasEndTime ?endTime2 ; " +
"                 ont:hasActivityLocation ?location2 . " +
"      FILTER (xsd:dateTime(?endTime2) - xsd:dateTime(?startTime2) > \"PT4M\"^^xsd:duration) . " +
"    } " +
"  } " +
"  FILTER (xsd:dateTime(?startTime2) - xsd:dateTime(?endTime1)  xsd:dateTime(?endTime1)) . " +
"} ";
}

private static String getQuery4() {
return "PREFIX ont:  " +
"PREFIX j0:  " +
"PREFIX xsd:  " +
"PREFIX rdfs:  " +
"PREFIX owl:  " +
"PREFIX rdf:  " +
"SELECT DISTINCT ?activity1 ?activity2 ?object1 ?object2 " +
"WHERE { " +
"  ?activity1 ont:hasObject ?object1 . " +
"  ?activity2 ont:hasObject ?object2 . " +
"  ?activity1 a j0:Activity ; " + // Use the correct IRI for Activity
"              j0:hasStartTime ?startTime1 ; " +
"              j0:hasEndTime ?endTime1 . " +
"  ?activity2 a j0:Activity ; " + // Use the correct IRI for Activity
"              j0:hasStartTime ?startTime2 ; " +
"              j0:hasEndTime ?endTime2 . " +
"  FILTER (xsd:dateTime(?startTime2) - xsd:dateTime(?endTime1)  xsd:dateTime(?endTime1)) .  " +
"} ";
}

public static void main(String[] args) {
// Load the RDF model and display it in the console (optional)
/*RDFDataMgr.write(System.out, model, org.apache.jena.riot.RDFFormat.TURTLE);*/

// Define the queries
String query1 = getQuery1();
String query2 = getQuery2();
String query3 = getQuery3();
String query4 = getQuery4();

// Execute Query 1
System.out.println("Results for Query 1:");
try (QueryExecution qExec = QueryExecutionFactory.create(QueryFactory.create(query1), model)) {
ResultSet results = qExec.execSelect();
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
System.out.println(soln);
}
}

// Execute Query 2
System.out.println("\nResults for Query 2:");
try (QueryExecution qExec = QueryExecutionFactory.create(QueryFactory.create(query2), model)) {
ResultSet results = qExec.execSelect();
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
System.out.println(soln);
}
}

// Execute Query 3
System.out.println("\nResults for Query 3:");
try (QueryExecution qExec = QueryExecutionFactory.create(QueryFactory.create(query3), model)) {
ResultSet results = qExec.execSelect();
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
System.out.println(soln);
}
}

// Execute Query 4
System.out.println("\nResults for Query 4:");
try (QueryExecution qExec = QueryExecutionFactory.create(QueryFactory.create(query4), model)) {
ResultSet results = qExec.execSelect();
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
System.out.println(soln);
}
}

}  // Close the main method

}  // Close the class definition
Мне нужна помощь, чтобы решить проблему и получить ожидаемые результаты

Подробнее здесь: https://stackoverflow.com/questions/791 ... s-expected
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»