Welcome to the CCPN repository.

This file will give a brief introduction to what lives where. Other
documentation may be found in

./procedures.txt : List of standard procedures for working with the framework

./quickguide.html : Overview of what is happening in the CCPN project

./api-description.html : Overview of the Python API structure

./HowToModel.html : 
a step-by-step description of how to use the CCPN framework for data
modeling.

../python/doc/api.html : 
The detailed Python API documentation, including links to the diagrams of the
model.  This also serves as the best guide to the detail of the data model.

../javasql/help : help about jave code generation

The header comments in ../python/memops/metamodel/MetaModel.py give a
detailed description of the 'business rules' for the model.  
The header comments in ../python/memops/scripts/ObjectDomain.py give details
for how to enter things in ObjectDomain, where this is different from the
MetaModel.  
Both comments are generally up to date.



Highlights of the Repository Structure:

In the top directory you will find:

	data/		reference data of various kinds, e.g. Amino acid templates

	doc/		top level documentation

	java/		XML-based Java API and any related java, autogenerated or not

	javasql/	SQL database java API and any related  java, autogenerated or not

	license/	license files

	model/		language-independent model-related stuff. E.g. the ObjectDomain
			model description, XML schemas

	python/	Python API, and any python or python-related code

	sql/		database definition tables for various databases


Autogenerated code:
	
Any directory that contains any autogenerated code (model, java, javasql,  python)
will contain a directory for every top level package in the model. Currently these
are ccp, ccpnmr, and memops (shorthand: xxx). The following directories contain only
autogenerated code :

	javasql/xxx/api	java SQL api
	javasql/xxx/xml	xml loader for java sql api
	model/xxx/od		ObjectDomain model (only in memops)
	model/xxx/xml	XML schemas
	python/xxx/api	python API
	python/xxx/model	Python representation of the model. This is generated from 
				the ObjectDomain model and serves as the source for all 
				autogeneration.
	python /xxx/xml	python xml I/O and I/O mappings
	sql			database definitions


Other code:

Directories with names like general, gui, metamodel, scripts, universal and util
generally contain what you would expect. Some particularly important ones are:

python/memops/general	that contains the base classes for the API
python/memops/metamodel	that contains the base classes for model description
python/memops/format/xml	that contains the XML parser and the backwards 
				compatibility code for XML files
python/memops/scripts	that contains all code generation scripts

The scripts generally do what they say they will - any script that starts with
'make' is a driver for the actual generation scripts.
