# A Survey of Techniques for Discovering, Using, and Paying for Third-Party IoT Sensors
## 3 Related Work for Sharing IoT Devices
### Related Research for Querying IoT Devices
[21] have experimented for up to 500,000 IoT devices to evaluate the querying of IoT devices using SPARQL as can be seen in Table 5. These evaluations were based on centralized databases and not on an IoT-owned infrastructure. As we explained earlier in Section 3, there is a need for indexing IoT devices and data descriptions to support fast queries and, therefore, support the scalability of IoT device query techniques and the global sharing of IoT devices. [PERSON] et al. [36] have proposed using a geospatial indexing technique to reduce the search space for a faster IoT device query. They aimed to divide IoT devices based on geographic area, where the IoT device discovery was divided into distributed gateways and each gateway stored the description of IoT devices that are connected to it. Linked Sensor Middleware (LSM) [13] uses a spatial indexer for indexing IoT devices. LMS provides a basic indexing technique based on the type and location of IoT devices [21]. These techniques are limited to spatial indexing and cannot index IoT devices based on other properties (e.g., IoT device type or data units). The experiment conducted by [PERSON] et al. [36] was limited to one small geographical area and a maximum of 1000 sensor services. [PERSON] et al. [21] have proposed using a Comparative-Priority-based Weighted Index (CPWI) technique for indexing IoT devices based on an IoT application's needs. This technique indexes IoT devices during query time by calculating the similarity between the IoT application's needs and the stored IoT device and data descriptions via a priority-based, weighted Euclidean distance in a multi-dimensional space mechanism. They have also applied heuristic filtering and a filtering-based relational expression to minimize the total amount of IoT devices and data descriptions that are required to be processed. This technique is able to index heterogeneous IoT devices. [PERSON] et al. [21] have conducted an experiment to index up to 1,000,000 IoT devices with an indexing time that did not exceed 1000 ms.  
[PERSON] et al. [46] have proposed using Probabilistic Latent Semantic Analysis (PLSA) and Latent Dirichlet Allocation (LDA) for indexing IoT devices based on a comparison between the IoT application's query and the IoT device and data descriptions. There was no experiment to show the scalability of this technique. \begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Scalable**} & \multirow{2}{*}{**IoT-Owned**} & \multirow{2}{*}{**Interoperable**} & \multirow{2}{*}{**Comprehensive**} & **Full Support of** \\  & & & & **Qaverging IoT** \\  & & & & **Devices** \\ \hline Ref. [34] evaluates & & & & None of the \\ querying up to & & & & related work \\
1,000,000 IoT & & & & fully supports \\ devices & None & None & & querying IoT \\ Refs. [21; 36] evaluate & & & & devices \\ querying up to 500,000 & & & & \\ IoT devices & & & & \\ \hline \hline \end{tabular}
\end{table} 
Table 5: A summary of the review of related work for querying Internet of Things devices. [PERSON] and [PERSON] [38] have used a space-filling technique to index the sensor data (i.e., IoT data). Also, Tree-based (e.g., LOST-Tree) techniques were used to index IoT data by using spatial information. [PERSON] et al. [15] have used geospatial and temporal information to index IoT data. They have used Geohash tagging to provide geospatial information. Singular Value Decomposition (SVD) has also been used to reduce the dimensionality of Geohash vector data before applying a k-means clustering algorithm to allocate IoT data among repositories. [PERSON] et al. [47] have claimed that the main bottleneck for IoT device discovery is the indexing technique. Therefore, they have proposed shifting part of the time that is required for indexing IoT data from the IoT device registration to the IoT device query to provide faster IoT device discovery. The authors did this by indexing the parts of IoT data that are related to the IoT application's query during query time.