X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fchiset.git;a=blobdiff_plain;f=char-db-turtle.el;h=e15d08b8225f39ba2b34e3d0a158673ea09d932d;hp=da1be9faca4295919b9b139b8e529046e32fa574;hb=HEAD;hpb=869f5a44eefbddd2c82bcd9cbbaa16d929b74405 diff --git a/char-db-turtle.el b/char-db-turtle.el index da1be9f..7334165 100644 --- a/char-db-turtle.el +++ b/char-db-turtle.el @@ -1,6 +1,6 @@ ;;; char-db-turtle.el --- Character Database utility -*- coding: utf-8-er; -*- -;; Copyright (C) 2017 MORIOKA Tomohiko. +;; Copyright (C) 2017, 2018 MORIOKA Tomohiko. ;; Author: MORIOKA Tomohiko ;; Keywords: CHISE, Character Database, RDF, Turtle, ISO/IEC 10646, UCS, Unicode, MULE. @@ -54,10 +54,20 @@ =ucs-itaiji-004 =ucs-itaiji-005 =ucs-itaiji-006 + =ucs-itaiji-007 + =ucs-itaiji-008 + =ucs-itaiji-009 + =ucs-itaiji-010 + =ucs-itaiji-011 =ucs-itaiji-084 =ucs-var-001 =ucs-var-002 + =ucs-var-003 =ucs-var-004 + =ucs-var-005 + =ucs-var-006 + =ucs-var-008 + =ucs-var-010 =cns11643-1 =cns11643-2 =cns11643-3 =cns11643-4 =cns11643-5 =cns11643-6 =cns11643-7 =gb2312 @@ -67,18 +77,23 @@ =ucs@unicode =ucs@JP/hanazono =gb12345 + =ucs@cns + =ucs@gb =zinbun-oracle =>zinbun-oracle =daikanwa =ruimoku-v6 =cbeta =jef-china3 + =daikanwa/+2p =+>ucs@iso =+>ucs@unicode =+>ucs@jis =+>ucs@cns =+>ucs@ks + =+>ucs@jis/1990 =>mj =>jis-x0208 =>jis-x0213-1 =>jis-x0208@1997 =>ucs@iwds-1 + =>ucs@cognate =>ucs@component =>iwds-1 =>ucs@iso @@ -88,7 +103,9 @@ =>gt-k =>>ucs@iso =>>ucs@unicode =>>ucs@jis =>>ucs@cns =>>ucs@ks + =>>mj =>>gt-k + =>>hanyo-denshi/ks ==mj ==ucs@iso ==ucs@unicode @@ -106,11 +123,20 @@ ==gt ==cns11643-1 ==cns11643-2 ==cns11643-3 ==cns11643-4 ==cns11643-5 ==cns11643-6 ==cns11643-7 + ==jis-x0212 ==ucs@cns ==koseki ==daikanwa ==gt-k + ==ucs@gb + ==ucs-itaiji-001 + ==ucs-itaiji-002 + ==ucs-itaiji-003 + ==ucs-itaiji-005 + ==ucs-itaiji-006 + ==ucs-var-002 ==ucs@JP/hanazono + ==daikanwa/+2p =>>jis-x0208 =>>jis-x0213-1 =>>jis-x0213-2 =+>jis-x0208 =+>jis-x0213-1 =+>jis-x0213-2 =+>hanyo-denshi/jt @@ -121,7 +147,12 @@ =jis-x0208@1983 =jis-x0208@1978 =>ucs-itaiji-001 =>ucs-itaiji-002 + =>ucs-itaiji-003 + =>ucs-itaiji-004 =>ucs-itaiji-005 + =>ucs-itaiji-006 + =>ucs-itaiji-007 + =>ucs-itaiji-001@iwds-1 ==>ucs@bucs =big5 =>cbeta @@ -133,12 +164,15 @@ ===gt ===gt-k ===ucs@ks + ===ucs@gb =shinjigen + =shinjigen@rev =shinjigen@1ed =shinjigen/+p@rev ==shinjigen ==shinjigen@rev ==daikanwa/+p + ==shinjigen@1ed ===daikanwa/+p =>daikanwa/ho ===daikanwa/ho @@ -192,6 +226,8 @@ "._.") ((eq c ?=) ".:.") + ((eq c ?|) + "._cmp_.") (t (char-to-string c)))) (www-uri-encode-feature-name feature-name) @@ -205,6 +241,26 @@ ":denotation-of") ((eq '<-formed feature-name) ":form-of") + ((eq '<-same feature-name) + "ideo:same-as") + ((eq '<-simplified feature-name) + "ideo:simplified-form-of") + ((eq '<-vulgar feature-name) + "ideo:vulgar-form-of") + ((eq '<-wrong feature-name) + "ideo:wrong-form-of") + ((eq '<-original feature-name) + "ideo:original-form-of") + ((eq '<-ancient feature-name) + "ideo:ancient-form-of") + ((eq '<-Small-Seal feature-name) + "ideo:Small-Seal-of") + ((eq '<-interchangeable feature-name) + "ideo:interchangeable-form-of") + ((eq '->interchangeable feature-name) + "ideo:interchangeable") + ((eq '->mistakable feature-name) + "ideo:mistakable") ((eq 'hanyu-dazidian feature-name) "ideo:hanyu-dazidian") (t @@ -223,7 +279,7 @@ (defun chise-turtle-encode-char (object) (let ((ccs-list est-coded-charset-priority-list) - ccs ret) + ccs ret ret2) (if (setq ret (encode-char object '=ucs)) (chise-turtle-format-ccs-code-point '=ucs ret) (while (and ccs-list @@ -236,6 +292,20 @@ (setq ret (encode-char object ccs))) (chise-turtle-format-ccs-code-point ccs ret) ) + ((setq ret (get-char-attribute object 'ideographic-combination)) + (format "ideocomb:%s" + (mapconcat (lambda (cell) + (cond ((characterp cell) + (char-to-string cell) + ) + ((setq ret2 (find-char cell)) + (char-to-string ret2) + ) + (t + (format "%S" cell) + ))) + ret "")) + ) (t (format (if est-hide-cgi-mode "system-char-id=0x%X" @@ -424,7 +494,7 @@ ) (defun char-db-turtle-insert-metadata (name value) - (let (col indent) + (let (col indent ret) (insert (format "%-7s " name)) (cond ((or (eq name :sources) @@ -437,6 +507,16 @@ (insert (format " ,\n%schisebib:%s" indent (chise-turtle-uri-encode-ccs-name source)))) nil) + ((eq name :references) + (setq ret (car value)) + (setq ret (plist-get (nth 1 ret) :ref)) + (setq col (current-column)) + (setq indent (make-string col ?\ )) + (insert (format "<%s>" ret)) + (dolist (refspec (cdr value)) + (setq ret (plist-get (nth 1 refspec) :ref)) + (insert (format " ,\n%s<%s>" indent ret))) + nil) (t (insert (format "%S" value)) nil)))) @@ -492,7 +572,7 @@ (defun char-db-turtle-insert-source-list (value &optional readable) (let (lbs separator rest cell al cal key ret) - (setq lbs (concat "\n" (make-string (current-column) ?\ )) + (setq lbs (concat " ,\n" (make-string (current-column) ?\ )) separator nil) (while (consp value) (setq cell (car value)) @@ -550,7 +630,7 @@ (setq separator (format " ,%s" lbs))) (if (characterp cell) (insert (format "%-20s" (chise-turtle-encode-char cell))) - (char-db-turtle-insert-char-ref cell 'ideographic-combination)) + (char-db-turtle-insert-char-ref cell '<-formed)) (setq value (cdr value))) nil)) @@ -560,6 +640,7 @@ ) ((or (eq feature-name-base 'ideographic-combination) (eq feature-name-base '=decomposition) + (eq feature-name-base '<-formed) (string-match "^\\(->\\|<-\\)[^*]*$" (symbol-name feature-name-base))) (char-db-turtle-insert-relations value readable) ) @@ -935,7 +1016,7 @@ line-separator)) (setq col (current-column)) (insert (format ":context domain:%-7s ;\n%s:target %S" - domain + (chise-turtle-uri-encode-ccs-name domain) (make-string col ?\ ) value)) (setq attributes (delq key attributes)) @@ -1090,7 +1171,7 @@ )) ) ((eq name 'ideographic-structure) - (insert (isd-turtle-format-char nil nil value nil + (insert (isd-turtle-format-char nil nil value (/ column 4) 'isd 'without-head-char)) (insert " ;") ) @@ -1155,6 +1236,7 @@ @prefix chisegg: . @prefix domain: . @prefix script: . +@prefix ideocomb: . @prefix chisebib: . @prefix ruimoku: . @prefix zob1959: .