panSL main page

panSL language reference. Table of contents.

Classification

Describes some common terms used when describing panSL and how they should be understood.

The keywords shown for Classification are not part of panSL in itself.

Field nameDescription

ApplicationImplementation

By ApplicationImplementation is meant either:

A) An automatically generated (based on panSL) fully functional ready to use application enabling the user to immediately enter and query data
(as with a traditional spreadsheet or desktop database). The panSL Implementation MyLittleDatabase may be used to generate such
ApplicationImplementations.

or

B) A "traditional" application, developed with any kind of development tool but with panSL used in the initial prototyping stage.
The panSL Implementation generates components like Prototype user interface, ER diagram, Relational schema, Database schema,
and application source code for the chosen architecture, language and developing environment.
The panSL Implementation AgoRapide may be used for such initial development.

It is assumed to be quite natural for an application to start its life as type A), that is as a fully automatic generated application
with panSL as the only source of specifications, and then to migrate to B) when more advanced needs arise.

A consultancy could for instance give the customer some experience with a fully automatic generated application in order to
clarify specifications and users awareness before continuing the development process in a more traditional manner.

ComplexType

A PropertyType which consist of several sub-values (sub PropertyTypes). For instance Address which may consist of several sub-values like Street_name and Street_number

Example:

Street_address
   Street_name
   Street_number
   Postal_code
   City

DefaultFormula

By DefaultFormula is meant a Formula which is only evaluated once, when a new Property is created.
After the Property has been created the user may change the evaluated value.

Example:

Diary_entry
   Date_of_creation_1 Date Default=Now.DatePart
   Date_of_creation_2=Created.DatePart
   Text

In the example Date_of_creation_1 may be changed by the user after creation of a new Diary_entry,
while Date_of_creation_2 is a permanent Formula and may not be changed.

Entity

Any PropertyType with child PropertyTypes. For instance a PropertyType "Person" with children "First_name" and "Last_name"

Note: Sometimes the term Entity is used for a PropertyType without parents in the panSL schema, but Root would be a more precise term.

Enum

PropertyTypes which must have one of several distinct values (enumerations).

For instance Days_of_the_week which must be one of Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.

Example:

Days_of_the_week
   Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday

Implementation

An Implementation of panSL is a system which is able to parse a panSL schema and then generate one or both of:

A) A fully functional ready to use ApplicationImplementation enabling the user to immediately enter and query data
(as with a traditional spreadsheet or desktop database).

B) Basic components for initializing the development of a traditional ApplicationImplementation like
Prototype user interface, ER diagram, Relational schema, Database schema, and application source code for
common architectures, languages, developing environments and techniques.

An actual Implementation of panSL may be used for the following purposes:

1) Modeling entity relationsships (a traditional ER-diagram should be offered in such cases). Live data may be used in an autogenerated user interface.

2) Application prototyping (offering SQL-schemas for common databases and source-code for common architectures, languages, developing environments and techniques.
The panSL Implementation might produce a basic ApplicationImplementation, upon which can be built more functionality in the traditional manner.

3) Teaching / studying of modelling and databases. panSL is suitable for use at many levels, from primary school to university.

4) Demonstration of new languages and development paradigms.
panSL is sufficiently flexible to be used for automatic generation of source-code for database-centric applications for a wide range
of languages and paradigms. If you want to demonstrate a new technology, for instance a new web-based client / server architecture,
a panSL Implementation may be used to autogenerate source-code for a wide range of examples. The Implementation AgoRapide as of April 2012
demonstrates some basic generation of C#, Java and VB source-code. More languages, techniques and paradigms may be added at any time.

5) Hosting of web-based spreadsheets and databases.

As of April 2012 two Implementations are offered by the author of panSL Bjørn Erling Fløtten:

AgoRapide with emphasis on modelling, application prototyping and teaching.

MyLittleDatabase with emphasis on hosting of web-based panSL spreadsheets and databases.

LoginIdentificator

In a typical panSL Implementation like MyLittleDatabase this signifies an address or telephone number capable of receiving a login code.

Some examples of LoginIdentificators are the DataTypes SMS and EMail.

Property

An actual instance of a PropertyType is called a Property.
The Property "John" may for example be an instance of the PropertyType "First_name".

PropertyType

A PropertyType describes what kind of information to store, restrictions that apply and characteristics about how
instances should be shown in the autogenerated user interface.

The definition of a PropertyType may consist of its
name (consisting of one or more SubNames), DataType, Cardinality, IdentificationUsefulness, HistoryType, AccessRole.

A PropertyType may be defined as a Formula consisting of Operators and Functions.

An actual instance of a PropertyType is called a Property.
The Property "John" may for example be an instance of the PropertyType "First_name".

RelationManyToMany

A relationship where both sides are of type Many.

Example:

Person
   Name
   Assigment   RelationMany
Task
   Name
   Assigment   RelationMany

In the example a person may be assigned to many tasks and a task may be assigned to many persons.

When constructing a relational database schema with a
many-to-many relationship between two entities a third table is needed to store every separate relation.

Root

Entity without parent.

Root in itself is not used as a keyword in panSL.

Root-entities are typical things like "Person", "Organisation", "Contract".

SubClass

SubClasses are indicated by the simplification Type.

Example:

Unit
   Person                 Type
      First_name
      Last_name
      Date_of_birth
   Organisation           Type
      Name
      Registration_number
   Phone_number
   Address

In the example the SuperClass Unit has two SubClasses, Person and Organisation. The PropertyTypes Phone_number and Address are common between the two Subclasses.

Summable

Every PropertyType of a DataType which may be summed up to give a number, like Decimal, Integer or Percent.

An Implementation should take this as a hint to offer correspondingly sums in tables.

SuperClass

A Class with one or several inherited SubClasses.

Example:

Unit
   Person                 Type
      First_name
      Last_name
      Date_of_birth
   Organisation           Type
      Name
      Registration_number
   Phone_number
   Address

In the example the SuperClass Unit has two SubClasses, Person and Organisation. The PropertyTypes Phone_number and Address are common between the two Subclasses.

panSL language reference. Table of contents.

More samples available at http://panSL.org/samples/.

Last updated 2012-05-02