Wikidata Query Service에 SPARQL 문의
12836 단어 linkeddatardfSPARQL
Wikidata Query Service(Beta)에 대한 SPARQL 컨설팅
위키백과
Wikidata는 위키백과 프로젝트 중 하나로 커뮤니티 데이터의 위키백과죠.데이터는 세 그룹으로 나뉘어 링크드 데이터로 다른 서비스의 URI에 연결할 수 있습니다.최근 SPARQL의 최종 지점이 공개되었습니다.
DBpedia 위키백과 기계에서 추출하여 제작한 RDF 데이터
Wikidata는 커뮤니티에 기술된 Linke Data라는 점이 다르다는 것을 인식합니다.
(이상한 해석이라면 댓글로 남겨주세요
Wikidata Query Service에는 SPARQL 엔드포인트가 공개되어 있습니다.
화면 오른쪽 상단에 있는 "Examples"에서 많은 샘플을 시험적으로 사용할 수 있습니다.
SPARQL
Examples 등을 참고해 이번에 써 본 검색어는 다음과 같다.PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
select ?movie ?jalabel ?enlabel
where {
?movie p:P57 ?directorStatement . # director
?directorStatement ps:P57 wd:Q38222 .
?movie p:P179 ?seriesStatement . # series
?seriesStatement ps:P179 wd:Q462 .
?movie rdfs:label ?jalabel filter (lang(?jalabel) = "ja") .
?movie rdfs:label ?enlabel filter (lang(?enlabel) = "en") .
}
이 조회는 영화 ID, 일본어 라벨, 영어 라벨을 얻을 수 있습니다.영화의 조건은요.
Examples 등을 참고해 이번에 써 본 검색어는 다음과 같다.
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
select ?movie ?jalabel ?enlabel
where {
?movie p:P57 ?directorStatement . # director
?directorStatement ps:P57 wd:Q38222 .
?movie p:P179 ?seriesStatement . # series
?seriesStatement ps:P179 wd:Q462 .
?movie rdfs:label ?jalabel filter (lang(?jalabel) = "ja") .
?movie rdfs:label ?enlabel filter (lang(?enlabel) = "en") .
}
이 조회는 영화 ID, 일본어 라벨, 영어 라벨을 얻을 수 있습니다.영화의 조건은요.이런 영화.
'George Lucas 감독의 스타워스 시리즈 영화 ID와 일본어 제목, 영어 제목'을 조회받은 것이다.
질의의 Predicate, Object는 각각 다음과 같습니다.URI를 보면 대충 어떤 자원인지 알 수 있으면 좋겠지만 연번이면 어려워요.
?movie
?jalabel
?enlabel
wd:Q181069
스타워즈2:클론의 공격
Star Wars Episode II: Attack of the Clones
wd:Q165713
스타워즈 1/환영 미나스
Star Wars Episode I: The Phantom Menace
wd:Q17738
스타워즈 4/새로운 희망
Star Wars Episode IV: A New Hope
wd:Q42051
스타워즈 3:시스의 복수
Star Wars Episode III: Revenge of the Sith
작은 곳이라면 직접 쓰고 싶다
?movie p:P57 wd:Q38222 .
propertystatementps:
를 거치지 않으면 안 될 것 같습니다.따라서 경유
?directorStatement
,?seriesStatement
로 관계를 기술했다.(왜 이런 구조가 생겼는지 누가 나에게 알려줄 수 있습니까?)
그나저나 조지루카스가 아닌 감독의 작품명과 감독 이름은 아래 조회를 통해 확인할 수 있다.
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
select ?movie ?jalabel ?enlabel ?directorName
where {
?movie p:P57 ?directorStatement . # director
minus { ?directorStatement ps:P57 wd:Q38222 . } # not George Lucas
?directorStatement ps:P57 ?director .
?director rdfs:label ?directorName filter (lang(?directorName) = "en") .
?movie p:P179 ?seriesStatement . # series
?seriesStatement ps:P179 wd:Q462 .
?movie rdfs:label ?jalabel filter (lang(?jalabel) = "ja") .
?movie rdfs:label ?enlabel filter (lang(?enlabel) = "en") .
}
minus
SPARQL1.1에서 입력한 것으로 보입니다.이 결과는 아래와 같다.?movie
?jalabel
?enlabel
?directorName
wd:Q181803
스타워즈
Star Wars Episode VI: Return of the Jedi
Richard Marquand
wd:Q6074
스타워즈
Star Wars: The Force Awakens
J. J. Abrams
wd:Q181795
스타워즈 5/제국의 반격
The Empire Strikes Back
Irvin Kershner
일화 7의 제목인'force의 각성'이 없기 때문에 나는 위키백과처럼 편집하고 싶다(->간단하게 수정했다).
총결산 혹은 소감
대학·대학원에서 링크드 데이터(RDF)를 연구하기 때문에 SPARQL을 쓰는 것은 이번이 처음이 아니다
졸업 후 약 2년 만에 썼기 때문에 시간이 많이 걸렸다.
Wikidata의 끝점은 일반 Virtoso의 SPARQL 끝점보다 사용하기 쉽습니다.
위키데이터와 DBpedia는 다릅니까?(기계적으로 추출하지 않았다는 뜻) 사람이 유지하는 데이터처럼 보이니까.
Predicate를 낭비하지 않고 많이 붙인 인상.
참고 자료
What is the difference between Wikidata and DBpedia?
Reference
이 문제에 관하여(Wikidata Query Service에 SPARQL 문의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/inohiro/items/df3e9607e90e88e126ba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)