위키프로젝트토론:생명체/루아 구현

마지막 의견: 8년 전 (ChongDae님) - 주제: 루아 구현

자동 분류

편집

영어 위키백과의 자동 분류를 루아를 써서 흉내내보았습니다. 동물과 그 상위 분류에 대한 정보를 틀:분류군/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와 비슷하게 동작하는 틀을 만들었습니다. 당연히(?) 위의 #자동 분류 정보가 있는 종에 대해서만 동작합니다. (아직 시험, 개선중이니 문서에 직접 사용은 말아주시고, 테스트는 언제나 환영입니다.)

Template:Taxonomy/

기본적으로는 분류군 인자만 주면 됩니다.

{{분류군 정보
|이름=사람
|분류군=Homo sapiens
}}

Template:Taxonomy/

{{분류군 정보
|이름=티라노사우루스
|분류군=Tyrannosaurus
}}

Template:Taxonomy/

표시해야 할 분류군/라틴어 이름 등을 제어할 수 있습니다. 사람에 대해 아문, 아과 정보와 진핵생물(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)답변

"생명체/루아 구현" 문서로 돌아갑니다.