1

私は TopBraid を IDE として、Jena を Java で使用しています。同じ SPARQL クエリと同じファイルに対して、2 つの異なる結果セットが得られます。オントロジーはhttps://dl.dropboxusercontent.com/u/108022472/ontology.owlにあります。

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 を使用した場合、結果は問題ありませんが、Jena を使用した場合、結果は正しくありません。

結果は次のようになります。

| | を:キングダム | "動物" | | | | | を:キングダム | 「動物」

しかし、Jena を使用すると、間違った型の結果セットが返されます

4

1 に答える 1