First, this is wide open messy question.
Second, ChatScript can represent and store data as triples. So it can represent any data.
Third, it can perform graph searches on triples (micro-programmable) so it can do inference directly. So it does support reasoning… Eg Rosette used reasoning to correctly answer the Loebner qualifier question: Dave is older than Steve but Steve is older than Jane. Who is youngest, Steve or Jane?
Fourth, to connect to conceptnet or Cyc is completely undefined…. If you want to write an interface to talk to a cyc server, one can create such a program, invoke it as a system command from ChatScript (passing it tuples in a data file and receiving back tuples in a data file). That mechanism keeps everything clean. Any more direct integration is beyond my province.