Conceptnet contains two basic types of nodes, words (e.g. /c/en/cat) and senses (e.g. /c/en/cat/n/domestic_cat). Unfortunately, the vast majority of edges use word nodes. This makes inferring difficult, because I can't be sure which sense a word-to-word edge is referring to.
For example, Conceptnet contains 9 senses that use the word "cat", most being proper nouns (/c/en/cat/n/musical, /c/en/cat/n/magazine, /c/en/cat/n/a_spiteful_woman_gossip, etc). If an edge says "/c/en/cat /r/HasA /c/en/tail", I know by using my own experience that that's probably referring to /c/en/cat/n/domestic_cat and no other senses. Whereas if I see an edge that says "/c/en/cat /r/IsA /c/en/fun_to_watch", I know it's probably referring to /c/en/cat/n/musical, but it also still might be referring to /c/en/cat/n/domestic_cat.
How do I automate this process? How do I translate edges that only use word nodes so that they use sense nodes?
ConceptNet doesn't appear to include any word sense disambiguation, see their FAQ: