"RCCTD(2025)WikiDataQueries"의 두 판 사이의 차이
CNUDH
(→② 당나라 황제의 무덤과 능묘의 이미지, 좌표 찾기) |
(→Person) |
||
| 18번째 줄: | 18번째 줄: | ||
</font> | </font> | ||
<br/><br/> | <br/><br/> | ||
| + | __NOTOC__ | ||
__NOTOC__ | __NOTOC__ | ||
=='''<span style="color:#3CB371">Person</span>'''== | =='''<span style="color:#3CB371">Person</span>'''== | ||
| 115번째 줄: | 116번째 줄: | ||
</big><br/><br/> | </big><br/><br/> | ||
1950년 이후에 제작된 중국(Q148) 국적의 배우가 출연한 영화(Q11424) 또는 TV 시리즈(Q5398426)의 수를 세어, 작품 수가 많은 순서대로 상위 50명의 배우 목록을 버블 차트로 보여달라 | 1950년 이후에 제작된 중국(Q148) 국적의 배우가 출연한 영화(Q11424) 또는 TV 시리즈(Q5398426)의 수를 세어, 작품 수가 많은 순서대로 상위 50명의 배우 목록을 버블 차트로 보여달라 | ||
| − | <br/><br/><br/> | + | <br/><br/> |
| + | |||
| + | <big> | ||
| + | ==='''<span style="color:#3CB371">(시각화)중국 왕조 시기 인물별 거쳐간 왕조 수 집계</span>'''=== | ||
| + | <div style="float:center; background:#3CB371; width:100%; height:2px; text-align:right; padding:2px 2px 2px;"></div><br/> | ||
| + | |||
| + | ①중국 왕조시기 인물중 인물마다 몇 개의 왕조를 거쳤는지를 찾아줘.<br/> | ||
| + | <span style="color:red"><b>SELECT</b></span> <span style="color:green">?person ?personLabel</span> (<span style="color:red"><b>COUNT</b></span>(<span style="color:red"><b>DISTINCT</b></span> <span style="color:green">?dynasty</span>) <span style="color:red"><b>AS</b></span> <span style="color:green">?count</span>)<br/> | ||
| + | <span style="color:red"><b>WHERE</b></span> {<br/> | ||
| + | <span style="color:green">?person</span> <span style="color:blue">wdt:P31</span> <span style="color:blue">wd:Q5</span>. <span style="color:gray"># 인물 (사람)</span><br/> | ||
| + | <span style="color:gray">#국적(P27)이 '중국 왕조(Q12857432)'에 속하는 경우만 찾기</span><br/> | ||
| + | <span style="color:green">?person</span> <span style="color:blue">wdt:P27</span> <span style="color:green">?dynasty</span>.<br/> | ||
| + | <span style="color:green">?dynasty</span> <span style="color:blue">wdt:P31/wdt:P279*</span> <span style="color:blue">wd:Q12857432</span>.<br/> | ||
| + | <span style="color:red">SERVICE</span> <span style="color:blue">wikibase:label { bd:serviceParam wikibase:language</span> <span style="color:orange">"ko,zh,en"</span>. }<br/> | ||
| + | }<br/> | ||
| + | <span style="color:red"><b>GROUP BY</b></span> <span style="color:green">?person ?personLabel</span><br/> | ||
| + | <span style="color:red"><b>ORDER BY DESC</b></span>(<span style="color:green">?count</span>)<br/> | ||
| + | <span style="color:red"><b>LIMIT</b></span> 200 | ||
| + | </big><br/><br/> | ||
| + | |||
| + | <big> | ||
| + | ②어떤 왕조들을 경험했는지 궁금해. 왕조이름도 알고싶어.<br/> | ||
| + | |||
| + | <span style="color:red"><b>SELECT</b></span> <span style="color:green">?person ?personLabel</span> (<span style="color:red"><b>COUNT</b></span>(<span style="color:red"><b>DISTINCT</b></span> <span style="color:green">?dynasty</span>) <span style="color:red"><b>AS</b></span> <span style="color:green">?count</span>) <span style="color:green">?dynastyLabel</span> <span style="color:gray"> #?dynastyLabel을 추가</span><br> | ||
| + | <span style="color:red"><b>WHERE</b></span> {<br> | ||
| + | <span style="color:green">?person</span> <span style="color:blue">wdt:P31</span> <span style="color:blue">wd:Q5</span>. <span style="color:gray"> # 인물 (사람)</span><br> | ||
| + | <span style="color:gray">#국적(P27)이 '중국 왕조(Q12857432)'에 속하는 경우만 찾기</span><br> | ||
| + | <span style="color:green">?person</span> <span style="color:blue">wdt:P27</span> <span style="color:green">?dynasty</span>.<br> | ||
| + | <span style="color:green">?dynasty</span> <span style="color:blue">wdt:P31</span> <span style="color:blue">wd:Q12857432</span>.<br> | ||
| + | <span style="color:red">SERVICE</span> <span style="color:blue">wikibase:label { bd:serviceParam wikibase:language</span> <span style="color:orange">"ko,zh,en"</span>. }<br> | ||
| + | }<br> | ||
| + | <span style="color:red"><b>GROUP BY</b></span> <span style="color:green">?person ?personLabel ?dynastyLabel</span><br> | ||
| + | <span style="color:red"><b>ORDER BY DESC</b></span>(<span style="color:green">?count</span>)<br> | ||
| + | <span style="color:red"><b>LIMIT</b></span> 20 | ||
| + | </big><br><br> | ||
| + | |||
| + | <big> | ||
| + | ③GROUP BY에서 인물과 왕조를 분리해서 왕조값을 따로 표시하고 싶어. | ||
| + | |||
| + | <span style="color:red"><b>SELECT</b></span> <span style="color:green">?person ?personLabel</span> (<span style="color:red"><b>COUNT</b></span>(<span style="color:red"><b>DISTINCT</b></span> <span style="color:green">?dynasty</span>) <span style="color:red"><b>AS</b></span> <span style="color:green">?count</span>) (<span style="color:red"><b>GROUP_CONCAT</b></span>(<span style="color:red"><b>DISTINCT</b></span> <span style="color:green">?dynastyName</span>; separator=<span style="color:orange">", "</span>) <span style="color:red"><b>AS</b></span> <span style="color:green">?dynasties</span>)<br> | ||
| + | <span style="color:red"><b>WHERE</b></span> {<br> | ||
| + | <span style="color:green">?person</span> <span style="color:blue">wdt:P31</span> <span style="color:blue">wd:Q5</span>. <span style="color:gray"># 인물 (사람)</span><br> | ||
| + | <span style="color:gray"> | ||
| + | <span style="color:green">?person</span> <span style="color:blue">wdt:P27</span> <span style="color:green">?dynasty</span>.<br> | ||
| + | <span style="color:green">?dynasty</span> <span style="color:blue">wdt:P31/wdt:P279*</span> <span style="color:blue">wd:Q12857432</span>.<br> | ||
| + | <span style="color:gray"># 왕조 이름 가져오기</span><br> | ||
| + | <span style="color:green">?dynasty</span> <span style="color:blue">rdfs:label</span> <span style="color:green">?dynastyName</span>.<br> | ||
| + | <span style="color:red">SERVICE</span> <span style="color:blue">wikibase:label { bd:serviceParam wikibase:language</span> <span style="color:orange">"ko,zh,en"</span>. }<br> | ||
| + | }<br> | ||
| + | <span style="color:red"><b>GROUP BY</b></span> <span style="color:green">?person ?personLabel</span><br> | ||
| + | <span style="color:red"><b>ORDER BY DESC</b></span>(<span style="color:green">?count</span>)<br> | ||
| + | <span style="color:red"><b>LIMIT</b></span> 20 | ||
| + | </big><br><br> | ||
| + | |||
| + | <big> | ||
| + | ④중국 왕조시기 인물중 인물마다 몇 개의 왕조를 거쳤고, 그 왕조의 이름을 한국어로 정렬해줘. | ||
| + | <span style="color:red"><b>SELECT</b></span> <span style="color:green">?person ?personLabel</span> (<span style="color:red"><b>COUNT</b></span>(<span style="color:red"><b>DISTINCT</b></span> <span style="color:green">?dynasty</span>) <span style="color:red"><b>AS</b></span> <span style="color:green">?count</span>) (<span style="color:red"><b>GROUP_CONCAT</b></span>(<span style="color:red"><b>DISTINCT</b></span> <span style="color:green">?dynastyName</span>; separator=<span style="color:orange">", "</span>) <span style="color:red"><b>AS</b></span> <span style="color:green">?dynasties</span>)<br> | ||
| + | <span style="color:red"><b>WHERE</b></span> {<br> | ||
| + | <span style="color:green">?person</span> <span style="color:blue">wdt:P31</span> <span style="color:blue">wd:Q5</span>.<br> | ||
| + | <span style="color:green">?person</span> <span style="color:blue">wdt:P27</span> <span style="color:green">?dynasty</span>.<br> | ||
| + | <span style="color:green">?dynasty</span> <span style="color:blue">wdt:P31/wdt:P279*</span> <span style="color:blue">wd:Q12857432</span>.<br> | ||
| + | <span style="color:gray"># 언어 필터를 꼭 걸어야 깔끔하게 나옵니다.</span><br> | ||
| + | <span style="color:green">?dynasty</span> <span style="color:blue">rdfs:label</span> <span style="color:green">?dynastyName</span>.<br> | ||
| + | <span style="color:red"><b>FILTER</b></span>(<span style="color:red"><b>LANG</b></span>(<span style="color:green">?dynastyName</span>) = <span style="color:orange">"ko"</span>)<br> | ||
| + | <span style="color:red">SERVICE</span> <span style="color:blue">wikibase:label { bd:serviceParam wikibase:language</span> <span style="color:orange">"ko,zh,en"</span>. }<br> | ||
| + | }<br> | ||
| + | <span style="color:red"><b>GROUP BY</b></span> <span style="color:green">?person ?personLabel</span><br> | ||
| + | <span style="color:red"><b>ORDER BY DESC</b></span>(<span style="color:green">?count</span>) | ||
| + | </big> | ||
=='''<span style="color:#3CB371">Event</span>'''== | =='''<span style="color:#3CB371">Event</span>'''== | ||
2025년 11월 27일 (목) 06:34 판
목차
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 200
②어떤 왕조들을 경험했는지 궁금해. 왕조이름도 알고싶어.
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)
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)을 찾아, 그 이미지들을 이미지 그리드(격자) 뷰로 보여달라
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