# # 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 #