Hi, I've worked in systems requiring temporal and interval logics for years. Here is something I can pretty much guarantee: if you don't get your terminology right you are going to spend almost all of your time trying to figure out what each other is saying. Allen's terminology is described and illustrated on page 10 of the paper: On 21-Feb-07, at 5:23 AM, Pierre-Charles David wrote: > > [1] Allen, J.F. and Ferguson, G. Actions and Events in Interval > Temporal Logic, J. Logic and Computation 4, 5, 1994. > http://tinyurl.com/2twek7 There are 14 relationships described in that paper, 12 relationships illustrated plus equal and disjoint which I guess the authors felt too trivial to be worth illustrating. Allen's work in the early 80s is the first widely accepted systematic terminology available and is the vocabulary pretty much *everyone* who talks about intervals regularly uses. Anyway... On 21-Feb-07, at 11:32 PM, Daniel Finnie wrote: > I see a potential flaw in this if the ends were equal but other has > exclude end. > > a: |-----| (1...6, exclude end) > b: |---| (3..6) > > a.include?(6) #=> false > b.include?(6) #=> true > > a.span?(b) #=> false > b.span?(a) #=> true, but should be false, IMHO. I don't know what either 'include' or 'span' actually means. And from this question Daniel asks, it isn't just me. You'll get a lot futher a lot faster if you use Allen's terminology. You know, this probably is worth writing up as a trivial library and sharing... but how to represent an interval :-) Cheers, Bob ---- Bob Hutchison -- blogs at <http://www.recursive.ca/ hutch/> Recursive Design Inc. -- <http://www.recursive.ca/> Raconteur -- <http://www.raconteur.info/> xampl for Ruby -- <http://rubyforge.org/projects/xampl/>