Download presentation
Presentation is loading. Please wait.
Published byEarl Marsh Modified over 8 years ago
1
Next Generation Enterprise Modelling - exercise guide - Dimitris Karagiannis, Robert Buchmann
2
Assumed requirements
3
Assumption1: A parking company publishes parking space availability as (3 rd party) Linked Enterprise Data @prefix :. :LegacyData { :ParkingA :availability 2 ; a :ParkingArea. :ParkingB :availability 0 ; a :ParkingArea. :ParkingC :availability 4 ; a :ParkingArea. :ParkingD :availability 0 ; a :ParkingArea. :ParkingE :availability 3 ; a :ParkingArea. } *Data available in provided file thirdpartydata.trig
4
Assumption2: A courier company requires a modelling tool to define courier tasks and map them to geographical areas (cities)
5
Query that only uses model information Query that uses both data and models Assumption3: A courier requires an app where he can select a task (assigned by the courier company) and can see, for that task, all available parking spaces (as published by the parking company) in order to make a reservation
6
Goal of the exercise 1.To create the required modelling tool 2.To enable the creation of the app
7
Modelling tool requirements
8
Assumption: modelling requirements evolve Phase1: I want to model what parking areas are available in each city Phase2: I want to model the courier tasks and map them on cities Phase3: I need that app Interoperability requirement
9
App requirements
10
Get only enterprise data "Give me all parking areas and their availability"
11
Get only model information "Give me all courier tasks"
12
Get enterprise data constrained by model information "Give me all parking areas from cities where I have to go"
13
Get model information constrained by enterprise data "Give me all tasks for which parking spaces are available"
14
Get both model information and enterprise data "Give me all cities where my task will take me, and the available parking spaces"
15
Exercise overview
17
Part I. Creating the modelling tool (iterative metamodelling)
18
Iteration I metamodel
19
Iteration I model sample
20
Iteration II metamodel
21
Iteration II model sample
22
Iteration III metamodel
23
Iteration III extensions
24
Part I steps Step1. Create method definition (MML file) – Required Tool: MM-DSL editor Step2. Create ADOxx-specific method library (ABL file) – Tool: MM-DSL editor/compiler Step3. Import library and create models – Tool: ADOxx Dev and Modelling toolkits
25
Iteration I. Step 1 Edit method definition code (MM-DSL) a.Unzip and open provided Eclipse MM-DSL editor b.Create an Eclipse project (File-New Project) c.Either: a.Import the provided MML file (Method files/CityTransportBasic.mml – see pages 10-11 in the guide) b.Create an empty MML file and copy-paste the code d.Have a look on the code structure
26
Iteration I. Step 2 Create ADOxx-specific method library (page 12) a.Open generated ALL file b.Compile c.Refresh explorer d.Look in src-gen folder for ABL file e.Copy-paste ABL file in convenient location
27
Iteration I. Step 3a Create modelling tool (page 13-14) a. Import ABL file in ADOxx b. Create user *Use provided Method files/CityTransportBasic_output.abl to avoid potential errors from previous step
28
Iteration I. Step 3b Create models (page 14) a.Login modelling toolkit b.Create models
29
Iteration II. Step 1 Edit method definition code (MM-DSL) a.Open provided Eclipse MM-DSL editor b.Extend code with new snippets (provided in Extension code file, table Part I) c.Save changes, check for errors d.Have a look at new code Intermediate version of the code available on the Web: http://goo.gl/PfQK5D (mml code intermediate)http://goo.gl/PfQK5D
30
Iteration II. Step 2 Create ADOxx-specific method library (page 12) a.Open generated ALL file b.Compile c.Refresh explorer d.Look in src-gen folder for ABL file e.Copy-paste ABL file in convenient location
31
Iteration II. Step 3a Create modelling tool (page 13-14) a. Import ABL file in ADOxx b. Create user *Use provided Method files/CityTransportExtension1_output.abl to avoid potential errors from previous step
32
Iteration II. Step3b Create models (page 16-17)
33
Iteration III. Step 1 Edit method definition code (MM-DSL) a.Open provided Eclipse MM-DSL editor b.Extend code with snippets (provided in Extension code file, table Part II) c.Save changes, check for errors d.Have a look at new code Final version of the code available on the Web: http://goo.gl/PfQK5D (mml code final) http://goo.gl/PfQK5D
34
Iteration III. Step 2 Create ADOxx-specific method library (page 12) a.Open generated ALL file b.Compile c.Refresh explorer d.Look in src-gen folder for ABL file e.Copy-paste ABL file in convenient location
35
Iteration III. Step 3a Create modelling tool (page 13-14) a. Import ABL file in ADOxx b. Create user *Use provided Method files/CityTransportExtension2_output.abl to avoid potential errors from previous step
36
Iteration III. Step3b Test added functionality (page 20) *Works only in ParkingMap model type
37
Part II. Bridging the technology gap to Linked Data
38
Part II steps Pre-requisite: Have models prepared Step4. Create enterprise data sample – Tool: any test editor Step5. Create model-data links – Tool: modelling tool Step6. Serialize models in XML – Tool: modelling tool Step7. Serialize metamodel in XML – Tool: ADOxx dev toolkit Step8. Transform metamodel in RDF format – Tool: RDF transformer Step9. Transform models in RDF format – Tool: RDF transformer Step10. Upload metamodel, models and enterprise data in Linked Data repository: – Tool: http://rdf.dke.univie.ac.at/openrdf-workbench Step11. Query examples – Tool: http://rdf.dke.univie.ac.at/openrdf-workbench
39
Pre-requisite: prepare models (page 21)
40
Step4. Create third party data (page 22) @prefix :. :LegacyData { :ParkingA :availability 2 ; a :ParkingArea. :ParkingB :availability 0 ; a :ParkingArea. :ParkingC :availability 4 ; a :ParkingArea. :ParkingD :availability 0 ; a :ParkingArea. :ParkingE :availability 3 ; a :ParkingArea. } *Data available in provided file thirdpartydata.trig
41
Step 5: Create model-data links (page 23) For the 4 parking objects in the Parkings model, fill the URI attribute: http://example.org#ParkingA http://example.org#ParkingB http://example.org#ParkingC http://example.org#ParkingD
42
Step6. Serialize models in XML (page 24)
43
Step7. Serialize metamodel in XML (page 25)
44
Step8. Transform metamodel in RDF (page 26-27) Use http://example.org# as a prefix! Make sure the URI attribute is turned blue before saving! *Use as input provided metamodel.xml to avoid potential errors from previous step
45
Step9. Transform models in RDF (page 28) Use http://example.org# as a prefix! *Use as input provided models.xml to avoid potential errors from previous step
46
Step 10: Upload to Linked Data server (page 29-30) Copy (URL only!) Paste (no spaces!) Use the prepared server: http://rdf.dke.univie.ac.at/openrdf-workbench Warning: at first connection, you might need to copy-paste the server URL (see below)
47
Step 10: Upload to Linked Data server (page 29-30) Create a repository (name it after you, without spaces or special characters)
48
Step 10: Upload to Linked Data server (page 29-30) Upload thirdpartydata.trig, models.trig, metamodel.trig (*use provided files to avoid errors from previous steps)
49
Step 11: Run queries (page 29-30) SPARQL Queries are provided in the Queries folder (copy-paste them in Sesame) SPARQL documentation: http://www.w3.org/TR/sparql11-query/
50
Query types Query that only uses model information Query that only uses third party data Query that uses model-data links Query available in Queries/Cities, parkings, spaces for OnDemandTask.txt Query available in Queries/Parking IDs and spaces.txt Query available in Queries/Task names.txt
51
Final app Query that only uses model information Query that uses model-data links
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.