Task: To enhance an existing concept model of rental service for e-Scooters and cars.
Concept Model overall structure
The modelview below contain a show the object/information types needed in a rental service for e-scooters and cars. In the "Type definition" container at the right you se currently defined Objecttypes Types: "Person", "Company", "Fleet", "Location", "EScooter" and "Car", with Relationship Types "has" and "contains".
In the left container we have the predefined (from IRTV-metamodel ) objects Role and Tasks used for the rental service.
A person fills the role of User that performs the task of renting an e-scooter or car. The person has a position (coordinates) which is used to determine the location where to seach for nearby e-scooters or cars. The rental service is based on the concept of a fleet of e-scooters and cars. The fleet is a collection of vehicles which consists be e-scooters and cars
Property and relationship definition for the Car and EScooter Objecttypes
To define more details of the model we add the properties and relationships in a new Modelview named "05-Vehicle" shown below. the Car and EScooter are defined with some common properties, and Vehicle that has some special properties for the rental service, like vehicleId and price. Vehicle aslo contains the GPS coordinates of the vehicle. On the right side of the modelview we see the datatype definition for the properties. The defualt datatype is "String".
Property and relationship definition for the Person and Vehicle Objecttype related to position with Coordnates property.
Below we see the definition of the properties and relationships for the Person, Vehicle Position Objecttypes.
Datatype, Inputpatterns and Value definitions
The datatype definition for the properties is shown below. A DataType can have list fo allowed values. The DataType can also have defined a InputPattern which is a regular expression that defines the allowed values for a property.
Define a View for specific Tasks
Vi can define a View for specific Tasks. The View can be used to define the properties that are used in that Task. Below you can se that the Locate Vehicle Task uses the GPS coordinates for the Person and the of the vehicles to find vehicles nearby.
Generating a Metamodel from the Type definition model.
From this Type definition model, we can now generate a Metamodel that apears in the as Types in the palette on left side in the Solution model. This Types are used to build the solution model and by creating instances of the types.
Add Role and Tasks for maintenance and repair of e-scooters.
We now want to add new Tasks for maintenance and repair of e-scooters. We start with copying the Type definition model from the 01-ConseptRental Modelview, and paste view into the 01.1-ConseptMaint modelview. Then we add a new Container "Task Model Maintenance" where we add the new Tasks and Roles. Then we add relationships to the Type definition model.
The generated Metamodel.
The generated Metamodel vil be used as Metamodel for the Solution model. The Object types are shown below in the Palette types at the left.
Generated objecttypes
12
Copied role and tasks objects
The Rols and Tasks are copied from the Type definition model and can now be used in the solution model.
Test of the generated Metamodel
We can now test the generated Metamodel by creating instances of the objecttypes.
How to create instances from the objecttypes
Drag and drop the objecttypes from the Palette to the Canvas (Modelling area). Right click on the object and select "Edit Object" to open the property dialog to add attribute values.Test Solution Model
Below is a test solution model, where we use the generated metamodel to build an example model to test the Metamodel.
If we are not satisfied with the generated Metamodel, we can change the generated Metamodel and rerun the generation.
Other examples of use AKM Modeller.
Object types imported from OSDU Repository.
We can import type definitions from OSDU Repository. This is JSON Type definition stored as JSON files.
Below is a model view of the imported type definitions.