universAAL / ontology

Collection of "official" ontologies of universAAL, which play the role of data model
13 stars 11 forks source link

Added ECHONET ontology #480

Closed Cupham closed 5 years ago

Cupham commented 6 years ago

The ECHONET ontology covers 107/108 types of device specified in the ECHONET Specification (Release J 2017)

Signed-off-by: cupham cupham@wl204148.jaist.ac.jp

amedranogil commented 6 years ago

thank you for the contribution! Is there any particular issue why device type number 108 could not be included?

This implementation seems solid, some further tests need to be cleared. I'm sure @Alfiva will accept this once he reviews it.

As this ontology models device, and there is also the device ontology, we need to create a mapping ontology, and figure out how to sort these kind of ontologies in the repo; my guess is that they should be independent ontologies.

Cupham commented 6 years ago

Thank for your reply. The 108th device called DR Controller (Demand Response Controller) is an abstract device which is not so popular and very hard to implement. Please check the readme.md file in the repository.

I am not so sure what to do next but I followed the lighting ontology to create this. If you need me to do anything else, please let me know.

Best Regards, PHAM, Van Cu

Alfiva commented 5 years ago

The ontology seems correctly built, but, as @amedranogil pointed out, there are certain duplications or concflicts with already existing ontologies. Here I summarize some of the ones I found:

Then there is the other topic metnioned before about not extending from ont.device. The core of ont.device is the concept of ValueDevice, that is, a sensor or controller that has a single centric hasValue property. Most, if not all, of the resources in echonet ontology have multiple important properties, so in theory it would be OK to not extend from ValueDevice and instead extend from Device in general.

However in many cases they could be narrowed down to a most important measured value, plus a host of additional properties. For example: The echonet resource GasSensor could simply be an extension of ont.device's own GasSensor, using its main hasValue property as the PROPERTY_HAS_GAS_DETECTION_STATUS property in echonet, and adding the other extra properties THRESHOLD_LEVEL and MEASURED_VALUE_OF_GAS_CONCENTRATION.

Including the ontolgoy could then lead to some duplicated resources, and we would need to do some ontology mapping to solve those conflicts. We haven't done that kind of mapping yet, so that would have to wait. So yes, we could include this ontology, but with all the disclaimers and warining pointing out that it should not yet be used by the general public unless they know what they are doing, I think.

I don't know, I leave that up to discussion.

P.S: If I get nitpicky I'd also say there is no need to end every package name with ...RelatedDevices

Cupham commented 5 years ago

Hello @Alfiva !

Sorry for being late for the discussion. First of all, thank you very much for spending your time to read my implementation.

The echonet ontology is a part of an effort to support for ECHONET specification in the universAAL ecosystem. According to the specification (https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/Release/Release_J_en/Appendix_Release_J_e.pdf), the current specification supports up-to 108 type of different devices with very detail properties and property restrictions (enum, value range, etc.). The current ont.device is not able to reflect the specification (please if you have time, just look at the echonet specification) so I think it is really necessary to have this ontology.

The purpose of this work is to save other developers time from reading the specification if they want to integrate with ECHONET Lite devices (mostly from Japan) into the univerAAL ecosystem. Please refer to this paper https://ieeexplore.ieee.org/document/8326218

P/S1: About the 'RelatedDevice' naming, it is written in the specification so I just keep it, however, it can be adjusted of course.

Best Regards, Pham Van Cu

Alfiva commented 5 years ago

OK, as I said, we can include the ont provided all disclaimers are properly displayed (we can do that in the wiki and/or perhaps a README). Then for me it's OK. I don't know what others have to say. The only pending thing is to see why the check is failing but I can't seem to be able to read why. Any idea anyone else? Regarding "RelatedDevice", if it's part of the specs then I guess it's OK.

Cupham commented 5 years ago

I will handle the checking and let you know soon.

Thank you very much!

Cupham commented 5 years ago

Hello @Alfiva ,

This is Pham. I replaced some enum type into Float, Integer and String types to simpler the converting forward/backward (from echonet frame into enum <=> enum into echonet frame). I committed the source code again, however, Travis check is failing again. I read the ci.sh file and I do not know whether this sentence if [ "$TRAVIS_REPO_SLUG" != "universAAL/$MY_REPO" ] || [ "$TRAVIS_PULL_REQUEST" != "false" ] || [ "$TRAVIS_BRANCH" != "master" ]; then exit 1 fi caused the error or not? I want to merge the ECHONET ontology into the uAAL platform github so that other developers from Europe (University of Genova, University of Orebo) can use it without the manually installation.

Thank you for your time!

Best Regards, Pham Van Cu

Alfiva commented 5 years ago

Hello @Cupham and thanks for the effort. I am not sure about the error either, but others who are more familiar with it might. Unfortunately this is a busy week and it may take a few days to review so please hold on to that.

Cupham commented 5 years ago

Hello @Alfiva , This is Pham again. Sorry to ask again but how about the review of the proposed ontology?

Thank You

Pham

Alfiva commented 5 years ago

It's OK for me, as I said before I was expecting someone else could look into the failed check, because I don't know why that happens.

amedranogil commented 5 years ago

@Alfiva I am sorry, but I will not be able to do this review. Currently I am working on other (VERY cool) developments for universAAL :smiley:

Alfiva commented 5 years ago

The ontology code is "reviewed" and can be merged, the only pending thing is this problem with the CI. Who can look into this? @cstockloew ?

Cupham commented 5 years ago

Hello @Alfiva, @amedranogil,@cstockloew !

After reading the CI configuration file, I think that it does not allow the pull request. The condition _if [ "$TRAVIS_REPO_SLUG" != "universAAL/$MY_REPO" ] || [ "$TRAVIS_PULL_REQUEST" != "false" ] || [ "$TRAVISBRANCH" != "master" ]; then exit 1 fi [ "$TRAVIS_PULL_REQUEST" != "false" ] means a pull request

it will exit with 1 (error) for every pull request. Could you please adjust the condition?

Best Regards, Pham

Alfiva commented 5 years ago

I just merged the pull request now, we have kept it stalled for quite long already. If the CI config fails for pull requests, it will work now that it's in master. If it doesn't we can always backtrack.

Cupham commented 5 years ago

Hello @Alfiva ,

I believe that it passed the test. Thank you very much for your time. In the near future, I would like to merge it with the Saref ontology for better interoperability. Best Regard, Pham

jonimoreira commented 5 years ago

Hello, I've been working with SAREF and I recommend the integration with UniversAAL platform. In particular, I created an extension for electrocardiogram (coined SAREF4health) - which shall be used in the current ETSI STF for e-Health and aging well - and it may be interesting for you. Emphasis was given to represent time series. The ontology is here: https://github.com/jonimoreira/INTER-IoT-EWS/blob/master/WP1-Ontology%20translations%20and%20rules/src/Ontologies/SAREF/saref4health.ttl

The paper is here: http://ebooks.iospress.nl/volumearticle/50262

Let me know if you are interested in integrating SAREF4health in UniversAAL, I can help. I have ECG wearables (Shimmer3) and the MyDriving mobile app (MS Azure IoT use case) is changed to send data to a context broker (as JSON-LD). The solution was successfully tested within the INTER-IoT project. Best regards, Joao