MorPHP 형태 규칙 서술 언어

MorPHP는 형태 규칙을 서술하기 위한 기술 언어입니다. 이 언어는 다음 네 가지 원칙에 따라 설계되었습니다.

  1. 간결성
  2. 명확성(모호하지 않아야 함)
  3. 가독성(사람이 이해하기 쉬워야 함)
  4. 효율성(컴퓨터로 해석이 용이해야 함)

또한 다양한 언어들의 형태 규칙을 서술할 수 있도록 범용성을 가지는 것이 목표입니다. 현재는 일반적인 굴절어와 교착어 계통의 형태 규칙을 서술할 수 있으며, 앞으로 형판형태이론을 비롯한 다양한 형태 규칙을 지원하여 더 많은 언어를 서술할 수 있도록 할 예정입니다. 아래는 MorPHP 형태 규칙 서술 언어로 작성된 라틴어 명사 곡용 예제입니다.

 

/* 라틴어 명사 곡용 규칙 */

 

// 언어 자질 정의

[Gender] := [mas, fem, neu]
[Number] := [sng, plr]
[Case] := [nom, gen, dat, acc, abl, voc]
[NClass] := [n1, n2, n3, n3i, n4, n5, ng1, ng2, ng4, ng5]
[Clitic] := [noclitic, and, or, rog]

 

// 명사 규칙 정의
<<Noun>> := <*NStem> <Ending> <Clitics>;

 

// 어근 형태소 패턴 정의

<*NStem> := {
    morph nominative '' [sng, nom|voc, mas|fem] [sng, nom|voc|acc, neu],
    morph genitive '' [sng, gen|dat|acc|abl, mas|fem] [sng, gen|dat|abl, neu] [plr]
}

 

// 어미 형태소 패턴 정의

<Ending> := {
    morph 'a' [n1, sng, nom|voc],
    morph 'ae' [n1, sng, gen|dat] [n1, plr, nom|voc],
    morph 'am' [n1, sng, acc],
    morph 'a:' [n1, sng, abl],
    morph 'a:rum' [n1, plr, gen],
    morph 'i:s' [n1|n2, plr, dat|abl],
    morph 'a:s' [n1, plr, acc],
    morph 'us' [n2|n4, sng, nom, mas|fem] [n4, sng, voc],
    morph 'i:' [n2, sng, gen] [n2, plr, nom|voc, mas|fem],
    morph 'o:' [n2, sng, dat|abl],
    morph 'um' [n2|n4, sng, acc, mas|fem] [n2, sng, nom|voc|acc, neu],
    morph 'e' [n2, sng, voc, mas|fem],
    morph 'o:rum' [n2, plr, gen],
    morph 'o:s' [n2, plr, acc, mas|fem],
    morph 'a' [n2|n3, plr, nom|voc|acc, neu],
    morph '' [n3|n3i, sng, nom|voc, mas|fem] [n3|n3i, sng, nom|voc|acc, neu],
    morph 'is' [n3|n3i, sng, gen],
    morph 'i:' [n3|n3i, sng, dat],
    morph 'em' [n3|n3i, sng, acc],
    morph 'e' [n3|n3i, sng, abl],
    morph 'e:s' [n3|n3i, plr, nom|voc|acc],
    morph 'um' [n3, plr, gen],
    morph 'ium' [n3i, plr, gen],
    morph 'ia' [n3i, plr, nom|voc|acc, neu],
    morph 'ibus' [n3|n3i|n4, plr, dat|abl],
    morph 'u:s' [n4, sng, gen] [n4, plr, nom|voc|acc, mas|fem],
    morph 'ui:' [n4, sng, dat],
    morph 'u:' [n4, sng, abl, mas|fem] [n4, sng, neu],
    morph 'uum' [n4, plr, gen],
    morph 'ua' [n4, plr, nom|voc|acc, neu],
    morph 'e:s' [n5, sng, nom|voc] [n5, plr, nom|voc|acc],
    morph 'ei:' [n5, sng, gen|dat],
    morph 'em' [n5, sng, acc],
    morph 'e:' [n5, sng, abl],
    morph 'e:rum' [n5, plr, gen],
    morph 'e:bus' [n5, plr, dat|abl]
}

 

// 접어 형태소 패턴 정의

<Clitics> := {
    empty [],
    morph 'que' [and],
    morph 've' [or],
    morph 'ne' [rog]
}

 

 

SEARCH

MENU NAVIGATION