위키프로젝트토론:생명체/루아 구현
자동 분류
편집영어 위키백과의 자동 분류를 루아를 써서 흉내내보았습니다. 동물과 그 상위 분류에 대한 정보를 틀:분류군/Animalia와 그 상위에 넣고 모듈:Taxonomy로 읽으면, 생물 분류 틀을 다 흉내낼 수 있습니다. 의견 남겨주세요. -- ChongDae (토론) 2013년 5월 8일 (수) 18:16 (KST)
추가해야 할 기능을 살펴보고 있습니다. 영어 위키백과는 아예 틀의 확장 기능에 전적으로 의지하고 있는데, 루아를 쓴다면 굳이 이렇게 복잡하게 처리할 필요는 없어보입니다.
- 틀에 포함할 변수와 정보에 관한 내용이 확정되어야 합니다. 영어 위키백과에서는 link= 와 {{{2}}} 변수를 이용, "
|link=Animal|Animalia
" 식으로 쓰며, 현재의 {{분류군 자료}}에서는우선 급한대로 "|link = [[동물|동물계]]" 식으로 쓰도록 했습니다. 영어 위키백과와는 달리 라틴어 이름, 위키백과 문서명 외에 한국어 이름이 필요하니, 이를 link=, doc= 식으로 구분할지, 지금처럼 링크를 사용하게 할지 등이 고민입니다. 멸종을 표시하는 "†"나 분류 불확실 등의 정보도 추가해야 하니 괄호로 묶지 않는 방식을 고안해야 할 것 같네요. (en:Template:Automatic taxobox/doc/taxonomy pages) - 일단 "틀:분류군/" 시리즈에서 "en:Template:Taxonomy/Incertae sedis/Viridiplantae"나 en:Template:Taxonomy/Mollusca/?처럼 분류가 불명확한 경우에 대한 확장을 처리해야 합니다. (en:Template:Automatic taxobox/doc/advanced) 루아를 쓰니 parent 문장을 직접 해석해서 처리하면 될 듯 싶습니다.
- 중간 분류군 표시를 제어할 방법에 대한 검토가 필요합니다. 영어 위키백과의 en:Template:Automatic taxobox을 보면 기본적으로 종/속/과/목/강/문/계가 표시되고, 중간 단계인 아목/하목 등이 나타나면 목이 나타날 때까지의 분류를 표시해 줍니다. 그리고 display_parent 기능을 써서 가까운 상위 분류를 몇 단계까지 표시할지 직접 제어하기도 합니다. en:Template:Taxonomy/Homo sapiens sapiens을 보면 사람의 경우 40단계가 넘는 분류군이 있으니 이걸 다 따라가면서 어떤 걸 표시할지 정하는게 간단하지는 않겠습니다. 예컨데 진핵생물역을 모든 종에 표시하는 건 낭비고, 적당한 상위 분류에만 표시하면 될듯 싶네요.
- 그밖에 동음이의 처리 등의 naming convention도 필요합니다. (en:Template:Automatic_taxobox/Conventions#Template_naming_conventions) -- ChongDae (토론) 2013년 5월 9일 (목) 12:45 (KST)
변수(안)
편집|taxon=name of taxon
- 라틴어 분류군 이름입니다. 생략하면 틀 이름에서 자동으로 추출합니다. 예) "| taxon = Animalia"
|rank=rank of taxon
- 분류군 이름을 라틴어로 적습니다. genus/subfamilia/... 예) "| rank = regnum"
|name=display name
|text to display
- 분류군의 한국어 이름입니다. 예) "|name = 동물계"
|link=link target|displayed text
- 분류군에 링크할 문서명입니다. (TODO. 생략할 경우 link 없이 taxon의 문자열을 표시합니다.) 예) "|link = 고양이과"
- 분류군 이름과 문서명이 다를 경우, "문서명|분류군명" 식으로 씁니다. 예) "|link = 동물|동물계". (TODO 위키괄호 형식을 써도 됩니다. "|link = 동물계")
|parent=parent taxon
- 상위 분류군 이름입니다. "틀:분류균/parent" 문서의 정보를 가져옵니다.
- 일반적으로 상위 분류군의 라틴어 이름만 적어주면 됩니다만, 동음이의어 처리나 기타 특수 분류를 위한 구분자가 추가되기도 합니다.
|extinct=yes
- 절멸한 분류군일 경우 추가해줍니다. 자동으로 †를 표시해줍니다.
|always_display=yes
- 언제나 표시할 분류군을 나타냅니다. 기본 분류(계/문/강/목/과/속/종)은 언제나 표시되며, 바로 윗 단계의 분류군(속일 경우 아과)도 표시됩니다. 그러나 종 문서에서 아과는 기본적으로 표시되지 않습니다. 그밖에 stem group이나 Incertae sedis(위치 불명) 계층을 늘 표시하도록 할 수 있습니다.
- 실제 "생물 분류" 틀에서 표시할 분류군을 제어할 수도 있습니다. (TODO..)
|authority=Name, year
- 분류군의 명명자와 명명연도 정보입니다.
|refs=References to list on this taxonomy page
- 분류군에 관한 출처 정보를 적습니다. 일반적으로 문서 본문에서는 표시되지 않습니다. (TODO: 표시 제어)
|same as=Reference taxon name
- 분류군 정보를 부분적으로 수정할 때 쓰입니다. 조강은 분류학상으로 파충강의 하위에 있으나, 그대로 표시하면 모든 새들의 정보에 조강/파충강이 다 표시됩니다. 이런 걸 피할 때 씁니다. (en:Template:Automatic_taxobox/Conventions#.22Dummy.22_taxonomy_templates 참고)
"name" 변수와 "link" 변수명을 어떻게 할지는 아직 고민 중입니다. (korean? ko? doc?) -- ChongDae (토론) 2013년 5월 10일 (금) 12:58 (KST)
- 아. 루아를 쓰고 있다는 걸 잊었습니다. 그냥 link에서 다 해결하고 루아 내에서 파싱해버리면 되겠네요. -- ChongDae (토론) 2013년 5월 10일 (금) 14:53 (KST)
|display_parent=yes
- 부모 분류군을 항상 표시하도록 합니다. (always_display 참고). 중간 분류군이 incertae sedis(불확실)인 경우, 상위 분류군이 항상 표시되는게 유리합니다. (영어 위키백과의 /display 더미 방식을 써도 됩니다만..)
|uncertain_parent=number
- 상위 분류군이 불확실할 경우 사용합니다. 상위 분류군을 표시할 때, 지정된 숫자만큼 상위 분류군 이름에 "(?)"를 표시합니다.
|paraphyly=yes
- 해당 분류군이 측계통군임을 나타냅니다.
토론
편집틀:분류군/Homo sapiens. 대충 동작하는 듯 싶네요. 중간 분류는 적당히 생략하면서 만들었습니다. 위의 기능 중 구현되지 않거나 다른 방식으로 구현하는게 편리한 경우도 있을테니 좀 더 고민해봅시다. -- ChongDae (토론) 2013년 5월 10일 (금) 19:30 (KST)
- 사람에 관한 분류군을 마저 채우고, 늑대(틀:분류군/Canis lupus), 꿩속(틀:분류군/Phasianus), 십자화과(틀:분류군/Brassicaceae)를 시험삼아 구축했습니다. (영어 위키백과의 정보를 그대로 이용했습니다.) 일부 수아강처럼 위치가 애매한 경우가 좀 있더군요. -- ChongDae (토론) 2013년 5월 13일 (월) 12:56 (KST)
포유류 | 사람, 늑대, 캥거루속 |
조류 | 꿩속 |
파충류 | 미시시피악어, 뱀아과, 바다거북속 |
양서류 | 청개구리아과 |
물고기 | 바리과, 상어 |
식물 | 배추속, 미나리과, 대나무족, 소나무속 |
균계 | 광대버섯 |
세균 | 대장균 |
멸종 | 티라노사우루스 |
아종 | H. s. sapiens, D. s. subsp. monticola |
분류군 정보 틀
편집영어 위키백과의 en:Template:Automatic taxobox와 비슷하게 동작하는 틀을 만들었습니다. 당연히(?) 위의 #자동 분류 정보가 있는 종에 대해서만 동작합니다. (아직 시험, 개선중이니 문서에 직접 사용은 말아주시고, 테스트는 언제나 환영입니다.)
기본적으로는 분류군 인자만 주면 됩니다.
{{분류군 정보 |이름=사람 |분류군=Homo sapiens }}
{{분류군 정보 |이름=티라노사우루스 |분류군=Tyrannosaurus }}
표시해야 할 분류군/라틴어 이름 등을 제어할 수 있습니다. 사람에 대해 아문, 아과 정보와 진핵생물(Eukaryota) 정보를 추가하고, 과, 속, 종의 라틴어 이름, 속, 종의 명명자 정보를 표시하게 하려면 아래처럼 하면 됩니다.
{{분류군 정보 |이름=사람 |분류군=Homo sapiens |분류군 표시=subphylum,Eukaryota,subfamilia |라틴어 표시=familia, genus, species |명명 표시=species, Homo }}
분류군/라틴어/명명 표시에서 분류 계급 이름을 써도 되고, 직접 해당 분류군의 라틴어 이름을 써도 됩니다. -- ChongDae (토론) 2013년 5월 14일 (화) 17:37 (KST)
- 아이디어가 좋군요. --A. W. ROLAND ː <RECENT> 2013년 5월 19일 (일) 22:19 (KST)
{{분류군 정보 |이름=사람 |분류군=Homo sapiens |분류군 표시=100 |라틴어 표시=100 |명명 표시=100 }}
분류군 표시 등에서 표시할 상위 분류군 수를 숫자로 줄 수 있습니다. (보통 5-6 단계 정도?) 100처럼 아주 큰 숫자를 준다면 전부 다 표시되겠죠? -- ChongDae (토론) 2013년 5월 20일 (월) 14:43 (KST)
종 정보 틀
편집생명체/루아 구현 | |
---|---|
생물 분류 | |
계: | 동물 |
문: | 척삭동물문 |
강: | 포유강 |
목: | 식육목 |
아목: | 고양이아목 |
과: | 고양이과 |
아과: | 표범아과 |
속: | 표범속 |
종: | 호랑이 |
이명법 | |
Panthera tigris |
{{종 정보}}는 분류군 정보와 달리 속까지는 분류군 자료를 이용하고, 종은 본문 정보를 이용합니다. 예를 들어 호랑이(Panthera tigris)의 경우, 호랑이에 관한 분류군 정보("틀:분류군/Panthera tigris")은 없지만 상위 분류군인 표범속에 대한 정보(틀:분류군/Panthera)은 있습니다. 이 경우, 다음처럼 호랑이를 사용할 수 있습니다. (분류군을 한꺼번에 줘도 되고, 속명/종명을 나눠서 줘도 됩니다. 결과는 같습니다.)
{{종 정보 |이름=호랑이 |분류군=Panthera tigris }} {{종 정보 |이름=호랑이 |속명=Panthera |종명=tigris }}
루아 구현
편집위키백과 해커톤이 열리면 해당 기능을 pure lua로 재구현해봐야겠습니다. -- ChongDae (토론) 2015년 11월 11일 (수) 10:04 (KST)