2013-10-02 1 views
1

DBpedia를 조회 한 후 수신 한 두 자원 사이의 거리 (DBpedia '그래프의 가장자리 수)를 계산하려고합니다. 예 :JENA에서 DBPedia의 두 자원 사이의 거리 계산하기

 Query query = QueryFactory.create(sparqlQueryString); 
    QueryExecution qexec =QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql",query); 

    try{ 
     ResultSet results = qexec.execSelect(); 
     for(; results.hasNext();) { 
     QuerySolution soln = results.nextSolution(); 
     for(int i=0;i<solutionConcept.length;i++){ 
        System.out.print(solutionConcept[i]+":"+soln.get(solutionConcept[i]).toString() +"; "); 
     } 
     System.out.println("\n"); 
     } 
     } finally{ 
     qexec.close(); 

및이 스트링 쿼리이다 잘

String s6= "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "+ 
      "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "+ 
      "PREFIX dbpedia: <http://dbpedia.org/resource/> "+ 
      "PREFIX o: <http://dbpedia.org/ontology/> "+ 
      "PREFIX dbprop: <http://dbpedia.org/property/>"+ 
      "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>" + 
      "select ?Player ?nation ?club "+ 
      "where {?Player rdf:type o:SoccerPlayer; dbprop:birthPlace ?nation; dbprop:currentclub ?club.} LIMIT 10"; 

두 플레이어 사이의 에지들의 개수 (경로 ??)를 계산하는 방법이 존재하거나, 두 국가, 또는 두 개의 클럽 ???? 대단히 감사합니다 ...

+0

특정 속성 또는 속성의 경로를 의미합니까? 경로를 찾고 있다면, 모든 속성의 가장자리에서 그려진 가장자리를 그릴 수 있습니다. 그러나 임의의 경로를 찾고 있다면, 나는 당신이 할 수있을 것이라고 생각하지 않습니다. 이 작업을 수행. 가지고있는 데이터를 기반으로 (또는 DBpedia에서 검색 할 수있는) 원하는 결과의 종류에 대한 (수동으로 생성 된) 예제를 제공 할 수 있습니까? –

+0

기본적으로 나는 이것이 내 결과는 내가 비달 사이의 유사성을 계산하려는 플레이어 NATION CLUB 아르투로 비달 칠레 유벤투스 // 클라우디오 피사로 칠레 피오렌티나 을 설정이라고 가정하면, 두 resource..For 예 사이의 유사성을 계산하고 싶습니다 -Pizarro 칠레 칠레 유벤투스 -Fiorentina 그리고 전체 유사성을 계산하면 – user2837896

+0

당신의 의도입니다. 그러나 이것을 계산할 수 있는지 여부를 누군가가 알기 전에 이것을 계산해야하는 _how_를 지정해야합니다. OWL에서 모든 것은'owl : Thing'의 인스턴스입니다. 그래서'rdf : type/^ rdf : type'라는 두 자원 사이에 항상 길이 2의 경로가 있습니다. 그러나 다른 경로가 두 개있을 것입니다. 그리고 일부 관계는 유사성보다는 차이 성을 나타냅니다. 그 관계를 제외 시키려고합니까? 이 질문에 답하기 위해, 당신이 계산하려고하는 것에 대해 더 많은 정보가 필요합니다. –

답변

1

현재 검색어로 인한 QuerySolution에서 그 거리를 계산할 수 없게됩니다.

이러한 의미 거리를 계산하려면 다른 SPARQL 쿼리를 통해 또는 필요한 정보를 로컬에서 검색하기 위해 쿼리를 업데이트해야합니다.

+0

다음 네 개의 dbpedia 파일을 다운로드했습니다. http : //dbpedia.org/Ontology. 그런 다음이 파일을 로컬에서로드하려고 시도했습니다. http : //stackoverflow.com/questions/16832862/load-dbpedia-locally-using-jena-tdb. 하지만이 방법은 너무 무거워 ... PC가 폭발 할 것입니다 ... 올바른 방법입니까? ... 도와 주시겠습니까? – user2837896