Ontologies

This page contains the aligned ontologies used as an input for the automatic proxy generation.

The ontologies are generated automatically by UPnP and DPWS OWL Writers when a device is plugged to the local network.

The generated ontologies are then aligned to semi-automatically find correspondences between equivalent device types.

Rules are then used to detect patterns between actions (Union, sequential union etc).

The generated ontologies can be viewed using the open source ontology tool: Protégé http://protege.stanford.edu/

The attached file (Mapping.pdf) shows the alignment results between three devices:
    - Lights
    - clocks
    - printers
It details the similarity values, false and optional matching as well as the overall performance.
We applied a two methods, SMOA technique and SMOA++ (an enhanced version of SMOA) using a semantic dictionary WordNet and a structural enhancer.

The results shows that SMOA++ is more efficient since it detects entities having synonyms (timer and SimpleClock) and avoid detecting entities having antonyms (Set != Get).

ATOPAI

ATOPAI is an Aligning and Annotation Framework for Plug and Play Device Interoperability. It is based on the alignment API.
ATOPAI allows to use alignment methods and then to update the mappings simply by dragging lines, adding and removing cells.
A knowledge in the ontology domain is not necessary since ATOPAI abstracts all the ontology concepts and properties and allows to manipulate ontologies and the alignments graphically.



  
The ConversionAPI

The ConversionAPI JavaDoc for the ExternalService , the Action and Conversion are attached.

We also proposed fake devices to handle use cases where linking entities is not sufficient and the user validating the alignments needs to add an adaptation code, default values, loops etc.

Use case #1 Deals with equivalent actions SetVolume <=> {GetVolume, VolumeUp, VolumeDown}.

Let a device D1, with an action a1:SetVolume(int volume). A device D2, with the actions a2:int getVolume(), a3:VolumeUp() and
a4:VolumeDown() to increase/decrease the value by 1. The user adds the Code to the action a1. When the SetVolume is invoked on the proxy, it should behave according to the following code. (This is used to refer to the selected entity).
The aligned ontology ( c.f. attachment file AlignTv.owl) is used to generate the proxy. The user added code is redirected to the files (SetVolume.ftl and SetVolumeImports.ftl) which are injected in the templates in specific call points during the code generation.

Use case #2

The second use case shows how to allow an external call from the proxy.
The validator adds the following code which will be injected during the code generation.
The injected code actually calls an external service on the OSGi framework.
The ExtService uses the Java reflection to call the external Service.

The Control point call the Action SetPS, the UPnP Proxy searches for the Service
com.PsToPdf.Converter and calls the method Convert.
The external service transforms data from PS to PDF.
Once Called, the Proxy get the returned result then invokes the action SetPDF on the DPWS device.

The added code (SetPsImpors.ftl, SetPS.ftl) and the alignment (sendPSPDF.owl) used to generate the proxy, along with The Converter Service are also attached.




The Pattern Detection

Once the alignment is validated and updated, we apply OPPL2 (Ontology Pre-Processing Language) rules to detect correspondences between actions.
See the patterns.pdf for more information about the patterns.
We listed in the OPPL2-Rules some of the rule detection used by ATOPAI.



ċ
Action.html
(14k)
Charbel el kaed,
Feb 11, 2011, 1:36 AM
ċ
AlignTv.owl
(20k)
Charbel el kaed,
Feb 7, 2011, 3:11 AM
ċ
ConvService.zip
(8k)
Charbel el kaed,
Feb 11, 2011, 1:39 AM
ċ
Conversion.html
(12k)
Charbel el kaed,
Feb 11, 2011, 1:36 AM
ċ
ExtService.html
(16k)
Charbel el kaed,
Feb 11, 2011, 1:36 AM
ċ
Mapping.pdf
(78k)
Charbel el kaed,
Feb 14, 2011, 9:54 AM
ċ
OPPL2-Rules.txt
(1k)
Charbel el kaed,
Feb 18, 2011, 2:20 AM
ċ
Patterns.pdf
(278k)
Charbel el kaed,
Mar 28, 2011, 5:43 AM
ċ
SendpsPDF.owl
(25k)
Charbel el kaed,
Feb 10, 2011, 3:20 AM
ċ
SetPS.ftl
(1k)
Charbel el kaed,
Feb 11, 2011, 1:40 AM
ċ
SetPSImports.ftl
(0k)
Charbel el kaed,
Feb 11, 2011, 1:41 AM
ċ
SetVolume.ftl
(0k)
Charbel el kaed,
Feb 7, 2011, 3:13 AM
ċ
SetVolumeImports.ftl
(0k)
Charbel el kaed,
Feb 7, 2011, 3:13 AM
ċ
clocks.owl
(24k)
Charbel el kaed,
Dec 7, 2010, 6:37 AM
ċ
lights.owl
(54k)
Charbel el kaed,
Dec 7, 2010, 6:37 AM
ċ
realPrinters.owl
(891k)
Charbel el kaed,
Dec 7, 2010, 6:37 AM
Comments