Social Internet of Things Simulator
The Social Internet of Things Simulator has been designed and implemented in order to empower our proposal for a SIoT ecosystem, where an intelligent agent (Device, Task or Human Agent) creates new social bonds with other agents. The users of this tool are given the capability to create a virtual SIoT world. For the development of the SIoT simulator the Processing software sketchbook has been used, and the implementation of the agents has been based on the JADE framework. Regarding the support for the semantic web, the Jena Apache Framework was preferred. Finally for the publishing of the topics and the subscription to them, the MQTT connectivity protocol was used, while RabbitMQ was used as broker.
The tool consists of three tabs and a main visual panel. In these three tabs (user, object and application tab), the user-administrator is able to dynamically introduce other users, objects and applications. For each of the above, a name, an EPC code or ID, the services offered and the corresponding needs should be defined at the initialization phase of the instances. In case the generated instance is an object or an application, the user must enter also the ID of its owner. This leads to the creation of a descriptive file written in turtle format, which contains the above information. The parental friends of the objects are initialized randomly.
Afterwards, the software agent representing the generated instance is created. During initialization, the agent parses the descriptive file using SPARQL to discover the ListOfServices, the ListOfNeeds and the ParentalFriends list of the entity that it represents. The agent request from its owner to send him his OwnershipFriends. When they are retrieved, a friend request is send to them. If the OwnershipFriends produce a topic that fulfills a need of the agent, he subscribes to it.
The needs that have not been covered are characterized as unfulfilled. The second task the agent should execute is the service discovery (if there are any unfulfilled needs). If there still exists at least one unfulfilled need then the agent should procced in creating Co-LocationFriends, Co-WorkFriends or OccasionalFriends. All the created instances are shown as nodes in the main panel while the interaction (relationship) they have with other devices are represented by links between them.
In order to overcome the interoperability problems that emerge from the heterogeneous nature of the IoE entities, we have developed two ontologies: Social Smart Object’s Relationships Ontology (SSOR-Ont) and Smart Object’s Needs and Services Ontology (SONS-Ont).
SSOR-Ont defines semantically the social relationships of the IoE entities and contains five main classes:
- OwnershipFriend: It describes the relationship between smart objects that belong to the same owner.
- Co-WorkFriend: It is the “friendship” established between cooperative smart entities.
- Co-LocationFriend: It depicts the social relationship between smart entities that are located in the same place.
- OccasionalFriend: It is a “friend” that the smart entity “meets” sporadically in a Mobile Ad-Hoc Network (MANET). OccasionalFriend refers to the Social object relationship.
- ParentalFriend: It is a relationship that comes from the manufacturer and is referred to smart objects created in the same production batch.
On the other hand, SONS-Ont has as main class the SIoT Agent that defines the services that are produced by a smart entity, the needs it has and the type of the SIoT agent (i.e. user agent). The Service class is the facility that a smart entity offers. For example, a lamp offers lighting or the air-condition offers cold air. Each Service is mapped to a Topic, empowering the Publish-Subscribe pattern that ASSIST takes advantage of, and has a unique URI. Finally, the Need class responds to the resources a smart entity has to consume for achieving its goal. For example, a Jogging Planner has to be aware of the weather in order to form a jogging schedule for the week. The main reason for exploiting this ontology is to emphasize on the collaboration between smart IoE entities (both physical and cyber physical) and, consequently, to enforce the formation of new co-work relationships between them.
Publications & Links
- P. Kasnesis, C. Patrikakis, D. Kogias, L. Toumanidis and I. S. Venieris. "Cognitive Friendship and Goal Management for the Social IoT", Accepted for publication in the Computers & Electrical Engineering, Elsevier. 2016.
- P. Kasnesis, L. Toumanidis, D. Kogias, C. Patrikakis and I. S. Venieris. "ASSIST: An Agent-Based SIoT Simulator". In the Proceedings of the 2016 IEEE World Forum on Internet of Things. 2016.
- Development status: Version 1.0 released