Business object properties

First released in version: 3.2

Define data models to support context-aware business applications, tightly integrated with location data

Summary

Business object properties provides the following capabilities:

  • User-extensible definition of functional and relational properties of types
  • Creation and deletion of properties
  • Query, creation, update and deletion of property assertions
  • Query, creation, editing and deletion of 3D spatial properties of objects and spatial relationships between objects

SmartSpace allows the definition of relationships between objects by using either Simple Properties or Complex Properties.

Simple Properties

SmartSpace enables developers to flexibly create the types necessary to define a new application data model. User-defined types are created with appropriate properties, which can be any of the basic numeric or string types as well as user-defined types already defined in the data model. In SmartSpace, these are called Simple Properties.

Types which represent real-world objects can include one or more Space Properties, which are the geometric extents (zones) defined around the object that move and interact with the spaces of other object types in the data model when objects are given a location.

Additionally, multiple inheritance is fully supported, so that new types can be created from a combination of parent types which own the properties required.

Complex Properties

By using Simple Properties, one-to-one and many-to-one relations between objects can be specified. Complex Properties allow the inclusion of joins between types so that one-to-many or even many-to-many relations can be defined. This is really valuable when it becomes necessary to store or operate on sets of data, or some conditional fact must be asserted based on the state of multiple objects in the data model.

Where a relation between types is a fact, whether it is either true or false, the relation must be qualified by some underlying logic. This relation must be asserted either by an integrated third-party business system or through the SmartSpace Business rules engine (whose logic is implemented using the Rules engine developer).

User Interfaces

The feature includes a full development and object explorer thick-client GUI, which provides a drag-and-drop interface for creating new types, instantiating new objects, and interrogating and editing object properties and states.

Simple types and attributes

When the Business object properties feature is included in your SmartSpace license (if you have one or more of: Visibility, Business rules, Reporting), you can extend basic types with a greater selection of properties, called simple properties.

This makes it possible to add many different property attributes to types so that they can hold the important characteristics, state and even relations for a type which allow it to become a true class of object for new user-defined applications. You can define custom properties to satisfy SmartSpace-specific application functionality, or to match entities already defined in other business systems, or both.

In addition to the space property available to all basic types, Business object properties extends the set of basic types that can be used as object properties to any of the basic string, logical, time and numeric types, including string, bool, time, int and double respectively.

Additionally, custom types can be added as properties to types, making it possible for simple types to reference or address instances of other types in the data model.

Key Facts about Simple Types

There are three kinds of property types
  • Data storage: String, Int, Double, Bool, Time
  • Spatial relationship monitoring: Space
  • User-defined data: Object
Users can create new Object types
  • Object types contain sets of objects (e.g. Person has Jack, Mary and Pete)
  • Object types can be quite abstract (e.g. Gender has male and female)
Object types obey ‘is a’ relations
  • If T has a parent type P, then T ‘is a’ P
Object types can have name properties
  • When defined, a name is used instead of the underlying Object ID to refer to the object
  • Not all types need to have names

Example of Custom Types used as Properties

In the example below, three custom types–Colour, Model and Customer–are added as properties to the Product type.

Diagram showing three custom types that are properties of another type

Adding a simple property to a custom type

When any of the Visibility, Business rules, Reporting or Applications integration components have been licensed, it is possible to add any number of additional, simple properties to an Object Type using the Business object properties feature. Types and objects and their properties are created using the SmartSpace Config application. You can find a description of the workspace for creating types and objects in . The instructions below take you through adding a simple property to a custom type.

An example would be to create a new custom Type called Quality Note with a property called severity with an integer type.

Start by creating a custom Type called Quality Note:

You can now add a property to the type:

  1. Select Quality Note from the list of types.
  2. Double-click <Create new property>.

    screen shot showing the creation of a new integer property

  3. Give the property a name.
  4. When adding properties to types, you specify which service manages the property and hence where its values are stored. There are three choices:

    • the site-level object property data service (the default)
    • the site-level assertion store
    • with the licensing of the Real-time rules engine, the cell-level object property data service

    In general, you can accept the default. For further information on SmartSpace data services and their use in real-time systems, see .

  5. Ensure you have selected the Int type from the type dropdown.
  6. Save the change.

If you now select Quality Note in the Types and objects workspace, an additional row of details is displayed with the severity property followed by Int.

screenshot showing new integer property listed for the quality note type

Adding a custom type as a property

When any of the Visibility, Business rules, Reporting or Applications integration components have been licensed, it is possible to add any number of additional, custom properties to an Object Type using the Business object properties feature. Types and objects and their properties are created using the SmartSpace Config application. You can find a description of the workspace for creating types and objects in . The instructions below take you through creating one custom type for use as a property of another.

An example would be to create a new custom Type called Quality Note and add it as a property to a Wing object Type.

Start by creating a custom Type called Quality Note:

screen shot showing creation of the Quality Note type

Add a selection of Properties to this new Type:

screen shot showing properties added to the Quality Note type

You can now add the Quality Note type as a custom property of the Wing Type:

screen shot showing the Quality Note property being added to the Wing type

Adding a complex property

When any of the Visibility, Business rules, Reporting or Applications integration components have been licensed, it is possible to add any number of properties to define complex relations between types using the Business object properties feature. These complex properties are created using the SmartSpace Config application. You can find a description of the workspace for creating complex properties in .

Complex properties allow you to link different types together in such a way that the link defines some new or useful state in the system. They also allow you to define one-to-many or even many-to-many relations.

In the example below, a complex property is created such that when one type's extent is contained by another type's extent a new row is added to the property.

  1. Start by creating a new complex property to define a relationship between the disassociation zone of the Tag Disassociation Point and the extent of the Object type. In the Types and objects workspace, double-click <Create new complex property> and add the following details.

    Creating a complex property example

  2. Next you define a containment relation for the two objects. In the Spatial properties workspace, double-click <Add new request> and add the following details.

    Adding a spatial relation

  3. If you move an object into the disassociation zone you can see the condition being met and the resulting property row being created.

    In the Place objects workspace, choose Tag Disassociation Point disassociation zone contains Object extent from Show spatial relationships so you can see the relevant spatial extents and see when the relationship is met. Next ensure there is an instance of the Tag Disassociation Point type placed on the map. Here there is an object, shipping gate, based on this type. Then place an instance of an Object type, here xx12345, and ensure it is contained by the shipping gate (the shipping gate's extent is highlighted in blue).

    Object contained by shipping gate

    When an object moves fully into the disassociation zone, a row of data is added to the complex property. In the Types and objects workspace, drag 'Tag Disassociation Point' disassociation zone contains 'Object' extent into the Object browser to see it.

    New row added to a complex property