search for




 

Semantic Interoperability Architecture for Smart Spaces
Int. J. Fuzzy Log. Intell. Syst. 2018;18(1):50-57
Published online March 25, 2018
© 2018 Korean Institute of Intelligent Systems.

Sachin Bhardwaj1, Tanir Ozcelebi2, Johan J. Lukkien2, and Keon Myung Lee1

1Department of Computer Science, Chungbuk National University, Cheongju, Korea, 2Department of Computer Science and Mathematics, Eindhoven University of Technology, Eindhoven, The Netherlands
Correspondence to: Keon Myung Lee (kmlee@cbnu.ac.kr)
Received February 20, 2018; Revised March 15, 2018; Accepted March 19, 2018.
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
Abstract

The advancements in the smart space research bring us closer and closer to a future, in which the living standards of people are greatly enhanced. Smart spaces are composed of heterogeneous networks of embedded devices that communicate, perform computations and actuate. From a system point of view, a smart space is a specific type of ubiquitous system. Like any ubiquitous system, a smart space is usually heterogeneous, i.e. it is made up of embedded devices with various hardware, software and communication platforms. There is need for information exchange and interoperability between these embedded devices and their services. However, embedded devices in a smart space vary in terms of their sensing, actuation and control capabilities, as well as their resources of processing, storage, and networking. For an interoperability solution, this paper proposes a semantic interoperability architecture for smart spaces. The description details of an ontology model and interoperability interactions between smart objects are explained. An example implementation of a heterogeneous smart lighting system as a smart space using the proposed semantic interoperability architecture is discussed.

Keywords : Smart spaces, Semantic interoperability architecture, Smart lighting
1. Introduction

In smart spaces [1], the hardware and software of an individual object can differ from another object. They may utilize different communication technologies; for example, power line technologies such as X10 [2] and LonWorks [3], wireless technologies such as IEEE 802.15.4, wired technologies such as IEEE 802.3, and CAT5 wires for audio, video or data communication. On the other hand, middleware such as Jini [4], HAVi [5] and UPnP [6] may need to connect the components of a smart space. These communication technologies and services supported by a middleware in smart spaces are causing a problem of heterogeneity even at layers above the network stack. Heterogeneity for smart spaces provides system interconnectivity with multiple entities to achieve joint execution of services. Heterogeneity at higher levels ultimately aims at semantic interoperability, which proves to be difficult due to the isolation of its components and the requirement for joint execution of services. This problem is generating great demand for a semantic interoperability solution.

Semantic interoperability depends on the contexts shared by its objects, which may utilize different hardware and software platforms as well as different communication protocols, forming a heterogeneous network. In this respect, the contexts of an object are represented in semantics for the common understanding between objects. In linguistics, semantics refer to the ‘study of meaning’. It is used for understanding human expression by the basic elements of a language. These elements are referred to as symbols, for example, a character string that is used to (collectively) designate a meaning. The meaning is to be derived from the relations between symbols, concepts and things in the real world. What we express a concept in symbols is possible to express in different symbols by others, but the meaning of the symbols help to understand the concept. This means that any two or more symbols can have the same meaning in the real world. For example, ‘human’ in the English language is known as ‘menselijk’ in the Dutch language and humain in French but the meaning of the respective symbols collectively is same in all three languages.

Semantics are constructed with syntax and pragmatics. In linguistics, the syntax defines the rules, principles and processes by which (potentially meaningful) sentences are constructed in a language. The pragmatics is the study of relationships between a sentences made using such syntax and their meanings. Several researchers in linguistics and programing language fields are working on semantics [79]. In this paper, we study the meaning of contexts, which is referred to as semantics. Contexts are represented in semantics in a way that allows certain types of relationships to be discovered by ontologies. In other words, ontologies capture semantics in a way that allows relationships to become visible. There are two standards, which govern instructions of ontologies: Resource Description Framework (RDF) [10] and Web Ontology Language (OWL). Smart spaces ontologies created using these standards help to develop semantic interoperability between objects in smart spaces. Semantic interoperability means that a source object and a receiver object can interact in a meaningful manner through shared semantics. All contexts in a smart space have some meaning and it is necessary to make the mapping in between. Semantic interoperability can be established between two objects if the mapping between contexts, more specifically the semantics corresponding to these contexts, define an onto mapping (surjective) between the objects. The contexts C represent semantics S in a domain of smart spaces, where C is a set of contexts and S is the set of semantics.

Definition 1 (Semantic interoperability)

Consider a function f (of onto mapping) that maps the elements of a set C to elements of a set S, f : CS. Semantic interoperability is given by

s=f(c).

By definition of the onto mapping f maps every element cC to a corresponding element sS and multiple elements of C may correspond to the same element of S.

For example, consider the set of context ca involves temperature and light sensors; and cb involves temperature, light and humidity sensors. Semantic interoperability established either when the unique elements of ca and cb represent the unique semantics sa and sb; i.e. fA(ca) = sa and fB(cb) = sb where ∀cC ∧ ∀sS or when the intersection of ca and cb represents the unique sc i.e., fC(cacb) = sc where ∀cC ∧ ∀sS. This means when the measured temperature in the same activity area of ca and cb must have a single semantic representation for semantic interoperability whereas the measured temperature at different activity areas must represent the unique semantic for each context.

Semantics may be dynamic and may change over time. Semantic interoperability must be able to modify the processing of ever changing semantics. The changes in semantics also must follow the conditions defined in Definition 1. This requires a smart space architecture to have compatible mechanisms for representing, modifying and updating semantics in order to produce meaningful and valid results. In this paper, we adopt the baseline architectures i.e., Smart-M3 form high capacity smart objects (HCSOs) that have plenty of resources and OSAS (Open Service Architecture for Sensors) [11, 12] for low capacity smart objects (LCSOs) that are resource poor. We propose a semantic interoperability architecture for exchanging contexts between objects. Several other researchers are working on designing a semantic interoperability architecture [1315]. In the following subsections, we briefly explain our baseline architectures for the proposed semantic interoperability architecture of Smart-M3.

Smart-M3 is a blackboard architecture and provides a solution for information interoperability in smart spaces. Smart-M3 introduces three main components of a smart space, by which the information can be stored, removed and browsed: Knowledge Processor (KP), Semantic Information Broker (SIB), and Smart Space Access Protocol (SSAP). A KP is an entity that produces or consumes information in Smart-M3. SSAP is a protocol that defines a simple set of primitives to insert, remove and access data in the SIB, and it can be used on top of transport technologies such as TCP/IP and Network on Terminal Architecture (NoTA) [16]. A KP can use SSAP for several transactions such as join, leave, insert, remove, update, query, subscribe, and unsubscribe to manage information in a smart space. Since SSAP is transport layer independent, the same SIB can serve KPs over several transport technologies at the same time.

The KP-SIB interface architecture is shown in Figure 1. The KP functionality is split into three layers: KP Interface (KPI), KP Daemon and SIB access transport technology. The KPI provides mappings of SSAP to different programming languages and frameworks. It also handles the SSAP operations on the KP side and interfaces to a KP Daemon. The KP Daemon provides a transport-independent view of the available SIBs to the KPI. It will map each SIB access to the correct transport in a SIB access transport technology. The SIB access transport technology is made up of different transport processes, which connect to the KP Daemon. Currently, NoTA SIB access and TCP SIB access transports have been implemented. The SIB is composed of components of transport services and the SIB daemon. The transport services such as NoTA SIB service and TCP SIB service are responsible for receiving messages from appropriate transports and parsing the messages. The SIB daemon is composed of three logical layers inside: Request Handling, Graph Operations and Persistent Store. The request handling will handle the SIB operations from KPs that are received by the transport services, perform the necessary graph operations and send the confirmation back to the KPs. All requests are handled in separate threads. The graph operations are responsible for translating the operations on graphs (sets of semantics) to semantics operations that can be stored at a persistent store. The persistent store is responsible for storing the semantics that make up a graph, and performing read, write and delete operations on them.

2. Semantic Interoperability Architecture

The proposed Semantic Interoperability Architecture (SIA) for smart spaces (based on our baseline architectures Smart-M3 and OSAS) in a blackboard architecture style is shown in Figure 2. It consists of four basic physical components: semantic producers and consumers, semantic repository, semantic gateway, and LCSOs. The definitions of these components are given in Table 1. All these components of semantic based smart space are integrated by an ontology model and operated by the KP interface.

A semantic integration approach is developed for sharing information among LCSOs and HCSOs. There have mainly been two approaches to integration of LCSOs and the Internet so far: (i) Pure TCP/IP solutions, in which LCSOs implement the TCP/IP stack (or a compatible set of protocols such as 6LoW-PAN [17, 18] in 802.15.4 networks); and (ii) gateway solutions, in which a particular node acts as an application layer gateway (e.g., base station), for the purpose of making the lower layer protocols from both networks (e.g. TCP/IP and IEEE 802.15.4) transparent and routing the information from one point to another. In the first approach, sensor nodes are able to address Internet nodes directly. However, this approach does not scale well since each and every LCSO in smart spaces would need to exchange information with the SIB very frequently. In the second approach, Internet hosts and LCSOs are able to address each other and exchange information without establishing a direct connection. Therefore, we propose a semantic gateway that runs an OSAS framework for installation of subscriptions and exchanging services among LCSOs. It also helps to connect with HCSOs and translates the information needed to be exchanged.

A semantic repository, i.e., a SIB, is the semantics repository of a smart space. It provides a service interface for KPs i.e., KPI. The KPs can access semantics within a smart space by connecting to a SIB. The KPs can insert new semantics into a smart space and remove obsolete or otherwise undesirable semantics from a smart space. The semantic repository also reacts to the changes in the semantics content through subscriptions in a smart space. For example, the subscriptions are persistent queries that notify the subscribing KP every time the query results change. Therefore, this allows the KPs to react appropriately to the changes in smart spaces. The complete SIB interface is a union of the consumer and producer interfaces.

Since there are several KPs connected to a smart space, the KPs cannot expect the inserted semantics to remain unchanged until the time they read it again. Also, the insertion and removal of the information may leave the content of the smart space in an inconsistent state with regards to any ontology. This is prevented by an internal ontology enforcement process, or fixed by an internal ontology repair process, which are run automatically by a SIB. This ontology repair and enforcement are additional features, which are integrated in the SIB by Smart-M3.

An ontology model is required for the ever-changing domains in smart spaces, which provides a flexible and up-to-date description of the domains. Therefore, an ontology model can play the role of a flexible unit in smart spaces to achieve semantic interoperability. An ontology model has a semantic reasoner component to provide the decision rules and is supported by the semantic representor component and the SSAP protocol in the semantic interoperability architecture.

The semantic representor provides a language to translate information into semantics, where the information is specified using the RDF vocabulary description language. RDF provides a common framework for expressing the information of resources so that it can be exchanged between objects without loss of meaning. RDF is based on the idea of identifying things using Web identifiers (called Uniform Resource Identifiers, or URIs), and describing resources in terms of simple properties and property values. This enables RDF to represent simple statements about resources as a graph of nodes (representing resources) and arcs (representing resource properties and values). Resources may be divided into groups called classes. The members of a class are known as instances of the class. Classes are themselves resources. They are often identified by RDF URI references and are described using RDF properties. The structure of the RDF representation shares the meaning of contexts between objects. For this purpose, the classes and their relationships are represented, e.g., using RDF triples. An RDF triple consists of subject, predicate and object, represented by {Subject; Predicate; Object}, where the subject and predicate are the resources and their properties defined by a URI while the object is a literal or a resource. The generic RDF triple graph with an example is shown in Figure 3. For instance, the information “light has intensity of 500 lux” is represented as semantics (i.e., a set of triples) given by {(“Light”, “hasIntensity”, “500”), (“Light”, “hasUnit”, “lux”)}.

RDF also allows advanced structures such as classification and containment to the features supported by XML, similar to object-oriented programming languages. Classification is realized for a resource through specifying an <rdf:type> property whose corresponding value is <rdfs:Class> from the RDF schema. Instances of a specific class can then be defined by creating a type-tag that points to the corresponding resource. The example of the RDF format is shown in Table 2.

The update in the RDF graph is done by a semantic reasoner, where the semantic reasoner defines a logical reasoning based on the decisions rules. The decision rules are defined by Smart-M3 and used directly in this paper. The SIB has a reasoning engine based on reasoning with OWL. The reasoning engine has RDF schema [19] which constitutes the classes and its properties.

The SSAP transactions are used in the semantic interoperability architecture through SSAP protocol to communicate between KPs and SIB. The SSAP protocol has in total 18 different message types. These messages are used to control the transactions: JOIN, INSERT, REMOVE, UPDATE, SUBSCRIBE, UNSUBSCRIBE and QUERY [20].

3. Semantic Interoperability Interactions

We have considered a general scenario based on two smart spaces consisting different SIBs called as Smart Space A (SSA) and Smart Space B (SS-B) with SIBA and SIBB respectively as shown in Figure 4. This general scenario explains the semantic interoperability interactions for exchanging information between two smart spaces. SS-A consists of many KPs such as KPA1…KPAn and a gateway KP (GWKP) for LCSOs. In this smart space, a KP shares information with other KPs that are joined to the same SIBA. Therefore, KPA1…KPAn to join the SIBA make a local smart space for all KPs in this smart space. The communication technology for all KPs is SSAP protocol over Internet and for LCSOs, it is based on IEEE 802.15.4 communication standard. SS-B consist of KPB1…KPBn and similarly make a local smart space with all KPs in this smart space. If a KP from one smart space need to share information globally then it requires a Smart Space Aggregator KP (SSA-KP) to connect both smart spaces. The SSA-KP is a KP and is used to aggregate the information between these two smart spaces, i.e., connect SIBA and SIBB. Therefore any KP such as KPA1 can exchange information with KPB1 through SSA-KP. The interactions of KPs, GWKP, SIB-A, SIB-B and SSA-KP are shown in Figure 5. All KPs, GWKP, and SSA-KP need to join a SIB to be present in a smart space. Here, all KP-A and GWKP are connected to SIBA and all KP-B are connected to SIBB. The SSA-KP is connected to both SIBs to aggregate information from SIBA and SIBB. The respective SIB to a particular KP gives confirmation after successfully joining the SIB. Therefore, two transactions are established in joining transaction i.e., joining request (Join-req) by a KP and joining confirmation (Join-cnf) by a SIB. A producer KP needs to first insert information (In-Info) at SIB and then update the information (Up-Info) periodically. In this case study, we have two producer KPs such as GWKP and KP-A. Therefore, the producer KPs has initial transaction (In-Info) and then the numbers of further transactions are based on an updating period. A consumer KP needs to subscribe (Sub-Info) for particular information in smart spaces and get updates accordingly from SIB (Up-Info). Similar to the insert transaction for the producer KPs, the consumer KPs need to subscribe once and wait updates from SIB. Then the SIB updates the subscribed information periodically. In this case study, KP-B in SS-B behaves like a producer and consumer KPs both. In addition to the GWKP, it needs to install address (Ins-Add), services (Ins-Ser), and subscriptions (Ins-Sub) on all LCSOs such as Sensor Node (SN) and Actuator Node (AN). The SN and AN report the information to the GWKP based on the subscription periods established for the services. Further this information is stored at SIB to exchange with other KPs. Finally, all KPs and GWKP can leave the smart space by a leave request (Leave-req) at SIB. Therefore, the smart objects are able to interact and share information through SSAP transactions.

4. Conclusions and FutureWork

This paper proposes a semantic interoperability architecture and its components. The major components of the semantic interoperability architecture are semantic repository, semantic gateway, LCSOs, smart space aggregator, semantic producers and semantic consumers. Semantic interoperability is established by an ontology model and its interoperability interactions are explained. The smart lighting applications using the proposed semantic interoperability architecture is experimented in [12, 21]. We focused on sensor nodes and their services for gathering information from the environment in the implementation of the proposed solution. Examples of such information are temperature, humidity, light intensity and motion data. We considered information exchanged for a single application domain i.e., smart lighting. These experiments are possible to extend in terms of network traffic and multiple applications for a performance analysis.

The tradeoff between performance and scalability is not investigated yet within the context of the proposed semantic interoperability architecture for smart spaces. This investigation is considered as future work. The objective of this investigation will give the scope of using number of SIBs in a single smart space to maximize the performance for large scale smart space installations (e.g., for smart cities).

Acknowledgement

This research was supported by Next-Generation Information Computing Development Program through the National Research Foundation of Korea (Grant No.: NRF-2017M3C4A7069432).

Conflict of Interest

No potential conflict of Interest relevant to this article was reported.


Figures
Fig. 1.

SIB and KP interface architecture.


Fig. 2.

Semantic interoperability architecture.


Fig. 3.

Generic RDF graph.


Fig. 4.

Case study scenario of SIA for smart spaces.


Fig. 5.

Interactions of KPs, SIBA, SIBB, GWKP and SSA-KP.


TABLES

Table 1

Description of SIA components

NameDefinition
Semantic producerObjects with capability of producing semantics by translating information of a surrounding physical environment into semantics of the smart space.
Semantic consumerObjects with capability of consuming semantics received from the smart space.
Semantic repositoryAn entity with capability of storing semantics and providing an ontology model for reasoning.
Semantic gatewayAn entity to work as an interpreter of translating physical readings into semantics and vise-versa.
Smart space access protocolProvide transactions facility through the sets of instructions defined in the protocol such as query, subscription between smart space entities.

Table 2

Example of RDF format

rdf:ID=”Resource”
 xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#
 xmlns=”uri”>
value
value

References
  1. Youngblood, M, Cook, DJ, and Holder, LB 2005. Seamlessly engineering a smart environment., Proceedings of IEEE International Conference on Systems, Man and Cybernetics, Waikoloa, HI, Array, pp.548-553.
  2. Lumpkins, W (2015). Home automation: Insteon (X10 meets powerline) [Product Reviews]. IEEE Consumer Electronics Magazine. 4, 140-144.
    CrossRef
  3. Neugebauer, M, Plonnigs, J, Kabitzsch, K, and Buchholz, P 2004. Automated modeling of LonWorks building automation net-works., Proceedings of IEEE International Workshop on Factory Communication Systems, Vienna, Austria, Array, pp.113-118.
  4. Lee, S, Lee, Y, and Lee, H (2006). Jini-based ubiquitous computing middleware supporting event and context management services. Ubiquitous Intelligence and Computing. Heidelberg: Springer, pp. 786-795
    CrossRef
  5. Lea, R, Gibbs, S, Dara-Abrams, A, and Eytchison, E (2000). Networking home entertainment devices with HAVi. Computer. 33, 35-43.
    CrossRef
  6. Lu, Y, Fang, F, and Liu, W 2009. Home networking and control based on UPnP: an implementation., Proceedings of 2nd International Workshop on Computer Science and Engineering, Qingdao, China, Array, pp.385-389.
  7. He, H, Watson, T, Maple, C, Mehnen, J, and Tiwari, A 2017. A new semantic attribute deep learning with a linguistic attribute hierarchy for spam detection., Proceedings of International Joint Conference on Neural Networks, Anchorage, AK, Array, pp.3862-3869.
  8. Shekarpour, S, Hoffner, K, Lehmann, J, and Auer, S 2013. Keyword query expansion on linked data using linguistic and semantic features., Proceedings of IEEE 7th International Conference on Semantic Computing, Irvine, CA, Array, pp.191-197.
  9. Wani, S, Wahiddin, MR, and Sembok, TMT 2016. Logicolinguistic semantic representation of documents., Proceedings of IEEE 14th International Conference on Dependable, Autonomic and Secure Computing (DASC), 14th International Conference on Pervasive Intelligence and Computing (PiCom), 2nd International Conference on Big Data Intelligence and Computing (DataCom), and Cyber Science and Technology Congress (CyberSciTech), Auckland, New Zealand, Array, pp.773-780.
  10. Maillot, P, Raimbault, T, Genest, D, and Loiseau, S 2014. Consistency evaluation of RDF data: how data and updates are relevant., Proceedings of the 10th International Conference on Signal-Image Technology and Internet-Based Systems, Marrakech, Morocco, Array, pp.187-193.
  11. OSAS (The Open Service Architecture for Sensor). Available: http://www.win.tue.nl/san/osas/progmodel.html
  12. Bhardwaj, S, Syed, AA, Ozcelebi, T, and Lukkien, J (2011). Power-managed smart lighting using a semantic interoperability architecture. IEEE Transactions on Consumer Electronics. 57, 420-427.
    CrossRef
  13. Kiljander, J, D’elia, A, Morandi, F, Hyttinen, P, Takalo-Mattila, J, Ylisaukko-Oja, A, Soininen, JP, and Cinotti, TS (2014). Semantic interoperability architecture for pervasive computing and internet of things. IEEE Access. 2, 856-873.
    CrossRef
  14. Strassner, J, and Diab, WW 2016. A semantic interoperability architecture for Internet of Things data sharing and computing., Proceedings of IEEE 3rd World Forum on Internet of Things (WF-IoT), Reston, VA, Array, pp.609-614.
  15. Abbas, S, and Ojo, A 2013. Towards a linked geospatial data infrastructure., Proceedings of the International Conference on Electronic Government and the Information Systems Perspective, Prague, Czech Republic, Array, pp.196-210.
  16. Keranen, J, Raty, T, Jurmu, P, Maki, M, and Puolitaival, OP 2011. Conformance testing in service-oriented interconnection technologies in NoTA., Proceedings of the 8th International Conference on Information Technology: New Generations, Las Vegas, NV, Array, pp.304-309.
  17. Ma, X, and Luo, W 2008. The analysis of 6LoWPAN technology., Proceedings of IEEE Pacific-Asia Workshop on Computational Intelligence and Industrial Application, Wuhan, China, Array, pp.963-966.
  18. Wang, X, and Mu, Y (2015). Addressing and privacy support for 6LoWPAN. IEEE Sensors Journal. 15, 5193-5201.
    CrossRef
  19. W3C. (1999) . Resource description framework (RDF) schema specification. Available: https://www.w3.org/TR/1999/PR-rdf-schema-19990303/
  20. Kiljander, J, Morandi, F, and Soininen, JP (2012). Knowledge sharing protocol for smart spaces. International Journal of Advanced Computer Science and Applications. 3, 100-110.
    CrossRef
  21. Bhardwaj, S, Ozcelebi, T, Lukkien, J, and Verhoeven, R 2010. Semantic interoperability in a heterogeneous smart lighting system., Proceedings of the IEEE Symposium on Computers and Communications, Riccione, Italy, Array, pp.1035-1040.
Biographies

Sachin Bhardwaj received the B.Tech. degree in computer science and engineering from U.P. Technical University, India in 2004. He received the M.S. degree in Ubiquitous and Network Engineering from Dongseo University, Busan, Korea in 2007. He is now working as a researcher at Artificial Intelligence Lab, Department of Computer Science, Chungbuk National University, Korea. His research interest lies in smart spaces, artificial intelligence, semantic interoperability, and big data analysis.

E-mail: s.bhardwaj.spy@gmail.com


Tanir Ozcelebi was born in Konya, Turkey, in 1980. He received the B.Sc. degree in electrical and electronics engineering from Bilkent University, Ankara, in 2002 and the Ph.D. degree in electrical engineering from Koc University, Istanbul, in 2006. In 2006, he joined the System Architecture and Networking Research group at Eindhoven University of Technology as a postdoctoral researcher, an became an assistant professor in the same research group in 2008. His research interests are resource and service discovery and management, quality of service management for networked systems and design of smart distributed systems

E-mail: t.ozcelebi@tue.nl


Johan J. Lukkien is the head of the System Architecture and Networking Research group at Eindhoven University of Technology since 2002. He received M.Sc. and Ph.D. from Groningen University in the Netherlands. In 1991 he joined Eindhoven University after a two years leave at the California Institute of Technology. His research interests include the design and performance analysis of parallel and distributed systems. Until 2000 he was involved in large-scale simulations in physics and chemistry. Since 2000, his research focus has shifted to the application domain of networked resource-constrained embedded systems. Contributions of the SAN group are in the area of component-based middleware for resource-constrained devices, distributed coordination, Quality of Service in networked systems and schedulability analysis in real-time systems.

E-mail: j.j.lukkien@tue.nl


Keon Myung Lee is a professor in the Department of Computer Science, Chungbuk National University, Korea. He received his B.S., M.S., and Ph.D. degrees in computer science from KAIST, Korea and was a postdoctorate fellow at INSA de Lyon, France. He was a visiting professor at the University of Colorado at Denver and a visiting scholar at Indiana University, USA. His principal research interests are data mining, machine learning, soft computing, big data processing, and intelligent service systems.

E-mail: kmlee@cbnu.ac.kr