OpenRdf를 Sparql과 함께 사용하여 DBPedia에서 데이터를 수집하지만 DBPedia Sparql 끝점에 대해 실행 된 다음 쿼리에서 몇 가지 오류가 발생합니다.
CONSTRUCT{
?battle ?relation ?data .
}
WHERE{
?battle rdf:type yago:Battle100953559 ;
?relation ?data .
FILTER(?relation != owl:sameAs)
}
LIMIT 1
OFFSET 18177
문제를 일으키는 특정 결과를 지적하기 위해 LIMIT 및 OFFSET을 수정했습니다.
응답은 다음과 같습니다.
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ns1: <http://en.wikipedia.org/wiki/> .
<http://dbpedia.org/resource/Mongol%E2%80%93Jin_Dynasty_War> foaf:isPrimaryTopicOf ns1:Mongol–Jin_Dynasty_War .
문제는 ns1 : Mongol–Jin_Dynasty_War 엔티티에 마이너스 기호가 포함되어 있으므로 OpenRdf를 사용하여 Java 애플리케이션 내에서이 쿼리를 실행할 때 다음 예외가 발생합니다.
org.openrdf.query.QueryEvaluationException : org.openrdf.rio.RDFParseException : '.'예상, '–'발견 [줄 3]
이 문제를 피할 수있는 방법이 있습니까?
감사 !
동일한 문제가 발생할 수있는 다른 사용자를 돕기 위해 여기에 OpenRDF v2.7.x를 사용하여 그래프 쿼리에 대해 선호하는 출력 형식을 설정하는 방법을 게시하겠습니다.
HTTPClient에 액세스하려면 SPARQLRepository 의 하위 클래스를 만들어야 합니다 (어떤 이유로 필드는 protected
.
public class NtripleSPARQLRepository extends SPARQLRepository {
public NtripleSPARQLRepository(String endpointUrl) {
super(endpointUrl);
this.getHTTPClient().setPreferredRDFFormat(RDFFormat.NTRIPLES);
}
}
이 클래스의 새 인스턴스를 생성하기 만하면됩니다.
NtripleSPARQLRepository repository = new NtripleSPARQLRepository(service);
RepositoryConnection connection = new SPARQLConnection(repository);
Query query = connection.prepareQuery(QueryLanguage.SPARQL, "YOUR_QUERY");
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다