#
# KEHOME/src/aka.icn
# Aug/11/2005
# reorder arguments Aug/21/2005
#birthname,marriedname isa name # official names
#nickname,prefername,othername isa name
#
#r_aka is relation with
# label=[pid, birthname, prefername, nickname, marriedname..., othername...],
# format=[person:1, name:2, name:3, name:4, name:5, name:6],
# automatic=ISU,
# meaning=procedure_aka;
## meaning={
## $1 is person with pid=$1;
## $1 has birthname=$2, prefername=$5, nickname=$4;
## $1 has marriedname +=$3, othername +=$6;
## };
invocable "procedure_aka"
procedure procedure_aka(rname,nvtab)
#===================================
local cache
local d1,d2,d3,d4,d5,d6
local p,q
case rname of {
"r_aka": {
# initialization
#--------------#
# new order Aug/21/2005
d1 := unparse(nvtab["$1"]) # $1 = pid
d2 := unparse(nvtab["$2"]) # $2 = birthname
d3 := unparse(nvtab["$3"]) # $3 = prefername
d4 := unparse(nvtab["$4"]) # $4 = nickname
d5 := to_set(nvtab["$5"]) | set([]) # $5 = marriedname
d6 := to_set(nvtab["$6"]) | set([]) # $6 = othername
# meaning
#-------#
p := new_person(d1) # $1 isa person
q := new_concept(d1)
put_char("echar",d1,"pid",d1) # $1 with pid=$1
put_char("attr",d1,"birthname",d2)
put_char("attr",d1,"prefername",d3)
put_char("attr",d1,"nickname",d4)
put_char("attr",d1,"marriedname",d5,"+=")
put_char("attr",d1,"othername",d6,"+=")
# OLD cache scheme
cache := CACHE[p]
cache.birthname := d2 # $1 has birthname =$2
cache.prefername := d3 # $1 has prefername =$3
cache.nickname := d4 # $1 has nickname =$4
cache.marriedname ++:= d5 # $1 has marriedname +=$5 # <== calculate standard name
cache.othername ++:= d6 # $1 has othername +=$6
} # end "r_aka"
} # end case rname
end
#