Book Description
In Knowledge-Based Programming for Music Research, Schaffer and McGee explore expert systems for applications in artificial intelligence (AI). The text concerns (1) basic principles for knowledge-based programming, (2) concepts and strategies for programming these systems, (3) a "universal data" model for music analysis, and (4) examples that concern specific aspects of design and application. The authors also investigate Prolog (programming in logic), one of the most widely used computer languages for AI, and base some of their applications on the recent implication-based theories of Eugene Narmour. Of the applications for programming a knowledge-based system, music analysis has the most potential. Beyond identifying isolated elements, it is possible to create programs that extend to chord structures and other, more complex structures. This kind of programming allows the authors to embed the rules of composition in the application and then extend the analysis throughout the musical work. It also allows them to arrive at the underlying principles for a given composition. As a tool for music analysis, such programming has profound implications for further growth. The text is designed for musicians at various levels and could also be used in courses on computer-music programming. Parts of the book have been successfully used in courses on computer programming for music research, with which the authors have direct experience. The text includes extensive examples of code for use in individual Prolog applications and a comprehensive bibliography.