일단 .cdic format 0.2의 형태를 분석해 보겠습니다.
이딴 식으로 해 놓으니 좀 정신이 없기는 합니다만, 일단 설명해 보겠습니다.
ConlangDictionary 0.2에서 지원하는 데이터는 두 가지입니다.
하나는 음소이고, 하나는 단어입니다.
그리고 이것이 .cdic 포맷에서 그대로 드러납니다.
빈 줄을 사이에 두고 위쪽은 음소, 아래쪽은 단어입니다.
1. 음소 부분
음성 기호들 사이에는 공백이 들어갈 필요도 없고, 프로그램에서 미리 지워 버립니다.
음소들이 맨 앞에 들어간 후에는 30h 공백을 두 개 넣고 음소를 표기하는 문자를 적습니다.
하나의 음성을 표기하는 데 두 개 이상의 문자가 들어갈 수 있으므로,
각각의 문자는 30h 공백 하나로 구분합니다.
이들 다음에 30h 공백 두 개가 들어가고, 라인 끝까지 이 음소와 문자에 관한 설명이 들어갑니다.
2. 단어 부분
단어는 음성이 아닌 문자로 표기됩니다.
이 때 위에서 등록한 음소-문자 규칙에 따라 저절로 단어의 음성을 생성해 주며,
체크박스를 해제하면 음소-문자 규칙을 어기는 단어를 만들 수도 있습니다.
단어의 표기와 발음 다음에는 단어의 분류가 나옵니다. 대개는 품사를 분류합니다.
단어 분류는 type-subtype으로 이루어지며 각각은 '...'으로 구분됩니다.
단어 분류 다음에는 라인 끝까지 이 단어에 관한 설명이 들어갑니다.
설명을 보는 것보다 이 포맷을 한 번 만들어 해 보는 게 좋지만,
약간 쉬운 방법으로는,
다른 사람이 만들어 놓은 시각 자료를 활용하는 것이 있습니다.-_-;;
빠진 것이 하나 있는데, 설명 부분에서 줄바꿈은 ';;'로 들어간다는 사실입니다.
(프로그램에서 ';;'라고 입력해도 나중에 열 때 줄바꿈이 됩니다.)
다음 글에서는 변환 xml 규격과 이를 받을 dtd를 공개하겠습니다.
{음소, 공백 없음} <SP><SP> [(스펠링)[<SP>(스펠링)]*] <SP><SP> {설명}
{음소, 공백 없음} <SP><SP> [(스펠링)[<SP>(스펠링)]*] <SP><SP> {설명}
....[위의 형식 반복]
[빈 줄]
{단어 표기} '[' [(음소)[<SP>(음소)]*] ']' '(' {어형} '...' {하위 어형} ')' {설명}
{단어 표기} '[' [(음소)[<SP>(음소)]*] ']' '(' {어형} '...' {하위 어형} ')' {설명}
...[위의 형식 반복]
[빈 줄]
이딴 식으로 해 놓으니 좀 정신이 없기는 합니다만, 일단 설명해 보겠습니다.
ConlangDictionary 0.2에서 지원하는 데이터는 두 가지입니다.
하나는 음소이고, 하나는 단어입니다.
그리고 이것이 .cdic 포맷에서 그대로 드러납니다.
빈 줄을 사이에 두고 위쪽은 음소, 아래쪽은 단어입니다.
1. 음소 부분
음성 기호들 사이에는 공백이 들어갈 필요도 없고, 프로그램에서 미리 지워 버립니다.
음소들이 맨 앞에 들어간 후에는 30h 공백을 두 개 넣고 음소를 표기하는 문자를 적습니다.
하나의 음성을 표기하는 데 두 개 이상의 문자가 들어갈 수 있으므로,
각각의 문자는 30h 공백 하나로 구분합니다.
이들 다음에 30h 공백 두 개가 들어가고, 라인 끝까지 이 음소와 문자에 관한 설명이 들어갑니다.
2. 단어 부분
단어는 음성이 아닌 문자로 표기됩니다.
이 때 위에서 등록한 음소-문자 규칙에 따라 저절로 단어의 음성을 생성해 주며,
체크박스를 해제하면 음소-문자 규칙을 어기는 단어를 만들 수도 있습니다.
단어의 표기와 발음 다음에는 단어의 분류가 나옵니다. 대개는 품사를 분류합니다.
단어 분류는 type-subtype으로 이루어지며 각각은 '...'으로 구분됩니다.
단어 분류 다음에는 라인 끝까지 이 단어에 관한 설명이 들어갑니다.
설명을 보는 것보다 이 포맷을 한 번 만들어 해 보는 게 좋지만,
약간 쉬운 방법으로는,
다른 사람이 만들어 놓은 시각 자료를 활용하는 것이 있습니다.-_-;;
빠진 것이 하나 있는데, 설명 부분에서 줄바꿈은 ';;'로 들어간다는 사실입니다.
(프로그램에서 ';;'라고 입력해도 나중에 열 때 줄바꿈이 됩니다.)
다음 글에서는 변환 xml 규격과 이를 받을 dtd를 공개하겠습니다.