2013-06-07 3 views
1

Я использую TopBraid как IDE и Jena в Java. Для того же запроса SPARQL и того же файла я получаю два разных набора результатов. Онтологию можно найти здесь, https://dl.dropboxusercontent.com/u/108022472/ontology.owlSame Sparql с другим результатом с использованием разных программ

The SPARQL является:

select ?individual ?type ?label where { 
    ?individual rdf:type ?type . 
    ?individual rdfs:label ?label 
    filter (?type in (wo:Kingdom)) 
} 

Моего Java Код:

public class ExeSparql { 
    static String prefix = "PREFIX owl: <http://www.w3.org/2002/07/owl#> " + 
      "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> " + 
      "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> " + 
      "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " + 
      "PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> " + 
      "PREFIX : <http://dbpedia.org/resource/> " + 
      "PREFIX dbpedia2: <http://dbpedia.org/property/> " + 
      "PREFIX wo:<http://purl.org/ontology/wo/>" + 
      "PREFIX dbpedia: <http://dbpedia.org/> "; 

    public static ResultSet execute(String queryString){ 
     queryString = prefix + queryString; 
     Model model = null; 
     try { 
      InputStream in = new FileInputStream(new File("/home/noor/TBCMEWorkspace/recreate/index.rdf")); 
      // Create an empty in-memory model and populate it from the graph 
      model = ModelFactory.createOntologyModel(); 
      model.read(in,null); // null base URI, since model URIs are absolute 
      in.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     Query query = QueryFactory.create(queryString); 
     // Execute the query and obtain results 
     QueryExecution qe = QueryExecutionFactory.create(query, model); 
     ResultSet results = qe.execSelect(); 
     ResultSetFormatter.out(System.out, results, query); 
     //qe = QueryExecutionFactory.create(query, model); 
     //results = qe.execSelect(); 
     return results; 
    } 
} 

Есть ли какие-либо проблемы с кодом Jena? Используя topbraid, результаты в порядке, в то время как с Йеной результат неправильный.

Результат должен быть:

| wo: Королевство | «Животные» | | | wo: Королевство | «Animalia»

Но Jena, его возвращающего набор результатов с неправильными типами

+1

Что вы подразумеваете под "результатом является неправильным"? Каковы были результаты? Что вы ожидали от результатов? Каковы данные? –

+0

Что сказал Джошуа. Без какого-либо представления о том, что вы ожидаете, нет никакого способа дать какие-либо советы. Как, например, вы знаете, что это Йена, это неправильно, а не наоборот? –

+0

Я получаю два разных набора результатов, используя тот же SPARQL и тот же исходный файл. Я запускаю один SPARQL, используя верхнюю оплетку для тестирования, но при использовании Jena API я получаю разные результаты. – Noor

ответ

0

Я попробовал этот запрос с данными, которые вы предоставили (я должен был добавить префиксы):

prefix wo: <http://purl.org/ontology/wo/> 
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

select ?individual ?type ?label where { 
    ?individual rdf:type ?type . 
    ?individual rdfs:label ?label 
    filter (?type in (wo:Kingdom)) 
} 

Я побежал запрос с помощью командной строки ARQ Jena с следующими результатами:

$ arq --query query.sparql --data ontology.owl 
------------------------------------------------------------------- 
| individual       | type  | label  | 
=================================================================== 
| <file:/nature/life/Animal#kingdom> | wo:Kingdom | "Animals" | 
| <file:/nature/kingdom/Animal#kingdom> | wo:Kingdom | "animalia" | 
------------------------------------------------------------------- 

версия Джен a (2.10.0) и ARQ (2.10.0) являются следующими:

$ arq --version 
Jena:  VERSION: 2.10.0 
Jena:  BUILD_DATE: 2013-02-20T12:04:26+0000 
ARQ:  VERSION: 2.10.0 
ARQ:  BUILD_DATE: 2013-02-20T12:04:26+0000 
Смежные вопросы