1. The following is the version 0.1 schema for project tracking db based on
   CCP4i def file contents. 


CREATE TABLE Project (ProjectId INTEGER primary key,
            ProjectName VARCHAR(20),
            Owner VARCHAR(45),
            Path VARCHAR(45));

CREATE TABLE Job (jobId INTEGER primary key,
            ProjectId INTEGER,
            Status VARCHAR(45),
            Application VARCHAR(45),
            Taskname VARCHAR(45),
            Title VARCHAR(45),
            LastModified DATETIME,
            LogFile VARCHAR(45),
            ControlFile VARCHAR(45),
            NotebookFile VARCHAR(45));

CREATE TABLE File (FileId INTEGER primary key,
             Name VARCHAR(45),
             Path VARCHAR(45),
             Format VARCHAR(45),
             LastModified DATETIME,
             Note VARCHAR(45));

CREATE TABLE JobFile ( JobId INTEGER,
             FileId INTEGER,
             Type VARCHAR(10));

CREATE TABLE JobLink (JobId INTEGER,
             NextJobId INTEGER,
             Note      VARCHAR(45),
             Type      VARCHAR(45));


2. The ClientAPIs for these schema are:

class Project:
     newProject(projectname)
     setOwner(pid,owner)
     setPath(pid,path)
     getProjectId(projectname)
     getOwner(pid)
     getPath(pid)

class Job:
      newJob(projectname)
      setData(jobid,item,value)
      getData(jobid,item)
      setStatus(jobid,status)
      getStatus(jobid)
      setTaskname(jobid,taskname)
      getTaskname(jobid)
      setTitle(jobid,title)
      getTitle(jobid)
      setLastModified(jobid,time)
      getLastModified(jobid)
      setLogFile(jobid,logfile)
      getLogFile(jobid)
      setControlFile(JobId,ControlFile)
      getControlFile(JobId)
      setNotebookFile(JobId,NotebookFile)
      getNotebookFile(JobId)

class File:
      newFile()
      setName(FileId,Name)
      getName(FileId)
      setPath(FileId,Path)
      getPath(FileId)
      setFormat(FileId,Format)
      getFormat(FileId)
      setLastModified(FileId,LastModified)
      getLastModified(FileId)
      setNote(FileId,Note)
      getNote(FileId)
    
class JobFile:
       newJobFile()
       setFileId(JobFileId,FileId)
       getFileId(JobFileId):
       setType(JobFileId,Type)
       getType(JobFileId)

class JobLink:
      newJobLink()
      setNextJobId(JobLinkId,NextJobId)
      getNextJobId(JobLinkId)
      setNote(JobLinkId,Note)
      getNote(JobLinkId)
      setType(JobLinkId,Type)
      getType(JobLinkId)
      
