From: gilleain t. <gil...@gm...> - 2010-03-25 16:07:21
|
Hi Egon, On Thu, Mar 25, 2010 at 3:40 PM, Egon Willighagen <ego...@gm...> wrote: > Hi Gilleain! > > On Thu, Mar 25, 2010 at 4:35 PM, gilleain torrance > <gil...@gm...> wrote: >> I might mention that the AtomContainer class is essentially a graph. > > Almost: bonds are not restricted to two atoms. True - in that case, it is better modelled by a set system which is "a finite set X of points and a finite set B of blocks, such that each block is a subset of X". :) Set systems can be easily represented by a list of blocks - the 'bonds' of the CDK - or by a data structure called an incidence matrix. I'm getting all this from a book, by the way, but it says that set systems can't be easily represented by adjacency matrices, or adjacency lists. > > Alternative implementations was one of the reasons why we now have > interfaces, and should be programming against interfaces. Well sure. I like interfaces, too. Most of the time. They can be over-used, of course. >> or let the AtomContainer class internally chose between different >> ways to represent the molecular graph. > > Yeah, that would be ideal :) Well, it would be one ideal... It would make the code more complex and fragile, and might slow certain things down. It would also have to be controlled by the user - like with an enum flag or so. People would get grumpy if magical machinery behind the scenes was making things slower for them. > >> Sorry to lecture the list on this topic, but thought I would anyway :) > > Oh, please do not stop! That's what this list is for! Heh. Well, up to a point, yes. gilleain |