A fundamental problem in computing is the poor treatment of scientific data. Compilers do not include methods for bundling units and uncertainties with the data, leaving this basic data management to software engineers. The limitations in data processing create a significant potential for a systematic error that could lead to incorrect results, or, in the case of medical applications, could prove to be life threatening. In this project, software objects will be developed to fully describe the scientific information, including the presence of data, the uncertainty, and the units. Processing packages will be used to manage units conversion, data localization, mathematical operations, and other analysis and statistics operations. In Phase I, models for all data managers were designed and implemented as software prototypes. The technology was extensively tested, including an implementation in an ultra-large, nuclear data visualization package. A large number of new directions were identified and pursued as part of an effort to demonstrate the feasibility of the technology and its need in society. In Phase II, the Java data structures technology will be fully implemented, including software managers for units, standards, uncertainties, data localization, advanced data collections, and math and analysis. Software will be ported to C/C++ and FORTRAN and installed in scientific applications where extensive software testing and validation will be performed.
Commercial Applications and Other Benefits as described by the awardee: A number of products should be produced from this technology. In the simplest form, object libraries can be sold to software developers. Compiler manufacturers can license the technology to enhance their products, and licenses can be sold to hardware and operating system manufacturers for embedding in desktop and other computers.