diff generics.lisp @ 9:22d090e96582

generics.lisp: Allen's interval relations. darcs-hash:20061113190010-aa3d6-dcf1cd62eaabdf5819ab0e64c414bdbef59f50f2.gz
author m.pearce <m.pearce@gold.ac.uk>
date Mon, 13 Nov 2006 19:00:10 +0000
parents 169e6d42dd51
children 356ee92313be
line wrap: on
line diff
--- a/generics.lisp	Mon Nov 13 18:04:53 2006 +0000
+++ b/generics.lisp	Mon Nov 13 19:00:10 2006 +0000
@@ -81,6 +81,25 @@
 (defgeneric interval= (object1 object2)) 
 (defgeneric interval/= (object1 object2)) 
 
+;;; Allen's (1984) interval relations 
+;;;  . equals already defined as INTERVAL= above 
+;;;  . can all be defined in terms of MEETS
+
+(defgeneric meets (object1 object2))
+(defgeneric before (object1 object2))
+(defgeneric overlaps (object1 object2))
+(defgeneric during (object1 object2))
+(defgeneric starts (object1 object2))
+(defgeneric ends (object1 object2))
+
+;;; and extensions ... 
+
+;;; i subinterval j if i starts j or i during j or i ends j
+(defgeneric subinterval (object1 object2))
+;;; i disjoint j if i before j or i meets j or j meets i or j before i
+(defgeneric disjoint (object1 object2))
+
+
 ;;; Time Signature 
 ;;; Tempo 
 ;;; Tonality (Key Signature / Mode)