现在的位置: 首页 > 综合 > 正文

MetaData Based MetaProgramming System (MDBMPS)

2013年03月24日 ⁄ 综合 ⁄ 共 16108字 ⁄ 字号 评论关闭

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

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

抱歉!评论已关闭.