2016-01-09 3 views
0

Пожалуйста, Может ли один используется Jena API на Android код, я пытаюсь найти решение, так как шесть месяцев, но не way.I используются источники АФИ в https://code.google.com/p/androjena/downloads/list, он работает в течение некоторого SPARQL funcion, но для других есть проблема. Например, это нормально для Exemple1, но для Exemple2 есть проблема.В поисках решения в Jena API на андроид

Exemple1:

public void QueryEngine() { 

    String sparqlQuery2 = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n"+ 
          "PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n"+ 
          "SELECT DISTINCT ?Nom ?resource ?url\n"+ 
          "WHERE\n"+ 
          " { ?resource rdfs:label ?Nom .\n"+ 
          " ?resource foaf:isPrimaryTopicOf ?url\n"+ 
          "?Nom <bif:contains> \"Apple\". \n"+ 
          " FILTER langMatches(lang(?Nom), \"EN\")\n"+ 
          "}"; 
    String service = "http://dbpedia.org/sparql"; 
    Query qur = QueryFactory.create(sparqlQuery2); 
    QueryEngineHTTP exec = new QueryEngineHTTP(service, qur); 
    ResultSet results = exec.execSelect(); 
    ResultSetFormatter.out(results); 
} 

Exemple2:

public void QueryEngine() { 

    String sparqlQuery2 = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n"+ 
          "PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n"+ 
          "PREFIX dbo: <http://dbpedia.org/ontology/>\n"+ 
          "SELECT DISTINCT ?Nom ?resource ?url\n"+ 
          "WHERE\n"+ 
          " { ?resource rdfs:label ?Nom .\n"+ 
          " ?resource foaf:isPrimaryTopicOf ?url\n"+ 
          " FILTER langMatches(lang(?Nom), \"EN\")\n"+ 
          "?Nom <bif:contains> \"Apple\". \n"+ 
          "Minus \n"+ 
          "{ ?resource dbo:wikiPageRedirects|dbo:wikiPageDisambiguates ?dis} \n"+ 
          "} "; 

    String service = "http://dbpedia.org/sparql"; 
    Query qur = QueryFactory.create(sparqlQuery2); 
    QueryEngineHTTP exec = new QueryEngineHTTP(service, qur); 
    ResultSet results = exec.execSelect(); 
    ResultSetFormatter.out(results); 
} 

Проблема заключается в том, что он не знает, некоторые функции, такие как, ФИЛЬТР НЕ СУЩЕСТВУЕТ, МИНУС, BIND и многие othes , Код хорошо работает с java APi jena, но с андроидом всегда есть проблемы. Я даже попробую это решение http://elite.polito.it/index.php/research/downloads/182-jena-on-android-download, но я встретил другие проблемы с признанием некоторых классов.

Пожалуйста, помогите мне. Спасибо заранее.

+0

В SPARQL нет 'FILTER Minus'. '' является виртуозным расширением. – AndyS

+0

жаль, что это была опечатка, я имею в виду MINUS или FILTER NOT EXISTS ... Действительно, в версии ANDROJENA есть проблема, она не актуальна и не поддерживает некоторые функции. – Adem

ответ

0

Наконец works.I я просто меняется:

Query qur=QueryFactory.create(sparqlQuery2);

по

Query qur=QueryFactory.create(sparqlQuery2,Syntax.syntaxARQ); 

и все работает отлично.

Смежные вопросы