Innovator uses a number of terms that are either completely unique or just defined a little differently than in other systems. I'll attempt to define a few of them here, with more to come later:
- ItemType: An ItemType is a construct that defines the data structure and behavior of its instances (items), analogous to a class in the object-oriented world. Unlike a class, however, an ItemType is created using a simple user interface and stored in a database, making it much more dynamic and adaptable. Each ItemType has a corresponding table in the database to store its instances.
- Item: An Item is an instance of an ItemType, and the basic building block of Innovator. Simply put, EVERYTHING in Innovator is anItem, be it a Document, a Purchase Order, a Form, a Workflow or whatever else. Each item corresponds to a row in the ItemType'stable.
- RelationshipType: RelationshipTypes define which ItemTypes are related to one another, and the behaviors of the relationship. RelationshipTypes have a Source ItemType (the parent), an optional Related ItemType (the child) and a Relationship ItemType.
- Relationship: Also known as a Relationship Item, a Relationship is an instance of a Relationship ItemType. A Relationship has aSource Item and an optional Related Item. When no Related Item is specified, the Relationship is known as a Null Relationship.
- Property: A Property is a piece of information tracked about an Item. Each Property has a name, a label, a data type, and a number of other properties to define its behavior (yes, properties have their own properties, but that's self-describing for you). A Propertycorresponds to a column in the ItemType's table.
- Form: A Form is a definable piece of the Innovator user interface, often used to view and edit instances of a particular ItemType. Formsare configured using a drag and drop utility, stored in the database, and rendered dynamically.
- Field: A Field is a user interface primitive used to display information on a Form. Fields may be, but are not required to be bound to aProperty.
- Identity: Identities form the basis for the Innovator security model. Identities are hierarchical, and may represent a user, a group, a group of groups, and so on.
- AML: Adaptive Markup Language is the XML dialect that drives Innovator. All communication between the Innovator client and server is done in AML. A future post will go into detail on the dialect, but for now let's just call this the secret sauce.
- IOM: The Innovator Object Model is an object API to Innovator. It is used in both client- and server-side methods to manipulate Innovator items.