2014-11-03 1 views
0

나는 위키 피 디아 사용자와 그들이 편집 한 기사 목록을 가지고 있습니다.
나는 그들 각각에 대해 계층 적 프로파일을 구축하려고합니다.위키 피 디아 기사의 상위 카테고리 가져 오기

문제는 각 기사의 상위 카테고리를 얻는 데 어려움을 겪고 있습니다.
내가 원하는 것은 피자가 "요리"또는 "음식"을 얻는 것에 대한 기사입니다.
나는 예나와 야고이 보이는 간단한 SPARQL 쿼리를 사용하고 있습니다 :

String sparqlQueryString = "BASE <http://yago-knowledge.org/resource/>" 
       + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " 
       + "SELECT ?supercat WHERE { " 
       + "<" + child + ">" + " rdf:type ?supercat . " 
       + "}"; 

(어디 자녀 여기 기사입니다) 누군가가 올바른 부모를 얻는 방법을 알고 있다면
그래서 내가 물어보고 싶은게은 그 카테고리. 또한 가능한 경우 또는 기사 및 부모의 모든 제목을 계층 적 사용자 관심 분야 프로필로 주문하는 아이디어가있는 경우.

+0

; SPARQL 쿼리를 구성하거나 * 자식 값이 무엇인지에 따라 다른 것을 만들 수도있는 Java 코드입니다. –

+0

기사가 카테고리가 아니기 때문에 상위 카테고리가 없습니다. 기사가 속한 카테고리를 원한다는 의미입니까? –

+0

그래, 그건 SPARQL 쿼리를 만드는 문자열이지만, 내가 의미하는 바를 알고있다.그리고 네, 기사의 부모 범주를 얻고 싶지만 부모 범주가 많이 생기고 더 나은 결과를 얻을 수 있는지 알고 싶습니다. 단순히 피자와 같은 기사는 "음식"또는 "요리"를 얻습니다. 감사합니다. – paskun

답변

1

당신이 무엇을 요구하고 있는지 명확하지 않습니다. 카테고리는 수퍼 -categories이고 하위 -categories이고 기사는 카테고리에 속하지만 기사에는 부모 카테고리가 없습니다. DBpedia 리소스의 HTML 렌더링을 보면 범주가 dcterms : subject 속성의 값이라는 것을 알 수 있습니다. 주제

  • 카테고리 : 플랫 브레드
  • 카테고리 : Greek_inventions
  • 카테고리 : Italian_cuisine
  • 카테고리 : Italian_inventions
  • 카테고리 : 예, dbpedia:Pizza에, 당신은

    • DCTERMS을 볼 수 있습니다 Mediterranean_cuisine을
    • 카테고리 : Pizz
    • 카테고리 : 당신이 경우 지금

      select ?category { dbpedia:Pizza dcterms:subject ?category } 
      

      SPARQL results

      :

그래서 World_cuisine, 당신은 그 값을 검색하기 위해이 같은 쿼리를 사용할 수 있습니다 카테고리가 있습니다 (예 : category:Flatbreads). 그것의 수퍼 카테고리를 원하면 skos : broader 속성으로 연결되어있는 것을 볼 수 있습니다. 그래서 :

select ?supercategory { category:Flatbreads skos:broader ?supercategory } 
SPARQL 쿼리 아니다

SPARQL results

+0

감사합니다. 그건 조금 도움이됩니다. 그러나 제 문제는 기사가 많아서 각 항목에 대해 의미있는 수퍼 카테고리를 얻고 싶습니다 (자동화 된 방식으로 좋을 것입니다). 그래서 모든 것을 계층 적 트리처럼 만들 수 있습니다. 내가 충분히 명확한 지 모르겠다. 그렇지 않다면 주저하지 마십시오. 그리고 당신의 시간과 당신의 도움에 너무 감사합니다. – paskun

+0

슈퍼 카테고리 란 무엇입니까? 기사는 카테고리에 속하며 카테고리에는 수퍼 카테고리가있을 수 있지만 기사 자체에는 수퍼 카테고리가 없습니다. 여기서 "의미있는"의미는 무엇입니까? Stack Overflow는 특정 기술적 인 질문을하기에 좋은 곳이지만 "의미있는"정의를 실제로 도울 수는 없습니다. 특정 응용 프로그램에 더 많이 묶여 있습니다. "의미있는"을 정량적으로 정의 할 수 있다면 SPARQL 쿼리를 사용하여 검색 할 수 있습니다. –

+0

@paskun 예를 들어 기사 수가 가장 많은 카테고리를 검색 할 수는 있지만 그 의미가 무엇입니까? 어쩌면 일부 카테고리가 도움이되는 것은 아닙니다 (예 : '' ''라는 단어가있는 카테고리가있는 경우 모든 * ''기사가 해당 카테고리에 속합니다). –

관련 문제