[MINC-development] Draft API for MINC 2.0

John G. Sled minc-development@bic.mni.mcgill.ca
Mon, 16 Jun 2003 09:55:24 -0400


Hi Steve,

> Is there a gentler introduction that outlines the concepts and
> data types?  For instance, what is a "group"?  What is the "path"
> argument that many functions take?  Is this api layered on top of
> hdf5?  If so, is it necessary to understand it to read the new api
> document?

The plan is to have a top level document explaining the concepts, but
it hasn't been written yet -- partly because some of the concepts are
still fluid.  With respect to layering, the plan is as follows. 

HDF5 is the bottom level layer which the programmer never sees or
requires the documentation.  The old libminc API is present with as much
of its functionality retained as is consistent with the new libminc
API (i.e. almost all of it).  The new libminc API is what our new
document describes.  This is intended to replace the use of libminc
and appeal to as broad a group of MINC programmers as possible.  It is
intended to provide the full power and flexibility of MINC while
leaving the memory management issues to the programmer, hence the
emphasis on hypercube related functions.  VolumeIO will be updated to
sit on top of the new libminc and keep its existing API perhaps with
the namespace issues cleaned up.  In the future we would like to
produce a VolumeIO 2 that takes advantage of more of the features of
libminc while continuing to provide memory management.

With respect to groups and paths, the plan is to treat volume
attributes (patient name etc.) as having a unix-file-system-like
structure.  In this scheme a group is analogous to a directory
(eg. /patient_info) and a path is just that
(eg. /patient_info/patient_name).


> Can we add "extensible" to that list?

I think we have left a few hooks for extending future revisions.  We
would welcome more suggestions though.  It is not clear to me how to
let users extend the format themselves without breaking the core tool
set.  Is there something you have in mind?


cheers,

John