The task of robotic manipulation planning combines high-level decision-making with low-level controllers that interact with the environment. Generating interfaces between these two paradigms is an active field of research in robotics. In this paper, we propose a contact-based language for robotic manipulation and planning, based on the contact between a collection of objects, robots and surfaces. This planner considers making and breaking contact as the bridge between high-level planning and low-level controllers. Following this paradigm, a robot contact language is developed. Given the involved components, a contact graph is constructed with respect to a set of predefined rules and the available geometrical information. Once the graph is generated, object manipulation planning is formulated as a graph search problem. Paths on this contact graph divide a complex manipulation task into sub-tasks which is followed by low-level path planning and controller assignment for each sub-task. By executing these controllers sequentially and in a hybrid fashion, one can achieve the overall manipulation.