Le nombre de capteurs et d’appareils connectés augmentent chaque année. Ces appareils dits intelligents sont de plus en plus connectés à internet et les données sont envoyées sur le web pour créer des applications IoT. Ces dernières nécessitent la conception et le déploiement de nouveaux services capables de prendre des applications multiples, évolutives et interopérables (multi-domaines), parmi d’autres exigences logicielles et d’infrastructures.
L’interconnexion et l’interopérabilité des appareils connectés sont considérées comme un défi dans l’IoT. En effet, selon les usages pour lesquels ces appareils ont été conçus, la sémantique et l’échange d’informations entre eux varient considérablement, faisant de l’IoT un monde riche mais aussi hétérogène. Le raisonnement sémantique est l’une des solutions pour relever ce défi. Dans les paragraphes suivants, nous allons plonger dans la démonstration en expliquant le raisonnement sémantique et les technologies clés utilisées telles que SAREF et SPARQL.
Raisonnement sémantique
Un raisonneur sémantique est également connu sous le nom de moteur de règles, de moteur de raisonnement ou de raisonneur. Ce logiciel est capable d’inférer des conséquences logiques à partir de l’ensemble des axiomes ou des faits affirmés disponibles. Les raisonneurs sémantiques généralisent la notion de moteur d’inférence en offrant un ensemble plus riche de mécanismes pour effectuer des opérations.
Un langage ontologique et un langage de logique de description sont généralement utilisés pour spécifier les règles d’inférence utilisées par les raisonneurs sémantiques. De nombreux raisonneurs sémantiques effectuent des tâches de raisonnement en employant la logique des prédicats du premier ordre. Cela implique que l’inférence se fasse par chaînage en avant et par chaînage en arrière.
Il existe également des raisonneurs probabilistes comme les réseaux logiques probabilistes et les systèmes de raisonnement non axiomatiques.
Le raisonneur utilisé dans cette démo
En général, un cycle de raisonnement peut être divisé en 5 étapes :
SPARQL couvre déjà les trois premières étapes (la requête SELECT pour la l’identification et la sélection et la requête CONTRUCT pour la transformation). En ajoutant des règles à la requête SPARQL on peut également faire du raisonnement. De ce fait, le raisonneur utilisé dans cette démo utilise principalement SPARQL. En effet, le raisonneur prend en entrée une instance correspondant à un modèle conforme à SAREF ou d’autres ontologies ainsi que les règles à appliquer, ensuite une requête est exécutée cette instance et un résultat est généré sous forme d’un graphe RDF.
Les cas d’utilisation
Premier cas d’utilisation
Ce premier cas d’utilisation comprend un capteur de température, un ventilateur et un radiateur. Le raisonneur traite les informations provenant de ces appareils et propose des actions en fonction de la mesure de température de l’habitation. Les règles à appliquer sont les suivantes :
- Règle 1 :
- Si la température à l’intérieur de la salle est inférieure au seuil bas, la salle est considérée froide.
- Si la température est supérieure au seuil haut, la salle est considérée chaude.
- Si la température est entre les deux seuils, la salle est considérée en température
- Règle 2 :
- Si la température est supérieure au seuil de ventilation, le ventilateur est mis dans l’état On. Il est dans l’état Off dans le cas contraire.
- Règle 3 :
- Si la température est inférieure au seuil de radiation, le radiateur est mis dans l’état On. Il est dans l’état Off dans le cas contraire.
Deuxième cas d’utilisation :
Les fournisseurs qui proposent des plans d’énergie en fonction des heures de consommation fixent des heures de pointe et des heures creuses, chacune avec ses propres tarifs d’électricité. Les heures pleines sont celles où la demande est la plus forte et où les tarifs sont les plus élevés, les heures creuses sont celles où la demande est la plus faible et où les tarifs sont les plus bas. Néanmoins, les horaires peuvent varier d’un fournisseur à l’autre.
Les appareils électroménagers comme la machine à laver sont les plus grands consommateurs d’énergie. Par conséquent, dans ce cas d’utilisation, nous proposons d’utiliser la machine à laver uniquement pendant les heures creuses et si la puissance disponible dépasse la puissance requise.
De la même manière, les informations et les données caractérisant la machine à laver sont introduits dans le modèle RDF. Ensuite une requête est exécutée pour décider si la machine à laver peut être utilisée en fonction de l’heure actuelle et les règles suivantes :
- Règle 1 :
- Si l’heure actuelle ainsi que la durée d’utilisation de la machine à laver sont incluses dans l’intervalle des heures creuses, on entre dans la règle 2.
- Règle 2 :
- Si la puissance disponible est supérieure à la puissance requise par la machine, la machine est mise en marche indiquant le message « Available power is sufficient ». Sinon, le message suivant est envoyé : « Not enough Power ».
Exemple de l’utilisateur :
Après avoir expérimenté avec les cas d’utilisation précédents, un utilisateur a la possibilité de tester l’outil lui-même sur un exemple personnalisé. En effet, l’utilisateur peut dans un premier temps charger ses données RDF, ensuite, il est possible d’exécuter une requête SPARQL sur ce modèle. Finalement, l’utilisateur décide de télécharger ou voir le résultat sur la page web en fonction du format de sortie de son choix.
Démonstrateur Trilab
Le démonstrateur est disponible en ligne ici. Allez l’essayer !
Vous pouvez y retrouver les trois scenarios mentionnés au-dessus.
Dans le scénario 1 vous pourrez :
- Définir les valeurs les différents seuils de température
- Simuler une valeur de la température en déplaçant le curseur représentant des températures dans l’intervalle [0, 60°C].
Dans le scénario 2 vous pourrez définir :
- Les prix de l’électricité
- Les horaires correspondants
- La puissance disponible
- La durée de la lessive
Dans les deux cas, l’application met à jour et réaffiche le modèle d’entrée conforme à SAREF. Une requête SPARQL est ensuite exécutée sur ce modèle en fonction des règles prédéfinies, dont le résultat est imagé par une animation.
Vous pouvez également raisonner sur votre propre modèle. L’utilisateur choisit le fichier contenant le modèle de données personnel.
- En cliquant sur le bouton load, ce fichier est chargé par l’application.
- L’utilisateur écrit la requête à exécuter en y incluant toutes les règles.
- En cliquant sur le bouton Save Query, la requête écrite par l’utilisateur est téléchargée dans son répertoire local.
- L’utilisateur choisit ensuite le format du résultat souhaité parmi les formats suivants : xml, json, html, txt.
- En cliquant sur le bouton Query, la requête est exécutée sur le modèle et le résultat est affiché dans une autre page. Le résultat peut être sauvegardé directement sur le répertoire local si Download Response est sélectionné avant de cliquer sur le bouton Query.