((eq spec 06) (concat value ">-56392;"))
((eq spec 07) (concat value "輯"))
((eq spec 08) (concat value ">-53119;"))
- ((eq spec 09) (concat value ">-53119;分󠄀"))
+ ((eq spec 09) (concat value ">-53119;&AJ1-03580;"))
((eq spec 10) (concat value "冊"))
- ((eq spec 11) (concat value "分󠄀冊"))
+ ((eq spec 11) (concat value "&AJ1-03580;冊"))
((eq spec 12) (concat value "&J90-3C21;"))
((eq spec 13) (concat value ">-18140;号"))
((eq spec 14) (concat value "特>-56392;号"))
((eq spec 15) (concat value "本"))
- ((eq spec 16) (concat value "分󠄀"))
+ ((eq spec 16) (concat value "&AJ1-03580;"))
((eq spec 51) (concat "Vol." value))
((eq spec 52) (concat "No." value))
((eq spec 53) (concat "Part " value))
;; ((string= spec "06") `((decimal (:feature ,feature)) ">-56392;"))
;; ((string= spec "07") `((decimal (:feature ,feature)) "輯"))
;; ((string= spec "08") `((decimal (:feature ,feature)) ">-53119;"))
-;; ((string= spec "09") `((decimal (:feature ,feature)) ">-53119;分󠄀"))
+;; ((string= spec "09") `((decimal (:feature ,feature)) ">-53119;&AJ1-03580;"))
;; ((string= spec "10") `((decimal (:feature ,feature)) "冊"))
-;; ((string= spec "11") `((decimal (:feature ,feature)) "分󠄀冊"))
+;; ((string= spec "11") `((decimal (:feature ,feature)) "&AJ1-03580;冊"))
;; ((string= spec "12") `((decimal (:feature ,feature)) "&J90-3C21;"))
;; ((string= spec "13") `((decimal (:feature ,feature)) ">-18140;号"))
;; ((string= spec "14") `((decimal (:feature ,feature)) "特>-56392;号"))
;; ((string= spec "15") `((decimal (:feature ,feature)) "本"))
-;; ((string= spec "16") `((decimal (:feature ,feature)) "分󠄀"))
+;; ((string= spec "16") `((decimal (:feature ,feature)) "&AJ1-03580;"))
;; ((string= spec "51") `("Vol." ((decimal (:feature ,feature)))))
;; ((string= spec "52") `("No." ((decimal (:feature ,feature)))))
;; ((string= spec "53") `("Part " ((decimal (:feature ,feature)))))
;; (t nil)
;; ))
-(defun est-eval-journal-volume (value)
+(defun est-eval-value-as-journal-volume (value)
(let ((journal (car (concord-object-get value '<-volume)))
volume-type number-type
year)
(setq volume-type (concord-object-get journal 'volume/type/code)
number-type (concord-object-get journal 'number/type/code))
- (setq year (concord-object-get value '->published/date*year))
+ (setq year (or (concord-object-get value '->published/date*year)
+ (concord-object-get
+ (car (concord-object-get value 'date)) 'year)))
;; (append (list (concord-object-get journal 'name))
;; (est-journal-volume-object-get-volume-format
;; volume-type '<-volume*volume)
year 'cjk))
))
+(defun est-eval-value-as-article (value)
+ (let ((creators (concord-object-get value '->creator))
+ (title (concord-object-get value 'title))
+ creator-name creator-role)
+ (concat
+ (mapconcat
+ (lambda (creator)
+ (setq creator-name
+ (concord-object-get
+ (car (concord-object-get creator '->creator/name))
+ '=name))
+ (setq creator-role
+ (or (concord-object-get creator 'role*name)
+ (format "(%s)"
+ (concord-object-get creator 'role*type))))
+ (concat creator-name " " creator-role))
+ creators ", ")
+ (if (eq (concord-object-get value 'writing-system) 'cjk)
+ (concat "「" title "」")
+ (concat " ‘" title "’")))))
+
+(defun est-eval-value-as-book (value)
+ (let ((creators (concord-object-get value '->creator))
+ (title (concord-object-get value 'title))
+ (subtitle (concord-object-get value 'title/subtitle))
+ (series (concord-object-get value 'series))
+ (publisher (car (concord-object-get value 'publisher)))
+ (date (car (concord-object-get value 'date)))
+ creator-name creator-role)
+ (concat
+ (mapconcat
+ (lambda (creator)
+ (setq creator-name
+ (concord-object-get
+ (car (concord-object-get creator '->creator/name))
+ '=name))
+ (setq creator-role
+ (or (concord-object-get creator 'role*name)
+ (format "(%s)"
+ (concord-object-get creator 'role*type))))
+ (concat creator-name " " creator-role))
+ creators ", ")
+ (if (eq (concord-object-get value 'writing-system) 'cjk)
+ (concat "「" title
+ (if subtitle
+ (concat " — " subtitle))
+ "」")
+ (concat " ‘" title
+ (if subtitle
+ (concat " — " subtitle))
+ "’"))
+ (if series
+ (concat " " series))
+ (if publisher
+ (concat ", "
+ (concord-object-get
+ (car (concord-object-get
+ publisher '->publisher/name))
+ '=name)))
+ (if date
+ (concat ", " (concord-object-get date 'name))))))
+
;; (defun est-eval-creator (value)
;; (est-eval-list
;; '((value (:feature ->name))
;; (est-eval-list
;; (est-journal-volume-get-object-format value)
;; value nil)
- (est-eval-journal-volume value)
+ (est-eval-value-as-journal-volume value)
+ )
+ ((eq genre 'article@ruimoku)
+ (est-eval-value-as-article value)
+ )
+ ((eq genre 'book@ruimoku)
+ (est-eval-value-as-book value)
)
;; ((eq genre 'creator@ruimoku)
;; (est-eval-creator value)
(www-get-feature-value
genre-o 'object-representative-feature))
'name))
+ (www-get-feature-value value '=name)
(est-eval-value-default value))
))
)))
(format "%c" (ideographic-radical value)))
(est-eval-value-as-S-exp value)))
-(defun est-eval-value-as-object-list (value &optional separator)
- (if (listp value)
- (list* 'list
- (if separator
- (list :separator separator))
- ;; (mapcar
- ;; (lambda (unit)
- ;; (if (characterp unit)
- ;; (list 'char-link nil (format "%c" unit))
- ;; (format "%s" unit)))
- ;; value)
- (mapcar #'est-eval-value-as-object value)
- )
+(defun est-eval-value-as-object-list (value &optional separator subtype)
+ (if (and (listp value)
+ (listp (cdr value)))
+ (condition-case err
+ (let (props)
+ (if separator
+ (setq props (list :separator separator)))
+ (if subtype
+ (setq props (list* :subtype subtype props)))
+ (list* 'list props
+ (mapcar #'est-eval-value-as-object value)))
+ (error err (format "%s" value)))
(format "%s" value)))
(defun est-eval-value-as-ids (value)
value)))
(est-eval-value-default value)))
-(defun est-eval-value-as-creators-names (value)
+(defun est-eval-value-as-creators-names (value &optional subtype)
(if (listp value)
(let (role-name)
(list* 'creator-name
- '(:separator " ")
+ (if subtype
+ '(:subtype unordered-list)
+ '(:separator " "))
(mapcar (lambda (creator)
(setq role-name
(concord-object-get creator
'role*name))
(est-eval-list
(list
- '(value (:feature ->name))
+ '(value (:feature ->creator/name))
(list
'object (list :object creator)
(or role-name
))
(est-eval-value-default value)))
-(defun est-eval-value-as-created-works (value)
+(defun est-eval-value-as-created-works (value &optional subtype)
(if (listp value)
(list* 'creator-name
- '(:separator " ")
+ (if subtype
+ '(:subtype unordered-list)
+ '(:separator " "))
(mapcar (lambda (creator)
(est-eval-list
- '((value (:feature ->created)))
+ '((value (:feature <-creator)))
creator nil))
value))
(est-eval-value-default value)))
((or (eq format 'space-separated)
(eq format 'space-separated-char-list))
(est-eval-value-as-object-list value " "))
+ ((eq format 'unordered-list)
+ (est-eval-value-as-object-list value nil 'unordered-list))
((eq format 'space-separated-ids)
(est-eval-value-as-space-separated-ids value))
((eq format 'space-separated-domain-list)
(est-eval-value-as-domain-list value))
((eq format 'space-separated-creator-name-list)
(est-eval-value-as-creators-names value))
+ ((eq format 'unordered-creator-name-list)
+ (est-eval-value-as-creators-names value 'unordered-list))
((eq format 'space-separated-created-work-list)
(est-eval-value-as-created-works value))
+ ((eq format 'unordered-created-work-list)
+ (est-eval-value-as-created-works value 'unordered-list))
(t
(est-eval-value-default value)
))