MetaData Based MetaProgramming System (MDBMPS)
Author(s): | The Add 1 to COBOL Team |
---|---|
Date: | 2009-01-26 15:46 |
Revision: | 318 |
Status: | Experimental - Not for public release |
Description: | Specification for a metadata based metaprogramming system and the follow throughs. |
Table of Contents
- 1 Abstract
- 2 Introduction
- 3 Meta Data
- 3.1 Purpose
- 3.2 Examples of metadata
- 3.3 Levels
- 3.4 Definitions
- 3.5 Metadata and Markup
- 3.6 Hierarchies of metadata
- 3.7 Difference between data and metadata
- 3.8 Use
- 3.9 Types of metadata
- 3.10 Metadata risks
- 3.11 Metadata lifecycle
- 3.12 Storage
- 3.13 Criticisms
- 3.14 Types
- 3.15 Information Technology and Software Engineering metadata
- 3.15.1 General IT metadata
- 3.15.2 IT metadata management products
- 3.15.3 Relational database metadata
- 3.15.4 Data warehouse metadata
- 3.15.5 Business Intelligence metadata
- 3.15.6 File system metadata
- 3.15.7 Program metadata
- 3.15.8 Existing software metadata
- 3.15.9 Document metadata
- 3.15.10 Digital library metadata
- 3.15.11 Image metadata
- 3.15.12 Geospatial metadata
- 3.15.13 Meta-metadata
- 3.16 Further Explanations
- 4 Metaprogramming
- 4.1 What Is Metaprogramming
- 4.2 Metalanguage
- 4.3 Object language
- 4.4 Template Metaprogramming
- 4.5 Automatic programming
- 4.6 Attribute-Oriented Programming
- 4.7 Reflective Programming
- 4.8 Case Tools
- 5 Database
- 5.1 Architecture
- 5.2 Database management systems
- 5.3 Database models
- 5.4 Database storage structures
- 5.5 Indexing
- 5.6 Transactions and concurrency
- 5.7 Replication
- 5.8 Security
- 5.9 Locking
- 5.10 Applications of databases
- 5.11 Relational Databases
- 5.12 (DBMS) DataBase Management System
- 5.13 More on Normalization
- 5.13.1 Objectives of Normalization
- 5.13.2 Free the database of modification anomalies
- 5.13.3 Minimize redesign when extending the database structure
- 5.13.4 Make the data model more informative to users
- 5.13.5 Avoid bias towards any particular pattern of querying
- 5.13.6 Background to normalization: definitions
- 5.13.7 Normal forms
- 5.13.8 Denormalization
- 5.13.9 Non-first normal form (NF² or N1NF)
- 6 Security
- 7 Usability
- 7.1 Definition
- 7.2 Investigation
- 7.3 ISO standards
- 7.4 Usability considerations
- 7.5 Evaluation methods
- 7.6 Evaluating with tests and metrics
- 7.7 Prototypes
- 7.8 Benefits of usability
- 8 Accessibility
- 9 User Interface (UI)
- 10 Reporting
- 11 Networking
- 12 Interfacing (using other apps and libraries)
- 13 Communication (between running applications)
- 14 Debugging
- 15 Problem Solving
- 16 Project Planning
- 17 Program Maintenance
- 18 MDBMPS Programming
- 18.1 MetaData-Based
- 18.2 Data-based vs Metaprogramming
- 18.3 Combining methods
- 18.4 Templates
- 18.5 Snippets
- 18.6 Generated Code
- 18.7 Embedded Code
- 18.8 Repositories
- 18.9 Decision Table to COBOL Translator
- 18.9.1 Decision Tree Introduction
- 18.9.2 Structure of a Decision Table
- 18.9.3 Description of DECTRANS
- 18.9.4 Program Format
- 18.9.5 Table Linkage
- 18.9.6 Table Header Entry THDR
- 18.9.7 Initialisation INIT (optional)
- 18.9.8 Rule Header RHDR
- 18.9.9 Body entries
- 18.9.10 Termination of the Decision Table EODT
- 18.9.11 Discussion on Blank Entries
- 18.9.12 Conventions and Restrictions
- 18.9.13 Implementation Considerations
- 18.9.14 Dectrans Processor Diagnostics
- 18.10 Code Generator Specifications
- 19 Metadata Specifications
- 20 Delivery Specifications
- 21 Notes
- 22 Changes
- 23 Summary
- 24 Copyright
1 Abstract
This specification defines MetaData Based MetaProgramming System (MDBMPS), a concept for all coding languages.
2 Introduction
Computer software is [usually] really nothing more than a series ofinstructions in a machine readable format generally called"machine language" (A great deal of this
infomation will be familiar toMIS/IT personnel. It is included only for completness, though in greatlyoversimplified format.). Machine language can be thought of as hundreds,thousands, millions, billions and even more of a series of 1's and 0's.Originally
programmers created applications directly in
machine language,a tedious approach for sure. Further complicating matters is that variouscomputer system have their own
machine language.
As time went on, programmers began to notice repeating patterns in the codethat they created. So they would save and then reuse these patterns.Eventually from this process, the concept of the
compiler was born.A
compiler takes instructions written in a human readable language andconverts it or compiles it, into
machine language, then the program canbe run many times thereafter. An
interpreter functions similarly, exceptthat it translates the program into
machine language each time it is run.A further advantage of
compilers and
interpreters is that the humanreadable version of a program is often transferable from one kind ofcomputer system to another. Programs became portable.
Compilers and
interpreters dramatically increased the efficiency ofcreating software programs. Still, Systems Analysts, Programmers, andCoders are always looking for tools which increase their efficiency evenmore, while also reducing errors. As occured when programming
inmachine language, we have noticed that we'll write repeating patterns inhuman readable programming languages. So often we will save these assnippets
for reuse throughout the many programs that we will design.Alternatively, a
template can provide a skeleton for an entire program,so that the programmer only has to fill in certain parts of the
templatewith code unique to the application he is working on (perhaps withsnippets
as well).
Two of the most efficient tools at a programmer's disposal are programsdesigned for
metaprogramming and for managing
metadata.Metaprogramming is simply writing software, which writes software.Metadata is data,
or information, about data, such as the layout ofdata structures. While there have been efforts to combine these twoconcepts, often the resulting systems stop just short of a complete,cohesive unit.
The MetaData Based MetaProgramming System (MDBMPS) proposes to take the extra steps necessary to create afully workable and complete unification of these two processes. TheMDBMPS will be a system of tools and procedures which will enablea programmer to create
his own templates and snippets, use those of othersand combine these in ways which will speed and ease his development cycle.
This paper will explain MetaData, MetaProgramming, CASE Tools, Templates,Snippets, Embedded Code and other factors needed to begin coding theMDBMPS. At the paper's end, a skilled MIS/IT individual or teamshould have enough information to begin formally planning
the system'sconstruction.
3 Meta Data
Metadata (meta data, or sometimes metainformation) is "data about other data",of any sort in any media. An item of metadata may describe an individualdatum, or content item, or a collection of data including multiple contentitems and hierarchical levels,
for example a database schema. In dataprocessing, metadata is definitional data that provides information aboutor documentation of other data managed within an application or environment.The term should be used with caution as all data is about something,
andis therefore metadata.
For example, metadata would document data about data elements or attributes,(name, size, data type, etc) and data about records or data structures(length, fields, columns, etc) and data about data (where it is located,how it is associated, ownership, etc.).
Metadata may include descriptiveinformation about the context, quality and condition, or characteristicsof the data. It may be recorded with high or low granularity
3.1 Purpose
Metadata provides context for data.
Metadata is used to facilitate the understanding, characteristics, andmanagement usage of data. The metadata required for effective datamanagement varies with the type of data and context of use. In a library,where the data is the content of the titles stocked,
metadata about a titlewould typically include a description of the content, the author, thepublication date and the physical location.
3.2 Examples of metadata
3.2.1 Book
Examples of metadata regarding a book would be the title, author, date ofpublication, subject, a unique identifier (such an International StandardBook Number), its dimensions, number of pages, and the language of thetext.
3.2.2 Photograph
Metadata for a photograph would typically include the date and time at whichit was taken and details of the camera settings (such as focal length,aperture, exposure). Many digital cameras record metadata in exchangeableimage file format (EXIF).
3.2.3 Audio
A digital audio file, such as an MP3 of a song, might include the albumname, song title, genre, year, composer, contributing artist, track numberand album art.
3.2.4 Web page
The HTML used to mark-up web pages allows for the inclusion of a varietyof types of meta data, from simple descriptive text, dates and keywords tohighly-granular information such as the Dublin Core and e-GMS standards.Pages can be geotagged with coordinates.
Metadata may be included in thepage's header or in a separate file. Microformats allow on-page data to bemarked up as meta data. The Hypertext Transfer Protocol used to link webpages also includes metadata.
3.3 Levels
The hierarchy of metadata descriptions can go on forever, but usuallycontext or semantic understanding makes extensively detailed explanationsunnecessary.
The role played by any particular datum depends on the context. For example,when considering the geography of London, "E8 3BJ" would be a datum and"Post Code" would be metadatum. But, when considering the data management ofan automated system that manages
geographical data, "Post Code" might be adatum and then "data item name" and "6 characters, starting with A–Z" wouldbe metadata.
In any particular context, metadata characterizes the data it describes, notthe entity described by that data. So, in relation to "E8 3BJ", the datum"is in London" is a further description of the place in the real world whichhas the post code "E8 3BJ", not
of the code itself. Therefore, although itis providing information connected to "E8 3BJ" (telling us that this is thepost code of a place in London), this would not normally be consideredmetadata, as it is describing "E8 3BJ" as a place in the real world and
notas data.
3.4 Definitions
3.4.1 Etymology
Meta is a classical Greek preposition and prefix conveying the followingsenses in English, depending upon the case of the associated noun: among;along with; with; by means of; in the midst of; after; behind. Inepistemology, the word means "about (its own
category)"; thus metadata is"data about the data".
3.4.2 Varying definitions
The term was introduced intuitively, without a formal definition. Becauseof that, today there are various definitions. The most common one is theliteral translation:
- "Data about data are referred to as metadata."
Example: "12345" is data, and with no additional context is meaningless.When "12345" is given a meaningful name (metadata) of "ZIP code", one canunderstand (at least in the United States, and further placing "ZIP code"within the context of a postal address)
that "12345" refers to the GeneralElectric plant in Schenectady, New York.
As for most people the difference between data and information is merely aphilosophical one of no relevance in practical use, other definitions are:
- Metadata is information about data.
- Metadata is information about