RCCTD(2025)WikiDataQueries
CNUDH
목차
Contents
Person
① 한글 명칭으로 특정 인물(예:마오쩌둥) 찾기
SELECT ?person ?personLabel
WHERE {
?person rdfs:label "마오쩌둥"@ko.
SERVICE wikibase:label { bd:serviceParam wikibase:language
"[AUTO_LANGUAGE],ko,en". }
}
② 기본 정보(생몰년, 출생지)를 포함한 당나라 시대 사람들 찾기
SELECT ?person ?personLabel ?birth ?death ?birthplaceLabel ?occupationLabel
WHERE {
?person wdt:P27 wd:Q9683. # 국적: 당나라
- OPTIONAL { ?person wdt:P569 ?birth. }
- OPTIONAL { ?person wdt:P570 ?death. }
- OPTIONAL { ?person wdt:P19 ?birthplace. }
- OPTIONAL { ?person wdt:P106 ?occupation. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "zh, en". }
}
LIMIT 100
국적이 '당나라'(Q9683)인 인물 100명을 찾아, 그들의 이름, 생년월일, 사망일, 출생지, 직업 정보를 표로 만들어 달라
③ 당나라 국적 인물들의 문학 작품 목록 찾기
SELECT ?person ?personLabel ?bookLabel
WHERE {
- ?person wdt:P27 wd:Q9683 .
- ?book wdt:P31 wd:Q7725634 ;
- wdt:P50 ?person .
- wdt:P50 ?person .
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko, zh, en" . }
}
국적이 ‘당나라’(Q9683)인 인물이 저자인(P50) 문학작품(Q7725634)을 찾아달라
④ 당나라 인물의 출생지 좌표 보기
SELECT ?place ?placeLabel (COUNT(?person) AS ?count) ?location
WHERE {
- ?person wdt:P31 wd:Q5 ;
- wdt:P19 ?place ;
- wdt:P27 wd:Q9683 .
- wdt:P19 ?place ;
- OPTIONAL { ?place wdt:P625 ?location }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko, zh, en" . }
}
GROUP BY ?place ?placeLabel ?location
LIMIT 1000
국적(P27)이 당나라(Q9683) 사람인 사람들의 출생지(P19)와 그 좌표(P625)를 보여달라
⑤ 당나라 인물 중, 시인 아버지를 둔 정치인 아들 찾기
SELECT ?person ?personLabel
WHERE {
- ?person wdt:P27 wd:Q9683 .
- ?person wdt:P22 ?father ;
- wdt:P106 wd:Q82955 .
- wdt:P106 wd:Q82955 .
- ?father wdt:P27 wd:Q9683 .
- ?father wdt:P106 wd:Q49757 .
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko, zh, en" . }
}
당나라(Q9683) 인물 중, 아버지의 직업이 시인(Q49757)이고, 아들의 직업이 정치인(Q82955)인 사람을 보여달라
⑥ 1950년 이후의 드라마와 영화에 가장 많이 출연한 인물 찾기
#defaultView:BubbleChart
SELECT ?person (COUNT(?work) AS ?count) ?personLabel
WHERE {
- VALUES ?type { wd:Q11424 wd:Q5398426 } # ?type 변수는 { } 안에 있는 값이다
- ?work wdt:P31 ?type.
- ?work wdt:P577 ?date.
- FILTER (YEAR(?date) >= 1950) # ?date 변수의 값이 1950 이상인 것만 필터링한다
- ?work wdt:P161 ?person.
- ?person wdt:P27 wd:Q148.
- SERVICE wikibase:label { bd:serviceParam wikibase:language "zh, ko, en". }
- }
- }
GROUP BY ?person ?personLabel # ?person ?personLabel의 값이 동일한 걸로 묶는(그룹화 한)다
ORDER BY DESC(?count)
LIMIT 50
1950년 이후에 제작된 중국(Q148) 국적의 배우가 출연한 영화(Q11424) 또는 TV 시리즈(Q5398426)의 수를 세어, 작품 수가 많은 순서대로 상위 50명의 배우 목록을 버블 차트로 보여달라
(시각화)중국 왕조 시기 인물별 거쳐간 왕조 수 집계
①중국 왕조시기 인물중 인물마다 몇 개의 왕조를 거쳤는지를 찾아줘.
SELECT ?person ?personLabel (COUNT(DISTINCT ?dynasty) AS ?count)
WHERE {
?person wdt:P31 wd:Q5. # 인물 (사람)
#국적(P27)이 '중국 왕조(Q12857432)'에 속하는 경우만 찾기
?person wdt:P27 ?dynasty.
?dynasty wdt:P31/wdt:P279* wd:Q12857432.
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?person ?personLabel
ORDER BY DESC(?count)
LIMIT 20
?dynasty wdt:P31/wdt:P279* wd:Q12857432. 구문의 작동 논리.
이 구문은 "왕조라는 변수(?dynasty)가 중국 왕조에 속하거나, 그게 아닌 경우 중국 왕조의 하위 클래스에 속하는지"를 확인하는 것입니다.
① wdt:P31 : (instance of : 개체 설정). 예시: 당나라는 중국 왕조의 개체다.
② / : (경로 연결). 속성들을 연결하는 연산자로서 언어적으로는 "그리고 나서"의 의미를 지닙니다.
③ wdt:P279 : (subclass of : 하위 클래스 설정). 예시: 중국 남북조 시대 왕조는 중국 왕조의 하위 클래스다.
④ * : (0회 이상 반복). 경로를 0번 또는 그 이상 반복하는 것입니다. 즉, 하위의 모든 클래스에 속하는 개체를 찾는 것입니다. 이 구문에서 만약 별표(*)를 쓰지 않는다면(wdt:P279 wd:Q12857432), 1단계 연결 관계만 확인하고 끝납니다. 즉, 중국 왕조(wd:Q12857432)와 직접 연결된 한 단계 아래 클래스(wdt:P279)의 인스턴스만 찾고 끝내는 것입니다.
예를 들어 wdt:P31/wdt:P279 wd:Q12857432. 와 같은 형식이면 중국 왕조에 해당하는 왕조들(당나라, 송나라 등)만 찾아서 제시하는 것이지만, wdt:P31/wdt:P279* wd:Q12857432. 와 같은 형식이면 중국 왕조에 직접 해당하는 왕조뿐 아니라 중국 왕조의 하위 왕조(예:남북조 왕조)에 해당하는 개체들(예:북위, 동진 등) 및 다시 그 하위 왕조에 해당하는 개체들까지 모두 찾아서 출력하는 것입니다.
②어떤 왕조들을 경험했는지 궁금해. 왕조이름도 알고싶어.
SELECT ?person ?personLabel (COUNT(DISTINCT ?dynasty) AS ?count) ?dynastyLabel #?dynastyLabel을 추가
WHERE {
?person wdt:P31 wd:Q5. # 인물 (사람)
#국적(P27)이 '중국 왕조(Q12857432)'에 속하는 경우만 찾기
?person wdt:P27 ?dynasty.
?dynasty wdt:P31 wd:Q12857432.
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?person ?personLabel ?dynastyLabel
ORDER BY DESC(?count)
LIMIT 20
③GROUP BY에서 인물과 왕조를 분리해서 왕조값을 따로 표시하고 싶어.
SELECT ?person ?personLabel (COUNT(DISTINCT ?dynasty) AS ?count) (GROUP_CONCAT(DISTINCT ?dynastyName; separator=", ") AS ?dynasties)
WHERE {
?person wdt:P31 wd:Q5. # 인물 (사람)
?person wdt:P27 ?dynasty.
?dynasty wdt:P31/wdt:P279* wd:Q12857432.
# 왕조 이름 가져오기
?dynasty rdfs:label ?dynastyName.
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?person ?personLabel
ORDER BY DESC(?count)
LIMIT 20
④중국 왕조시기 인물중 인물마다 몇 개의 왕조를 거쳤고, 그 왕조의 이름을 한국어로 정렬해줘.
SELECT ?person ?personLabel (COUNT(DISTINCT ?dynasty) AS ?count) (GROUP_CONCAT(DISTINCT ?dynastyName; separator=", ") AS ?dynasties)
WHERE {
?person wdt:P31 wd:Q5.
?person wdt:P27 ?dynasty.
?dynasty wdt:P31/wdt:P279* wd:Q12857432.
# 언어 필터를 꼭 걸어야 깔끔하게 나옵니다.
?dynasty rdfs:label ?dynastyName.
FILTER(LANG(?dynastyName) = "ko")
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?person ?personLabel
ORDER BY DESC(?count)
LIMIT 20
(LINE CHART)어느 왕조의 인물이 위키데이터에 가장 많이 기록되어 있는가
SELECT ?dynastyLabel (COUNT(?person) AS ?count)
WHERE {
?person wdt:P31 wd:Q5. # 인물
?person wdt:P27 ?dynasty. # 국적
# 중국 왕조 및 하위 개념 모두 포함
?dynasty wdt:P31/wdt:P279* wd:Q12857432.
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?dynastyLabel
ORDER BY DESC(?count)
(LINE CHART)중국 영화 역대 흥행 수익(Box Office) TOP 20
#defaultView:LineChart
SELECT ?filmLabel ?boxOffice
WHERE {
?film wdt:P31 wd:Q11424; # 인스턴스: 영화
wdt:P495 wd:Q148; # 제작 국가: 중국
wdt:P2142 ?boxOffice. # 속성: 흥행 수익
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
ORDER BY DESC(?boxOffice) # 수익이 높은 순서대로 정렬
LIMIT 20 # 상위 20개만 표시
Event
① 예제 '최근 일어난 사건들'을 활용한 기본적인 쿼리
SELECT ?event ?eventLabel ?date
WHERE {
- ?event wdt:P31/wdt:P279* wd:Q1190554 .
- OPTIONAL { ?event wdt:P585 ?date. } #특정시점
- OPTIONAL { ?event wdt:P582 ?date. } #시작일시
- SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], ko, zh, en" . }
- }
LIMIT 10
위키데이터에 있는 '사건' 유형의 항목을 순서 상관없이 10개 찾아서, '특정 시점(P585)' 또는 '시작일(P580)'이 있다면 함께 보여줘
② 중국에서 발생한 역사적 사건 찾기
SELECT ?event ?eventLabel ?place ?placeLabel
WHERE {
- ?event wdt:P31/wdt:P279* wd:Q1190554 . #역사적 사건 또는 그 하위 개념
- ?event wdt:P276 ?place . #장소(위치)
- ?place wdt:P17 wd:Q148 . #중국에 있는 장소
- SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], ko, zh, en" . }
- }
LIMIT 20
"중국(Q148)에서 발생한 '사건'(Q1190554) 20개와 그 사건이 일어난 구체적인 장소를 보여주세요.
③ 당나라 수도와 시기 찾기
SELECT ?itemLabel ?capitalLabel ?startTime ?endTime
WHERE {
- VALUES ?item { wd:Q9683 }
- OPTIONAL { ?item wdt:P36 ?capital . } #수도
- OPTIONAL { ?item wdt:P580 ?startTime . } #시작일
- OPTIONAL { ?item wdt:P582 ?endTime . } #종료일
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko, zh, en" . }
}
위키데이터 항목 '베이징(wd:Q9683)'을 대상으로, 이 항목에 '수도' 또는 '시작일', '종료일' 정보가 있다면 그 값을 가져와서 이름과 함께 보여주세요.
④ (당나라 시기(618-907) 찾은 후) 당나라 때의 사건만 골라내기
SELECT ?event ?eventLabel ?date
WHERE {
- ?event wdt:P31/wdt:P279* wd:Q1190554 .
- ?event wdt:P585 ?date. #특정 시점이 있는 사건
- FILTER(YEAR(?date) >= 618 && YEAR(?date)<= 907)
- SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], ko, zh, en" . }
}
ORDER BY ASC(?date) #ASC(Ascending/오름차순), DESC(Descending/내림차순)
LIMIT 50
당나라(618-907) 시기의 '특정 시점'을 가진 사건을 날짜순으로 정렬
⑤ 당나라와 관련된 유적·공간 찾아 지도에 그리기
i) 중국과 관련된 유적·공간 찾기
#defaultView:Map
SELECT ?site ?siteLabel ?coord ?heritageLabel
WHERE {
- ?site wdt:P31/wdt:P279* wd:Q839954 ; #고고학 유적지 / 역사적 장소 계열 (예: archaeological site)
- wdt:P17 wd:Q148 ; #중국에 있는
- wdt:P625 ?coord . #좌표가 있는
- wdt:P17 wd:Q148 ; #중국에 있는
- OPTIONAL { ?site wdt:P1435 ?heritage. } #(있다면) 문화재 지정
- SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], ko, zh, en" . }
}
LIMIT 200
ⅱ) 중국내 당나라관련 유적·공간 찾기
#defaultView:Map
SELECT ?site ?siteLabel ?coord ?heritageLabel
WHERE {
- ?site wdt:P31/wdt:P279* wd:Q839954 ; #고고학 유적지 / 역사적 장소 계열 (예: archaeological site)
- wdt:P17 wd:Q148 ; #중국에 있는
- wdt:P625 ?coord ; #좌표가 있는
- wdt:P571 ?inception . #만들어진 시기
- wdt:P17 wd:Q148 ; #중국에 있는
- FILTER( YEAR (?inception) >= 618 && YEAR(?inception) <= 907)
- OPTIONAL { ?site wdt:P1435 ?heritage. } #(있다면) 문화재 지정
- SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], ko, zh, en" . }
}
LIMIT 200
당나라 시기(618년~907년)에 건립된, 중국에 위치한 고고학 유적지 좌표와 문화재 지정 정보를 지도에 보여달라
ⅲ) 당나라와 관련된 유적·공간 찾기
#defaultView:Map
SELECT ?site ?siteLabel ?coord
WHERE {
- ?site wdt:P2348 wd:Q9683 . # ?site의 시간대가 '당나라'
- OPTIONAL { ?site wdt:P625 ?coord .} #좌표가 있는 건 추가
- SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], ko, zh, en" . }
}
LIMIT 200
⑥ 당나라와 관련 사건 타임라인으로 보기
#defaultView:Timeline
SELECT ?event ?eventLabel ?date
WHERE {
- ?event wdt:P31/wdt:P279* wd:Q1190554 ;
- wdt:P585 ?date .
- wdt:P585 ?date .
- FILTER(?date >= "0618-01-01T00:00:00Z"^^xsd:dateTime &&
- ?date < "0908-01-01T00:00:00Z"^^xsd:dateTime)
- ?date < "0908-01-01T00:00:00Z"^^xsd:dateTime)
- SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], ko, zh, en" . }
}
ORDER BY ?date
LIMIT 100
Place
① 중국의 2000m 이상의 산과 봉우리 찾기
#defaultView:Map
SELECT ?mountaintap ?mountaintapLabel ?tapPoint ?altitude
WHERE {
- VALUES ?type { wdt:Q8502 wd:Q207326 }
- ?mountaintap wdt:P31 ?type;
- p:P2044/psn:P2044/wikibase:quantityAmount ?altitude;
- wdt:P17 wd:Q148;
- wdt:P625 ?tapPoint.
- p:P2044/psn:P2044/wikibase:quantityAmount ?altitude;
- FILTER (?altitude >= 2000)
- SERVICE wikibase:label {bd:serviceParam wikibase:language "ko, zh, en".}
- }
중국(Q148)에 있는 '산'(Q8502) 또는 '산맥'(Q207326) 중에서, 해발 고도가 2,000미터 이상인 모든 장소를 찾아 지도에 표시해 달라
② 당나라 인물들의 출생지별 좌표맵 찾기
#defaultView:Map
SELECT ?birthplace ?birthplaceLabel (COUNT(DISTINCT?person)AS ?count ) (SAMPLE (?coordinates) AS ?location)
WHERE {
- ?person wdt:P27 wd:Q9683; #당나라 사람
- wdt:P19 ?birthplace. #출생지
- wdt:P19 ?birthplace. #출생지
- ?birthplace wdt:P625 ?coordinates.
- SERVICE wikibase:label { bd:serviceParam wikibase:language "zh, en". }
}
GROUP BY ?birthplace ?birthplaceLabel
ORDER BY DESC(?count)
LIMIT 100
당나라(Q9683) 사람들의 출생지를 집계하여, 출생지별 인원수가 많은 순서대로 상위 100곳을 지도에 표시해 달라
③ 당나라 인물들의 개별 출생지 좌표맵
#defaultView:Map
SELECT ?person ?personLabel ?birthplace ?birthplaceLabel ?coordinates
WHERE {
- ?person wdt:P27 wd:Q9683; # 당나라 사람
- wdt:P19 ?birthplace. # 출생지
- wdt:P19 ?birthplace. # 출생지
- ?birthplace wdt:P625 ?coordinates.
- SERVICE wikibase:label { bd:serviceParam wikibase:language "zh, en". }
}
LIMIT 100 # 너무 많으면 느려질 수 있으니 100명으로 제한
당나라(Q9683) 사람 100명을 찾아, 각 인물의 출생지를 지도에 표시해 달라
1단계: “중국에도 세계문화유산이 많이 있을까요?”
중국에 유네스코 세계문화유산이 얼마나 다양하게 있는지’ 전체 목록을 알아봅니다.
SELECT ?heritage ?heritageLabel
WHERE {
- ?heritage wdt:P1435 wd:Q9259; # 세계문화유산
- wdt:P17 wd:Q148. # 중국
- wdt:P17 wd:Q148. # 중국
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
ORDER BY ?heritageLabel
"중국에 있는 세계문화유산 목록을 모두 찾아 이름순(가나다순)으로 정렬해서 보여줘."
2단계: “유산들은 어디에 있을까?”
‘그렇다면 중국 내 각 문화유산은 어디에 있을까요?’ 주요 위치(성/시 등)를 추가해 찾아봅니다.
SELECT ?heritage ?heritageLabel ?locationLabel
WHERE {
- ?heritage wdt:P1435 wd:Q9259;
- wdt:P17 wd:Q148.
- wdt:P17 wd:Q148.
- OPTIONAL { ?heritage wdt:P131 ?location. }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
ORDER BY ?heritageLabel
"중국의 세계문화유산 목록과 그 행정구역(위치)을 찾아 이름순으로 나열하되, 위치 정보가 없는 유산도 제외하지 말고(OPTIONAL) 모두 보여줘."
3단계: “중국 지도에서 실제로 볼 수 있을까?”
이제 위 유산들을 중국 지도 위에 표시해서, 위치를 한눈에 파악해봅시다.
#defaultView:Map
SELECT ?heritage ?heritageLabel ?coord
WHERE {
- ?heritage wdt:P1435 wd:Q9259;
- wdt:P17 wd:Q148;
- wdt:P625 ?coord.
- wdt:P17 wd:Q148;
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
"중국의 세계문화유산 중 좌표 정보가 입력된 것들만 찾아 그 이름과 좌표를 보여줘."
4단계: “그 유산들은 각각 언제 만들어졌을까요?”
이 문화유산들은 다 옛날에 만들어졌을까요, 비교적 최근일까요? 생성 혹은 설립 연도를 추가해서 알아봅니다.
SELECT ?heritage ?heritageLabel ?inception
WHERE {
- ?heritage wdt:P1435 wd:Q9259;
- wdt:P17 wd:Q148.
- wdt:P17 wd:Q148.
- OPTIONAL { ?heritage wdt:P571 ?inception. }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
ORDER BY ?inception
"중국의 세계문화유산 목록과 그 건립일(시작일)을 찾아 오래된 순서대로(과거→현재) 정렬하되, 건립일 정보가 없는 유산도 제외하지 말고(OPTIONAL) 모두 보여줘."
5단계: “문화유산의 의미를 조금 더 탐구!”
(1)특정 문화유산(예: 만리장성)이 있다면, 그것과 관련된 인물이 누구인지 찾아 봅니다.
SELECT ?heritage ?heritageLabel ?person ?personLabel
WHERE {
- ?heritage rdfs:label "만리장성"@ko.
- OPTIONAL { ?heritage wdt:P170 ?person. }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
"한국어 이름이 '만리장성'인 항목을 찾아 그 창작자(만든 사람) 정보가 있다면 함께 보여주고, 없더라도 제외하지 말고(OPTIONAL) 보여줘."
(2)특정 문화유산(예: 만리장성)이 있다면, 그것과 관련된 장소가 어디인지 확인해 봅니다.
SELECT ?heritage ?heritageLabel ?location ?locationLabel
WHERE {
- ?heritage rdfs:label "만리장성"@ko.
- OPTIONAL { ?heritage wdt:P131 ?location. }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
"한국어 이름이 '만리장성'인 항목을 찾아 행정구역(위치) 정보가 있다면 함께 보여주고, 없더라도 제외하지 말고(OPTIONAL) 보여줘."
6단계: “문화유산 총정리”(GROUP_CONCAT 활용)
중국의 주요 문화유산 3종(유네스코 세계유산(Q9259), 문화유산(Q210272), 전국중점문물보호단위(Q1188574/historic sites in China))을 찾아 정리해 봅시다.
쿼리(A): 좌표 합치기
SELECT ?heritage ?heritageLabel
- (GROUP_CONCAT(DISTINCT ?coord; SEPARATOR=", ") AS ?coords)
- ?typeLabel ?inscribed ?locationLabel
- (GROUP_CONCAT(DISTINCT ?coord; SEPARATOR=", ") AS ?coords)
WHERE {
- ?heritage wdt:P1435 ?type;
- wdt:P17 wd:Q148.
- wdt:P17 wd:Q148.
- VALUES ?type { wd:Q9259 wd:Q210272 wd:Q1188574 }
- OPTIONAL { ?heritage wdt:P625 ?coord. }
- OPTIONAL { ?heritage wdt:P571 ?inscribed. }
- OPTIONAL { ?heritage wdt:P131 ?location. }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?heritage ?heritageLabel ?typeLabel ?inscribed ?locationLabel
ORDER BY ?typeLabel
"이름·유형·건립일·행정구역이 같은 것끼리 묶어 좌표를 한 칸에 합치고, 이를 유산 유형순으로 정렬해서 보여줘."
쿼리(A-2): 위치 정보까지 묶어서 깔끔하게(심화)
SELECT ?heritage ?heritageLabel
- (GROUP_CONCAT(DISTINCT ?coord; SEPARATOR=", ") AS ?coords)
- ?typeLabel ?inscribed
- (GROUP_CONCAT(DISTINCT ?locationLabel; SEPARATOR=", ") AS ?locationLabels)
- (GROUP_CONCAT(DISTINCT ?coord; SEPARATOR=", ") AS ?coords)
WHERE {
- ?heritage wdt:P1435 ?type;
- wdt:P17 wd:Q148.
- wdt:P17 wd:Q148.
- VALUES ?type { wd:Q9259 wd:Q210272 wd:Q1188574 }
- OPTIONAL { ?heritage wdt:P625 ?coord. }
- OPTIONAL { ?heritage wdt:P571 ?inscribed. }
- # [수정된 부분] 위치 라벨을 직접 가져오는 로직 추가
- OPTIONAL {
- ?heritage wdt:P131 ?location.
- ?location rdfs:label ?locationLabel.
- FILTER(LANG(?locationLabel) = "ko")
- ?heritage wdt:P131 ?location.
- }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?heritage ?heritageLabel ?typeLabel ?inscribed
ORDER BY ?typeLabel
CulturalHeritage
① 유네스코 세계유산에 등재된 중국의 문화재 찾기
#defaultView:ImageGrid
SELECT ?heritage ?heritageLabel (SAMPLE (?location) AS ?Location) (SAMPLE (?image) AS ?Image)
WHERE {
- ?heritage wdt:P1435 wd:Q9259.
- VALUES ?china { wd:Q148 wd:Q29520 }
- ?heritage wdt:P17 ?china;
- wdt:P625 ?location.
- OPTIONAL { ?heritage wdt:P18 ?image. }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "ko, en". }
}
GROUP BY ?heritage ?heritageLabel
중화인민공화국(Q148)과 중화민국(Q29520, 대만)에 있는 모든 유네스코 세계유산(Q9259)을 찾아, 그 이미지들을 이미지 그리드(격자) 뷰로 보여달라
Visualization
이미지 시각화: Image grid
자연어 질의: 국립고궁박물원의 소장품에서 이미지가 있는 것을 모두 가져와서 타일 형태로 배열해서 출력해줘.
#defaultView:ImageGrid
SELECT ?item ?itemLabel ?image
WHERE {
?item wdt:P195 wd:Q540668. #찾을 대상: 국립고궁박물원(Q540668)의 소장품(P195)
?item wdt:P18 ?image. #필수 조건: 이미지가 있는 것만 가져올 것
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en,zh". }
}
LIMIT 50
시공간 시각화: ①Timeline
자연어 질의: 중국에서 일어난 아편전쟁(1차, 2차)을 타임라인 형식으로 출력해줘.
#defaultView:Timeline
SELECT ?war ?warLabel ?start ?end ?image
WHERE {
VALUES ?war { wd:Q191282 wd:Q418151 } #대상 지정: 1차,2차 아편전쟁
?war wdt:P580 ?start; #시작시점
wdt:P582 ?end. #종료시점
OPTIONAL { ?war wdt:P18 ?image. } #이미지가 있으면 배경으로 보여줘
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en". }
}
시공간 시각화: ②Map
자연어 질의: 중국 역사에서 각 왕조의 수도(capital)를 디지털 지도에 매핑해줘.
#defaultView:Map
SELECT ?capital ?capitalLabel ?coord ?dynastyLabel
WHERE {
?dynasty wdt:P31 wd:Q12857432; #중국의 왕조
wdt:P36 ?capital. #왕조의 수도
?capital wdt:P625 ?coord. #수도의 좌표
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh". }
}
통계적 추세 시각화: ①Bar chart
자연어 질의: 중국의 왕조별로 제위에 있었던 황제의 숫자를 바 차트로 출력해줘.
#defaultView:BarChart
SELECT ?dynastyLabel (COUNT(?emperor) AS ?count)
WHERE {
?emperor wdt:P31 wd:Q5; #인간
wdt:P39 wd:Q268218; #직위: 중국의 황제 (P39: position held)
wdt:P27 ?dynasty. #국적: 왕조 (P27: country of citizenship)
?dynasty wdt:P31 wd:Q12857432. #중국의 왕조
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?dynastyLabel
ORDER BY DESC(?count)
LIMIT 30
통계적 추세 시각화: ②Line chart
자연어 질의: 당나라 시대(서기 618년부터 907년까지), 중국의 인물들이 언제 많이 태어났는지 라인 차트로 출력해줘.
#defaultView:LineChart
SELECT ?birthYear (COUNT(?person) AS ?count)
WHERE {
?person wdt:P31 wd:Q5; # 인간
wdt:P27 wd:Q9683; # 국적: 당나라 (Tang dynasty)
wdt:P569 ?birthDate. # 생년월일
BIND(YEAR(?birthDate) AS ?birthYear) # 연도만 추출
FILTER(?birthYear >= 618 && ?birthYear <= 907) # 당나라 시대 필터링 (618-907년)
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?birthYear
ORDER BY ?birthYear
통계적 추세 시각화: ②Line chart 2
자연어 질의: 당나라 시대(서기 618년부터 907년까지), 중국의 인물들이 언제 많이 태어났는지 (10년 단위로) 라인 차트로 출력해줘.
#defaultView:LineChart
SELECT ?decade (COUNT(?person) AS ?count)
WHERE {
?person wdt:P31 wd:Q5;
wdt:P27 wd:Q9683; # 국적: 당나라
wdt:P569 ?birthDate.
BIND(YEAR(?birthDate) AS ?birthYear)
FILTER(?birthYear >= 618 && ?birthYear <= 907)
BIND(FLOOR(?birthYear / 10) * 10 AS ?decade) # 10년 단위로 그룹화 (예: 620, 630, 640...)
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?decade
ORDER BY ?decade
통계적 추세 시각화: ②Line chart 3
자연어 질의: 최근 10년 간의 한국 영화의 개수와 그 영화 중 수상 내역이 있는 영화 개수를 보여줘.
#defaultView:LineChart
SELECT ?year ?count ?sort
WHERE {
{ # [첫 번째 선] 전체 개봉 영화 집계
SELECT ?year (COUNT(DISTINCT ?film) AS ?count) ("전체 개봉작" AS ?sort)
WHERE {
?film wdt:P31 wd:Q11424; # 영화
wdt:P495 wd:Q884; # 한국
wdt:P577 ?date. # 개봉일
FILTER(?date >= "2015-01-01"^^xsd:dateTime && ?date <= NOW())
BIND(STR(YEAR(?date)) AS ?year)
}
GROUP BY ?year
}
UNION
{ # [두 번째 선] 수상 내역이 있는 영화 집계
SELECT ?year (COUNT(DISTINCT ?film) AS ?count) ("수상작" AS ?sort)
WHERE {
?film wdt:P31 wd:Q11424; # 영화
wdt:P495 wd:Q884; # 한국
wdt:P577 ?date. # 개봉일
?film wdt:P166 ?award. # 수상 내역
FILTER(?date >= "2015-01-01"^^xsd:dateTime && ?date <= NOW())
BIND(STR(YEAR(?date)) AS ?year)
}
GROUP BY ?year
}
}
ORDER BY ?year
통계적 추세 시각화: ③Scatter chart
자연어 질의: 청나라 황제를 기준으로, 오래 산 황제가 재위 기간도 길었는지(수명 vs 재위기간) 확인할 수 있게끔 스캐터 차트로 출력해줘.
#defaultView:ScatterChart
SELECT ?age ?reignDuration ?emperorLabel
WHERE {
?emperor wdt:P31 wd:Q5; # 인간
wdt:P27 wd:Q8733; # 국적: 청나라
wdt:P39 wd:Q268218; # 직위: 중국 황제
wdt:P569 ?birth; # 생년월일
wdt:P570 ?death. # 사망일
?emperor p:P39 ?statement.
?statement ps:P39 wd:Q268218;
pq:P580 ?start;
pq:P582 ?end.
BIND(YEAR(?death) - YEAR(?birth) AS ?age)
BIND(YEAR(?end) - YEAR(?start) AS ?reignDuration)
FILTER(?age > 0 && ?reignDuration > 0)
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
통계적 추세 시각화: ④Bubble chart
자연어 질의: 중국에는 어떤 성씨(姓氏)가 얼마나 많은지를 버블 차트로 출력해줘.
#defaultView:BubbleChart
SELECT ?familyLabel (COUNT(?person) AS ?count)
WHERE {
?person wdt:P27 wd:Q29520; #중국 사람
wdt:P734 ?family. #성씨
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh". }
}
GROUP BY ?familyLabel
ORDER BY DESC(?count)
구조와 관계 시각화: ①Tree Map 1
자연어 질의: 당나라 시대 인물들을 직업별로 출력해줘.
#defaultView:TreeMap
SELECT ?occupationLabel ?personLabel
WHERE {
?person wdt:P31 wd:Q5; #인간
wdt:P27 wd:Q9683; #당나라
wdt:P106 ?occupation. #직업
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
LIMIT 500
구조와 관계 시각화: ①Tree Map 2
자연어 질의: 중국 역사에서 다루어지는 큰 사건과 함께 그에 속하는 세부 전투를 출력해줘.
#defaultView:TreeMap
SELECT ?eventLabel ?battleLabel
WHERE {
?battle wdt:P31 wd:Q178561; #전투에 해당한다
wdt:P276/wdt:P17 wd:Q148; #벌어진 장소가 중국이다
wdt:P361 ?event. #사건/전쟁/시대 등에 속한다
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
LIMIT 500
구조와 관계 시각화: ①Tree Map 3
자연어 질의: 운동 종목에 따른 중국 선수들을 출력해줘.
#defaultView:TreeMap
SELECT ?sportLabel ?athleteLabel
WHERE {
?athlete wdt:P31 wd:Q5; #인간에 해당한다
wdt:P27 wd:Q148; #국적이 중국이다
wdt:P106 wd:Q2066131; #직업이 운동 선수다
wdt:P641 ?sport. #해당 운동 종목
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
LIMIT 500
구조와 관계 시각화: ①Tree Map 4
①자연어 질의: 3대 기획사(SM, YG, JYP)의 인물 중 직업이 가수인 사람을 트리맵으로 보여줘.
#defaultView:TreeMap
SELECT ?agencyLabel ?singerLabel
WHERE {
{
?singer wdt:P31 wd:Q5;
wdt:P106 wd:Q177220;
wdt:P264 wd:Q483938. # SM 엔터테인먼트
BIND("SM" AS ?agencyLabel) # SM 출력
}
UNION
{
?singer wdt:P31 wd:Q5;
wdt:P106 wd:Q177220;
wdt:P264 wd:Q50595. # YG 엔터테인먼트
BIND("YG" AS ?agencyLabel) # YG 출력
}
UNION
{
?singer wdt:P31 wd:Q5;
wdt:P106 wd:Q177220;
wdt:P264 wd:Q483238. # JYP 엔터테인먼트
BIND("JYP" AS ?agencyLabel) # JYP 출력
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko". }
}
②자연어 질의: 3대 스마트폰 제조사(Apple, Samsung, Xiaomi)의 제품을 트리맵으로 보여줘.
#defaultView:TreeMap
SELECT ?companyLabel ?productLabel
WHERE {
{
?product wdt:P176 wd:Q312 . # 제조사: 애플
BIND("Apple" AS ?companyLabel) # Apple 출력
}
UNION
{
?product wdt:P176 wd:Q20718 . # 제조사: 삼성전자
BIND("Samsung" AS ?companyLabel) # Samsung 출력
}
UNION
{
?product wdt:P176 wd:Q1636958 . # 제조사: 샤오미
BIND("Xiaomi" AS ?companyLabel) # Xiaomi 출력
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en". }
}
③자연어 질의: 국가 및 상 종류별 노벨상 수상자 수를 집계하여 내림차순으로 보여줘.
SELECT ?countryLabel ?awardLabel (COUNT(?person) as ?count)
WHERE {
?person wdt:P31 wd:Q5 .
?person wdt:P166 ?award .
?award wdt:P279* wd:Q7191 . # 노벨상(wd:Q38104 노벨 물리학상/wd:Q44585 노벨 화학상/wd:Q37922 노벨 문학상/wd:Q35637 노벨 평화상/wd:Q80061 노벨 생리학·의학상/wd:Q47170 노벨 경제학상)
?person wdt:P27 ?country .
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
GROUP BY ?countryLabel ?awardLabel
ORDER BY DESC(?count)
구조와 관계 시각화: ②Graph 1
자연어 질의: 마오쩌둥의 가족 관계를 출력해줘.
#defaultView:Graph
SELECT ?person1 ?person1Label ?person2 ?person2Label ?relationshipType
WHERE {
{ #마오쩌둥 중심의 가족 구성하기
BIND(wd:Q5816 AS ?person1) #마오쩌둥을 ?person1 이라는 변수에 고정시킨다.
{
wd:Q5816 wdt:P26 ?person2. #마오쩌둥의 배우자(P26)는 누구(?person2)?
BIND ("배우자" AS ?relationshipType) #그 관계의 이름표는 "배우자"라고 하자.
}
UNION
{
wd:Q5816 wdt:P40 ?person2. #마오쩌둥의 자녀(P40)는 누구(?person2)?
BIND ("자녀" AS ?relationshipType) #그 관계의 이름표는 "자녀"라고 하자.
}
UNION
{
?person2 wdt:P40 wd:Q5816. #누구의 자녀(P40)가 마오쩌둥인가?
BIND ("부모" AS ?relationshipType) #그 관계의 이름표는 "부모"라고 하자.
}
UNION
{
wd:Q5816 wdt:P3373 ?person2. #마오쩌둥의 형제자매(P3373)는 누구(?person2)?
BIND ("형제" AS ?relationshipType) #그 관계의 이름표는 "형제"라고 하자.
}
}
UNION
{ #며느리/사위 찾기
wd:Q5816 wdt:P40 ?person1. #마오쩌둥의 자녀를 찾아서 ?person1에 넣고,
?person1 wdt:P26 ?person2. #그 자녀(?person1)의 배우자를 ?person2라고 하자.
BIND("배우자" AS ?relationshipType) #그 관계의 이름표는 "배우자"라고 하자.
}
UNION
{ #손자/손녀 찾기
wd:Q5816 wdt:P40 ?person1. #마오쩌둥의 자녀(?person1)를 찾고,
?person1 wdt:P40 ?person2. #그 자녀가 낳은 자녀(?person2)를 찾아라.
BIND("자녀" AS ?relationshipType) #그 관계의 이름표는 "자녀"라고 하자.
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
구조와 관계 시각화: ②Graph 2
자연어 질의: 중국의 철학자와 그에게 영향을 준 철학자를 출력해줘.
#defaultView:Graph
SELECT ?scholar ?scholarLabel ?influencedBy ?influencedByLabel
WHERE {
?scholar wdt:P106 wd:Q4964182; #직업이 철학자다
wdt:P27 wd:Q148; #국적이 중국이다
wdt:P737 ?influencedBy. #-로부터 영향을 받았다
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
LIMIT 500
구조와 관계 시각화: ②Graph 3
①자연어 질의: 조선 왕의 가족 관계를 그래프로 보여줘.
#defaultView:Graph
SELECT ?king ?kingLabel ?family ?familyLabel
WHERE {
?king wdt:P97 wd:Q12097; # 직위: 왕
wdt:P27 wd:Q28179. # 나라: 조선
VALUES ?relation { # 관계 속성을 하나의 변수에 담음
wdt:P22 # 아버지
wdt:P25 # 어머니
wdt:P26 # 배우자
wdt:P3373 # 형제자매
}
?king ?relation ?family.
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko". }
}
②자연어 질의: 2025년에 공개된 한국 영화·드라마의 출연진 네트워크를 그래프로 보여줘.
#defaultView:Graph
SELECT ?work ?workLabel ?actor ?actorLabel
WHERE {
?work wdt:P161 ?actor; # cast member
wdt:P495 wd:Q884; # country of origin: 대한민국
wdt:P577 ?pubDate. # publication / release date
FILTER( YEAR(?pubDate) = 2025 ) # 2025년에 공개된 작품만
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en". }
}
구조와 관계 시각화: ③Dimentions 1
자연어 질의: 1,900년에서 2,000년 사이에 태어난 현대 중국인 100명을 대상으로, 그들의 '직업', '출생 연도', '수명(또는 현재 나이)', 그리고 '경력 시작 연도' 사이에는 어떤 연결 고리나 패턴을 보이는지 출력해줘.
#defaultView:Dimensions
SELECT ?personLabel ?occupationLabel ?birthYear ?deathYear ?age ?careerStart
WHERE {
?person wdt:P31 wd:Q5; #인간에 속해야 한다
wdt:P27 wd:Q148; #국적이 중국이다
wdt:P569 ?birth; #언제 태어나서...
wdt:P106 ?occupation. #어떤 직업을 가지고 있는데...
OPTIONAL { ?person wdt:P570 ?death. } #모든 인물이 사망날짜 정보를 가지고 있는 것은 아니다...
OPTIONAL { ?person wdt:P2031 ?careerStartDate. } #모든 인물이 경력 시작일을 가지고 있는 것은 아니다...
BIND(YEAR(?birth) AS ?birthYear) #출생연도 추출하기
BIND(YEAR(?death) AS ?deathYear) #사망연도 추출하기
BIND(COALESCE(?deathYear, 2024) - ?birthYear AS ?age) #만약 사망 연도(?deathYear)가 있으면 쓰고, 없으면(아직 살아있으면) 2024년을 대신 써라.
BIND(YEAR(?careerStartDate) AS ?careerStart) #경력출발시점 추출하기
FILTER(?birthYear >= 1900 && ?birthYear <= 2000) #20세기 현대 인물 대상
FILTER(?age > 0)
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
LIMIT 100
구조와 관계 시각화: ③Dimentions 2
자연어 질의: 중국 황제들의 생존 및 재위 시점을 확인하고, 그 기간을 계산해서 출력해줘. (100명 한정)
#defaultView:Dimensions
SELECT ?personLabel ?birthYear ?reignStart ?reignEnd ?age ?reignDuration
WHERE {
#누구를 찾을까(기본 조건)
?person wdt:P31 wd:Q5; #인간에 속해야 한다
wdt:P39 wd:Q268218; #중국 황제의 직위여야 한다
wdt:P569 ?birth; #생년월일이다
wdt:P570 ?death. #사망월일이다
#재위기간 설정(심화 조건)
#세 가지 요소(p, ps, pq)는 단순한 사실(Fact)을 넘어선 구체적 정보(Detail)를 캘 때 사용하는 구문.
#p는 Property. 특정한 아이템과 구체적 정보가 담긴 진술(Statement) 덩어리를 연결함.
#ps는 Property Statement. 진술 덩어리 중에서 핵심 정보 즉, 가장 중요한 값(Main Value)을 가리킴.
#pq는 Property Qualifier. 핵심 정보 옆에 붙은 부가적인 정보 즉, 수식어(Qualifier)를 가리킴.
?person p:P39 ?statement.
?statement ps:P39 wd:Q268218;
pq:P580 ?start; #재위시작 시점이다
pq:P582 ?end. #재위종료 시점이다
#새로운 변수(위키 데이터에 없던 정보)로서 연도 정보 정리(연산 처리): 연도(year) 추출하기
BIND(YEAR(?birth) AS ?birthYear)
BIND(YEAR(?start) AS ?reignStart)
BIND(YEAR(?end) AS ?reignEnd)
#새로운 변수(위키 데이터에 없던 정보)로서 연도 정보 정리(연산 처리): 생존 및 재위 기간 계산하기
BIND(YEAR(?death) - YEAR(?birth) AS ?age)
BIND(YEAR(?end) - YEAR(?start) AS ?reignDuration)
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
LIMIT 100
구조와 관계 시각화: ③Dimentions 3
자연어 질의: 청나라 황제들을 대상으로 ①즉위 나이, ② 재위 기간, ③사망 나이, 이 3가지 요소가 서로 어떤 연관이 있는지 출력해줘.
#defaultView:Dimensions
SELECT ?emperorLabel ?enthronementAge ?reignDuration ?deathAge
WHERE {
#누구를 찾을까(기본 조건)
?emperor wdt:P31 wd:Q5; #구문 설명
wdt:P39 wd:Q268218; #구문 설명
wdt:P27 wd:Q8733; #구문 설명
wdt:P569 ?birth; #구문 설명
wdt:P570 ?death. #구문 설명
#(심화 조건)
?emperor p:P39 ?statement.
?statement ps:P39 wd:Q268218;
pq:P580 ?start;
pq:P582 ?end.
#새로운 변수(위키 데이터에 없던 정보)로서 연도 정보 정리(연산 처리): 연도(year) 추출하기
#새로운 변수(위키 데이터에 없던 정보)로서 연도 정보 정리(연산 처리): 생존 및 재위 기간 계산하기
BIND(YEAR(?birth) AS ?birthYear)
BIND(YEAR(?start) - YEAR(?birth) AS ?enthronementAge) #즉위 나이는...?
BIND(YEAR(?end) - YEAR(?start) AS ?reignDuration) #재위 기간은...?
BIND(YEAR(?death) - YEAR(?birth) AS ?deathAge) #수명은...?
FILTER(?deathAge > 0)
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,zh,en". }
}
구조와 관계 시각화: ③Dimentions 4
①자연어 질의: 유재석과 함께 TV프로그램에 출연한 출연진을 디멘션으로 보여줘.
#defaultView:Dimensions
SELECT DISTINCT ?mcyooLabel ?whoLabel ?jeasuk_showLabel
WHERE {
VALUES ?mcyoo { wd:Q485905 }
VALUES ?ch_list { wd:Q15416 wd:Q5398426 wd:Q336181 } # 텔레비전 프로그램, 텔레비전 시리즈, 버라이어티 쇼
?jeasuk_show wdt:P31 ?ch_list ;
wdt:P161 ?mcyoo .
?jeasuk_show wdt:P161 ?who .
FILTER (?who != ?mcyoo) # '!='는 '아니다' 기호
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko". }
}
②자연어 질의: 세계의 초고층 빌딩들을 대상으로, 각 빌딩의 높이, 지상 층수, 공식 개장 연도를 디멘션으로 비교해서 보여줘.
#defaultView:Dimensions
SELECT ?buildingLabel ?height ?floors ?openyear
WHERE {
?building wdt:P31 wd:Q11303. # 초고층 빌딩
?building wdt:P2048 ?height; # 높이
wdt:P1101 ?floors. # 지상 층수
?building wdt:P1619 ?opened. # 개장 연도
BIND( YEAR(?opened) AS ?openyear )
FILTER( ?height >= 400 )
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en". }
}
LIMIT 50
Combination
① 당나라 시인과 그의 대표작 찾기
SELECT ?poet ?poetLabel ?work ?workLabel
WHERE {
- ?poet wdt:P27 wd:Q9683;
- wdt:P106 wd:Q49757.
- OPTIONAL { ?poet wdt:P800 ?work. }
- SERVICE wikibase:label { bd:serviceParam wikibase:language "zh,en". }
}
LIMIT 50