This document provides a set of empirically and theoretically well-motivated concepts for dialogue annotation, a formal language for expressing dialogue annotations (the Dialogue Act Markup Language, DiAML), and a method for segmenting a dialogue into semantic units. This allows the manual or automatic annotation of dialogue segments with information about the communicative actions which the participants perform by their contributions to the dialogue. The annotation scheme specified in this document supports multidimensional annotation of spoken, written, and multimodal dialogues involving two or more participants. Dialogue units are viewed as having multiple communicative functions in different dimensions. The markup language DiAML has an XML-based representation format and a formal semantics which makes it possible to perform inferences with DiAML representations. This document also specifies data categories for dimensions of dialogue analysis, for communicative functions, for dialogue act qualifiers, and for relations between dialogue acts. Additionally, it provides mechanisms for customizing these sets of concepts, extending them with application-specific or domain-specific concepts and descriptions of semantic content, or selecting relevant coherent subsets of them. These mechanisms make the dialogue act concepts specified in this document useful not only for annotation but also for the recognition and generation of dialogue acts in interactive systems.