This is often difficult in the presence of limited data, and noisy output from NLP tools.
we learn probabilistic models for interpretable functions like coreference, hyponymy, etc., and then use declarative knowledge involving these functions to perform reasoning.