FedX를 사용하여 원격 연합을 만들려고했습니다. 아래는 제 코드입니다. 첫 번째 트리플 패턴은 "시맨틱 웹 개밥"SPARQL 엔드 포인트에서 실행될 때 결과를 제공하고 두 번째 트리플 패턴은 DBPedia SPARQL 엔드 포인트에서 실행됩니다. 아무도 친절하게 코드에 무엇이 잘못되었는지 설명 할 수 있습니까? 나는 쿼리를 시도하고 406 오류가 발생했습니다. 프록시없이 인터넷에 연결하고 있습니다.FedX를 사용하여 원격 SPARQL 끝점 쿼리
package Query;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import org.openrdf.query.QueryLanguage;
import org.openrdf.query.TupleQuery;
import org.openrdf.query.TupleQueryResult;
import org.openrdf.repository.Repository;
import com.fluidops.fedx.Config;
import com.fluidops.fedx.FedXFactory;
import com.fluidops.fedx.FederationManager;
import java.util.Arrays;
public class QueryFedX {
public static void main(String[] args) {
try
{
Config.initialize();
Repository repo = FedXFactory.initializeSparqlFederation(Arrays.asList(
"http://dbpedia.org/sparql",
"http://data.semanticweb.org/sparql"
));
String q = "SELECT ?y ?z WHERE { <http://data.semanticweb.org/organization/university-of-oxford> <http://www.w3.org/2000/01/rdf-schema#label> ?z . ?y <http://www.wikidata.org/entity/P373> ?z .}";
TupleQuery query = repo.getConnection().prepareTupleQuery(QueryLanguage.SPARQL, q);
TupleQueryResult res = query.evaluate();
while (res.hasNext()) {
System.out.println(res.next());
}
FederationManager.getInstance().shutDown();
System.out.println("Done.");
System.exit(0);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
는 HTTP (406)를 나타내는 하나의 클라이언트가 요구되는 구문 형식을 제공 할 수 없습니다. 어떤 엔드 포인트가 오류를 일으키는 지 알아 내려고 시도 했습니까? FedEx 연맹에서이 코드를 하나의 엔드 포인트 만 실행하면됩니까? –
또한 귀하의 프로필을 신속하게 살펴 보았을 때 많은 질문을 던졌지 만 도움이되는 답변을 받아들이는 데 어려움을 겪지 않았던 것 같습니다. 그 문제를 해결하고 싶을 수도 있습니다. –
안녕하세요 Jeen, 공헌 할 수 없기 대단히 죄송합니다. 나는 그것을 미래에 치료할 것이다. 나는 두 종점으로 노력하고 있었고 두 종점 모두에서 "select? x where {? x? y? z.}"라는 결과를 주었다. 그러나 두 종점에서 실행하려고 할 때, 406 오류. 원격 엔드 포인트에서이 동작을 이해할 수 없습니까? –