  Software programming requires both API reference (know-what) knowledge and
programming task (know-how) knowledge. Lots of programming know-what and
know-how knowledge is documented in text, for example, API reference
documentation and programming tutorials. To improve knowledge accessibility and
usage, several recent studies use Natural Language Processing (NLP) methods to
construct API know-what knowledge graph (API-KG) and programming task know-how
knowledge graph (Task-KG) from software documentation. Although being
promising, current API-KG and Task-KG are independent of each other, and thus
are void of inherent connections between the two types of knowledge. Our
empirical study on Stack Overflow questions confirms that only 36% of the API
usage problems can be answered by the know-how or the know-what knowledge
alone, while the rest questions require a fusion of both. Inspired by this
observation, we make the first attempt to fuse API-KG and Task-KG by API entity
linking. This fusion creates nine categories of API semantic relations and two
types of task semantic relations which are not present in the stand-alone
API-KG or Task-KG. According to the definitions of these new API and task
semantic relations, our approach dives deeper than the surface-level API
linking of API-KG and Task-KG, and infers nine categories of API semantic
relations from task descriptions and two types of task semantic relations with
the assistance of API-KG, which enrich the declaration or syntactic relations
in the current API-KG and Task-KG. Our fused and semantically-enriched API-Task
KG supports coherent API/Task-centric knowledge search by text or code queries.
