View-Primitive-DataModel framework


The VPDMf stands for 'View Primitive Data Model framework' and is a scaffolding framework for developing knowledge-engineering systems based on a simple frame-oriented conceptual design. The system uses a encapsulation mechanism to capture schema elements into views in the design phase of developing a system. It is implemented in Java and uses a simplified representation of UML class diagrams to provide the basic architecture for the system. From this base, it is possible to generate source code for a variety of elements that are useful for biomedical knowledge engineering systems. 

Figure 1: The basic scaffolding system provided by the VPDMf

The organization of the system for constructing forward-engineered applications is shown in Figure 1. This illustrates how the VPDMf can rapidly generate a set of synchronized software elements that are archived together in a single file, and then used to generate a functional system. Executing VPDMf commands to build a system will (a) execute scripts to construct a MySQL database and populate it with preliminary data if specified, (b) generate and deploy Java Persistence Entity classes and (c) generate and deploy ActionScript classes for use within a Flex-based client. Design files are deployed under the Maven system (which specifies models using a ‘GAV’ code (standing for ‘Group/Artifact/Version’, e.g., ‘edu.isi.bmkeg’ / ‘ooevv’ / ‘0.0.7-SNAPSHOT’ denotes the latest version of the OoEVV project’s model). Because this process generates source code that must be compiled into target systems as dependencies, any changes in the underlying design that break downstream components cause compile errors that are easy to detect and fix. This embodies the underlying pragmatic philosophy of our approach: we base our work on existing low-level coding tools and practices. For example, using UML means that we can easily export representations to object-oriented languages, and using Maven permits us to deploy our systems easily as component libraries available from public repositories.