Thank you for your help, I appreciate your time.
closed as too broad by Stephen Rauch♦, Sean Owen Nov 29 '18 at 3:01
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
This is not a standard problem but you should be able to roughly do this using two basic kinds of tools that usually go together anyway:
Use an NER system to identify people (as opposed to organizations) in sentences. Most systems have a default model that flags people.
Use an Open Information Extraction system to get relation triples from sentences like
(Sarah, has, brown_hair). See OpenIE for an example. You could also use a dependency parser.
So you take the relationships you get from the tools in part 2 and throw out any where the referrent/noun isn't a person. If you have to deal with relative clauses like in your first example ("John, who was..."), you'll also have to deal with coreference resolution, which is its own complicated problem.