$.word $.name (when $.has_name (let* ((nick $.nickname) (language $global.world.raws.translations[$.language]) (english $global.world.raws.language_words) (fname $.first_name) (lwords $language.words)) (flet ((get-words (start end) (loop for i from start to end for word = $.words[i] collect $lwords[word].value)) (get-english (start end) (loop for i from start to end for word = $.words[i] and ps = $.parts_of_speech[i] collect $english[word].forms[ps]))) (list (fmt "Name:~:(~@[ ~A~]~@[ '~A'~]~@[ ~{~A~}~]~@[ ~{~A~}~]~@[ ~{~A~}~]~)" (if (> (length fname) 0) fname) (if (> (length nick) 0) nick) (flatten (get-words 0 1)) (flatten (get-words 2 5)) (flatten (get-words 6 6))) (fmt "aka~:(~@[ ~A~]~@[ ~{~A~}~]~@[ the ~A~]~@[ of ~{~A~}~]~)" (if (> (length fname) 0) fname) (flatten (get-english 0 1)) (when (>= $.words[5] 0) (apply #'format nil "~@[~A ~]~@[~A ~]~@[~A-~]~A" (get-english 2 5))) (flatten (get-english 6 6)))))))