You get "Art of War", alias "relationbook", as a result of 'GivePromotionReward' in "PROGRAM\NK.c". The mere act of getting the book is supposed to set attribute "PChar.Got_Relation_Book" because getting it ought to trigger case "Got_Relation_Book" in "quests_common.c", which sets the attribute. So I don't know why I keep getting more of them. I'll need to get another promotion, then dump attributes and see if "PChar.Got_Relation_Book" is set. Better yet, I'll see if I can distinguish between pirate and non-pirate, so pirates get "Under the Jolly Roger", alias "piratebook", instead. (Which will then need a corresponding attribute so you don't accumulate piles of those instead...)