;;; -*- Mode: LISP; Syntax: Common-lisp; Package: ALEMBIC ; Base: 10 -*- (in-package "ALEMBIC") (notice "Copyright the MITRE Corporation 1997-1998. All rights reserved.") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Chinese suffix, prefix and affix predicates. ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar *zh-name-final-chars* '(;; common Japanese Persname ending "Ì«ÀÉ" ;; Meyer? ;; ÷ÈÕ "°¢" "°£" "°²" "°º" "°Â" "°Í" "°×" "°Ý" "°à" "°î" "±¤" "±«" "±´" "±¾" "±È" "±Ï" "±ö" "²¨" "²©" "²ª" "²®" "²·" "²¼" "²É" "²ß" "²é" "²ì" "²î" "³¹" "´Ä" "´ï" "´ó" "´÷" "´ú" "µ¤" "µ±" "µÀ" "µÂ" "µÃ" "µÇ" "µÏ" "µÐ" "µÙ" "µÚ" "µØ" "¶¡" "¶«" "¶¼" "¶Å" "¶Ö" "¶Ø" "¶Ù" "¶à" "¶ò" "¶÷" "¶ú" "¶û" "·¨" "·²" "·¶" "·½" "·Æ" "·Ñ" "·Ò" "·á" "·ë" "·ð" "·ò" "¸£" "¸¥" "¸»" "¸Ç" "¸Ô" "¸ß" "¸ç" "¸ê" "¸ñ" "¸÷" "¸ù" "¹±" "¹Å" "¹ç" "¹û" "¹þ" "º£" "º²" "ºº" "ºÀ" "ºÕ" "ºÚ" "ºà" "ºé" "»ª" "»Ý" "»ô" "»ù" "¼ª" "¼¾" "¼Î" "¼Ó" "¼Ö" "¼ò" "½ª" "½Ü" "½ð" "½ñ" "½ò" "¿¡" "¿¨" "¿­" "¿²" "¿µ" "¿¼" "¿Æ" "¿Ë" "¿Ï" "¿â" "¿ä" "À¤" "À¥" "À­" "À°" "À³" "Àµ" "À¼" "ÀÊ" "ÀÍ" "ÀÕ" "ÀÖ" "À×" "Àè" "Àî" "Àï" "Àñ" "Àò" "Àö" "Àû" "Á«" "Á®" "Á¼" "ÁÐ" "ÁÒ" "ÁÕ" "ÁÖ" "Áõ" "Áø" "Áú" "¡" "¬" "³" "ÂÔ" "Â×" "ÂÞ" "Âå" "Âê" "Âí" "Âõ" "Âü" "â" "÷" "ÃÅ" "ÃÉ" "Ã×" "ÃÜ" "Ã÷" "Ħ" "Ī" "Ĭ" "Ä·" "ĸ" "ÄÃ" "ÄÇ" "ÄÈ" "ÄÉ" "ÄÎ" "ÄÏ" "ÄÚ" "ÄÝ" "Äá" "Äù" "Äþ" "Ŧ" "Å©" "Ŭ" "ŵ" "Å·" "ÅÁ" "ÅË" "ÅÓ" "Åå" "Åí" "Åî" "Ƥ" "ƽ" "ÆÕ" "Ææ" "Æë" "Æõ" "Ç¡" "ÇÇ" "ÇÐ" "ÇÕ" "ÇÙ" "Çå" "Çí" "Çð" "Çõ" "Ȫ" "ÈÃ" "ÈÈ" "Èå" "Èö" "Èø" "Èû" "Èü" "É£" "ɪ" "É­" "ɯ" "ɳ" "ɺ" ;; "ÉÏ" "ÉÐ" "ÉÜ" "Éá" "Éê" "Éú" "Ê©" "Ê«" "ʯ" "ʲ" "Ê¿" "ÊÒ" "˹" "˼" "Ë¿" "ËÉ" "ËÕ" "ËØ" "Ëç" "Ë÷" "Ëþ" "Ì©" "Ì«" "̹" "ÌÀ" "ÌÆ" "ÌÕ" "ÌØ" "Ìá" "Í¡" "Í¢" "ͨ" "͸" "ͼ" "ÍÐ" "ÍÑ" "ÍÞ" "Íß" "Íò" "Íú" "Íþ" "΢" "Τ" "ά" "ÎÀ" "ÎÂ" "ÎÄ" "ÎÌ" "ÎÖ" "ÎÚ" "Î÷" "Îý" "Ï£" "ϼ" "ÏÄ" "Ïã" ;; preposition ;; "Ïò" "Ф" "Ъ" "л" "ÐÀ" "ÐÁ" "ÐË" "ÐÐ" "ÐÒ" "ÐÛ" "ÐÝ" "Ñ·" "ÑÀ" "ÑÇ" "ÑÓ" "Ñï" "Ò®" "Ò¶" "ÒÁ" "Òò" "Ó¢" "ÓÈ" "Ô¼" "Ô×" "ÔÞ" "Ôç" "Ôó" "Ôø" "Ôú" "Õ²" "ÕÂ" "Ö¥" "Öº" "ÖÎ" "Öé" "×È" "×Ì" "×Ú" "×ô" "á¯" "æ«" "æÚ" "çÑ" "çê" "ç÷" "è§" "éª" "ëø" "÷ë" )) (defvar *zh-name-initial-chars* '("°¢" "°£" "°¬" "°®" "°²" "°º" "°Â" "°Ä" "°Í" "°×" "°Ý" "°à" "°î" "±£" "±«" "±´" "±¾" "±È" "±Ë" "±Ï" "±ö" "²¨" "²©" "²®" "²¼" "²Ì" "²é" "²ñ" "²ý" "³¹" "³þ" "´Ä" "´ï" "´÷" "´ú" "µ¤" "µ±" "µÀ" "µÂ" "µÇ" "µË" "µÏ" "µÒ" "µÙ" "¶¡" "¶Å" "¶Ë" "¶Ø" "¶Ù" "¶à" "¶ò" "¶÷" "·¨" "·¶" "·½" "·Æ" "·Ñ" "·Ò" "·ë" "·ò" "·ð" "·ü" "¸£" "¸¥" "¸»" "¸Ç" "¸Ê" "¸Ô" "¸ß" "¸ç" "¸ê" "¸ñ" "¸ù" "¹±" "¹Å" "¹Ï" "¹ç" "¹ú" "¹þ" "º£" "ºº" "º¼" "ºÀ" "ºÕ" "ºÚ" "ºà" "ºô" "ºú" "»ª" "»³" "»Ý" "»ô" "»ù" "¼ª" "¼¸" "¼Ó" "¼Ö" "¼ò" "¼û" "½­" "½Ü" "½ð" "½ò" "¾®" "¿¨" "¿­" "¿²" "¿µ" "¿¼" "¿Â" "¿Æ" "¿Ë" "¿Ï" "¿×" "¿â" "¿ä" "¿ï" "¿ü" "¿ý" "À¥" "À­" "À°" "À³" "Àµ" "À¼" "ÀÊ" "ÀÍ" "ÀÕ" "À×" "Àè" "Àí" "Àî" "Àï" "Àò" "Àö" "Àû" "ÁÐ" "ÁÕ" "ÁÖ" "Áõ" "Áø" "Áú" "¡" "¬" "³" "¶" "·" "ÂÀ" "Â×" "ÂÞ" "Âå" "Âê" "Âí" "Âó" "Âõ" "Âü" "â" "ë" "÷" "ÃÅ" "ÃÉ" "ÃÏ" "Ã×" "Ã÷" "Ħ" "Ī" "Ä«" "Ĭ" "Ä·" "ÄÂ" "ÄÉ" "ÄÎ" "ÄÏ" "ÄÚ" "ÄÝ" "Äá" "Äþ" "Å£" "Ŧ" "Å©" "Ŭ" "ŵ" "Å·" "ÅÁ" "ÅÉ" "ÅË" "ÅÓ" "Åà" "Åå" "Åí" "Ƥ" "ƽ" "ÆÓ" "ÆÕ" "ÆÏ" "Ææ" "Æë" "Ç¡" "Ç®" "ÇÅ" "ÇÇ" "ÇÐ" "ÇÕ" "Çí" "Çð" "Çñ" "ÈÈ" "ÈÙ" "Èå" "Èð" "Èö" "Èø" "Èû" "Èü" "É£" "ɪ" "É­" "ɯ" "ɳ" "ÉÜ" "Éá" "Éê" "Ê¥" "Ê©" "Ê·" "Êæ" "Ë·" "˹" "˼" "ËÉ" "ËÕ" "Ë÷" "Ëù" "Ëþ" "Ì©" "̹" "ÌÀ" "ÌÆ" "ÌÕ" "ÌØ" "Ìú" "Í¢" "ͨ" "ͼ" "ÍÏ" "ÍÐ" "Íß" "Íò" "Íú" "Íþ" "Τ" "ά" "κ" "ÎÂ" "ÎÄ" "ÎÌ" "ÎÖ" "ÎÚ" "Îä" "Îé" "Î÷" "Îý" "Ï£" "Ϥ" "ϯ" "ÏÄ" "Ïã" "Ф" "Ъ" "л" "ÐÀ" "ÐÁ" "ÐÝ" "ÐÞ" "Ðí" "Ðð" "Ѧ" "Ñ©" "ÑÅ" "ÑÇ" "ÑÓ" "Ñï" "Ò«" "Ò®" "Ò¶" "ÒÁ" "Ò×" "Ó¡" "Ó¢" "ÓÈ" "ÓÚ" "Óê" "Ô¼" "ÔÞ" "Ôó" "Ôø" "Õ§" "Ôú" "Õ²" "ÕÅ" "Õä" "Ö¥" "Öì" "×È" "×Ú" "×ô" "çê" "è§" "ëø" "÷ì" )) (defvar *zh-name-medial-chars* '("¡¤" "£®" "°¢" "°£" "°¬" "°®" "°²" "°º" "°Â" "°Ä" "°Í" "°×" "°Ý" "°à" "°î" "±«" "±±" "±´" "±¶" "±¾" "±È" "±Ë" "±Ù" "±ð" "±ö" "²¨" "²ª" "²©" "²®" "²·" "²¼" "²ß" "²é" "²ñ" "³¹" "³Â" "´Ä" "´Î" "´ï" "´ó" "´÷" "´ú" "µ¤" "µ±" "µÀ" "µÂ" "µÃ" "µÇ" "µË" "µÏ" "µÒ" "µØ" "µÚ" "µÙ" "¶¡" "¶«" "¶Å" "¶Ù" "¶à" "¶ò" "¶í" "¶÷" "¶û" "·¨" "·¶" "·½" "·Æ" "·Ç" "·Ñ" "·Ò" "·á" "·ë" "·ð" "·ò" "¸£" "¸¥" "¸µ" "¸»" "¸Ç" "¸Ê" "¸ß" "¸ç" "¸ê" "¸ï" "¸ð" "¸ñ" "¸÷" "¸ù" "¸ü" "¹±" "¹Ã" "¹Å" "¹Ï" "¹ç" "¹ú" "¹þ" "º£" "º±" "º²" "ºº" "ºÀ" "ºÁ" "ºÕ" "ºÚ" "ºà" "ºã" "ºé" "ºî" "ºú" "»ª" "»³" "»Ý" "»ô" "»ù" "¼ª" "¼¾" "¼Î" "¼Ó" "¼Ö" "½Ü" "½ð" "½ò" "¿¨" "¿ª" "¿­" "¿²" "¿µ" "¿¼" "¿Â" "¿Æ" "¿Ë" "¿¦" "¿Ï" "¿×" "¿Û" "¿â" "¿ä" "¿ü" "À¥" "Àª" "À­" "À°" "À³" "À´" "Àµ" "À¼" "ÀÊ" "ÀÍ" "ÀÕ" "À×" "ÀÙ" "Àè" "Àí" "Àî" "Àï" "Àñ" "Àò" "Àö" "Àú" "Àû" "Á¢" "Á¬" "Á«" "Áª" "Á®" "Á¿" "ÁÐ" "ÁÒ" "ÁÕ" "ÁÖ" "Áô" "Áø" "Áú" "¡" "¬" "³" "¶" "·" "ÂÀ" "ÂÔ" "Â×" "ÂØ" "ÂÜ" "ÂÞ" "Âå" "Âê" "Âí" "Âó" "Âõ" "Âú" "Âü" "â" "é" "÷" "ÃÀ" "ÃÅ" "ÃÉ" "Ã×" "ÃÜ" "Ãô" "Ã÷" "Ħ" "Ī" "Ĭ" "Ä­" "Ä·" "ľ" "ÄÂ" "ÄÃ" "ÄÇ" "ÄÈ" "ÄÉ" "ÄÎ" "ÄÏ" "ÄÚ" "ÄÝ" "Äá" "Äê" "Äî" "Äù" "Äþ" "Ŧ" "Å©" "Ŭ" "ŵ" "Å·" "ÅÁ" "ÅÉ" "ÅË" "ÅÓ" "Åà" "Åå" "Åí" "Åî" "Ƥ" "ƽ" "ÆÃ" "ÆÕ" "Æá" "Ææ" "Æë" "Æä" "Æõ" "Ç¡" "Ç®" "Ç¿" "ÇÇ" "ÇÐ" "ÇÕ" "ÇÙ" "Çí" "Çð" "Çó" "È´" "ÈÈ" "Èå" "Èô" "Èö" "Èø" "Èû" "Èü" "É£" "ɪ" "É­" "ɯ" "ɳ" "ɺ" "ɽ" "ÉÜ" "Éá" "Éê" "Ê¢" "Ê©" "ʲ" "Ê·" "Ê¿" "Êæ" "˹" "˼" "˾" "Ë¿" "ËÉ" "ËÕ" "Ë÷" "Ëþ" "Ì©" "Ì«" "̹" "ÌÀ" "ÌÆ" "ÌÕ" "ÌÑ" "ÌØ" "Ìè" "Ìú" "Í¡" "Í¢" "ͨ" "ͼ" "ͽ" "ÍÂ" "ÍË" "ÍÐ" "Íß" "Íò" "Íú" "Íþ" "Τ" "ά" "ΰ" "κ" "ÎÀ" "ÎÂ" "ÎÄ" "ÎÌ" "ÎÖ" "ÎÚ" "Îä" "Îé" "Îî" "Î÷" "Îý" "Ï£" "ϯ" "ÏÄ" "Ïã" "Ïþ" "Ф" "Ъ" "л" "ÐÀ" "ÐÁ" "ÐÂ" "ÐË" "ÐÒ" "ÐÝ" "ÐÞ" "Ðõ" "Ñ©" "ÑÇ" "æ«" "Ñï" "Ñô" "Ò®" "Ò¶" "ÒÀ" "ÒÁ" "ÒÔ" "Ò×" "Òò" "Ó¢" "ÓÀ" "ÓÈ" "ÓÐ" "ÓÑ" "Ó×" "Óô" "Ô¼" "ÔÞ" "Ôó" "Ôö" "Ôø" "Ôú" "Õ²" "Õä" "Õý" "ÖÎ" "ÖÜ" "Öì" "׿" "×È" "×Ì" "×Ó" "×æ" "×ô" "Ú÷" "á¯" "çÑ" "çê" "è§" "é¦" "ëø" "ì³" "ñã" "÷ë" "÷ì" )) (defun zh-name-suffix? (string) (member string *zh-name-final-chars* :test #'matching-suffix?)) (defun zh-name-prefix? (string) (member string *zh-name-initial-chars* :test #'matching-prefix?)) (defun zh-name-infix? (string) (member string *zh-name-medial-chars* :test #'matching-substring?))