Federated learning for remote IoT over LPWAN: Preliminary insights from structural health monitoring
Analyze & explore related research in Conceptio
Connect this record directly into your research workflow or AI agent. Explore citations across open repositories, query full text, and export structured proof bundles.
Accepted for Presentation at IEEE ANTS 2026.
Federated Learning for Remote IoT over LPWAN: Preliminary Insights From Structural Health Monitoring
arXiv:2611.11156v1 [cs.NI] 8 Nov 2026
Lakshmiprasanna Bandaru, Anshika Singh, Tarutal Ghosh Mondal, T. Jothi Saravanan, and Siddhartha S. Borkotoky Indian Institute of Technology Bhubaneswar, Khordha 752051, Odisha, India 24sp06005@iitbbs.ac.in
Abstract—Realizing federated learning (FL) in remote regions lacking reliable cellular infrastructure is challenging, as it requires dependable communication among participating devices. Low-power wide-area networks (LPWANs) offer an attractive communication solution for such scenarios. However, their limited data rates necessitate careful investigation of the communication-learning trade-offs and mechanisms to reduce communication overhead. This paper presents an investigation of the Long Range (LoRa) LPWAN technology for FLbased structural health monitoring (SHM), a representative remote IoT application. We consider a SCAFFOLD-based FL framework for multi-class anomaly detection and analyze the latency-accuracy trade-off. We also examine strategies for allocating the LoRa spreading factor (SF) during model-update exchange. Numerical results show that, with appropriate SF allocation, LoRa-supported FL-SHM can achieve competitive learning accuracy. In particular, jointly accounting for link distances and clients’ dataset sizes when selecting the SF provides a favorable balance between convergence performance and communication latency. These preliminary findings offer useful insights into the design of FL systems over LPWANs for remote IoT deployments.
Fig. 1. Representative overview of LoRa-based FL for remote SHM.
Area (LPWA) technologies offer a promising solution by enabling long-range communication at low power. However, these benefits come at the cost of low data rates and interference-induced packet losses due to operation in unlicensed spectrum, whereas FL requires dependable iterative transfer of substantial amounts of information among devices. An investigation of this trade-off in the context of remote IoT deployments is the focus of this work. For this purpose, we consider the representative use case of population-based structural health monitoring (SHM), where sensor data from multiple geographically distributed structures are utilized for learning-aided analysis, fault detection, and predictive maintenance [1]. In view of the privacy and security concerns associated with the sharing of structure-specific data for centralized learning, FL provides a natural solution for learning-driven SHM. This has led to a recent surge of interest in FL-aided SHM [2]– [7]. However, structures such as bridges are often located in remote regions with limited cellular infrastructure. This motivates us to investigate the latency-accuracy trade-off of an FL-based SHM system supported by bandwidthconstrained LPWANs. Specifically, we consider Long Range (LoRa) communications, a prominent LPWA technology, for FL parameter
Index Terms—Federated learning, remote IoT, LPWAN, LoRa, structural health monitoring
I. Introduction Federated learning (FL) has emerged as a promising paradigm for enabling collaborative machine learning across geographically distributed Internet of Things (IoT) devices. FL allows clients to collaboratively train a machine-learning model through iterative exchange of model parameters rather than raw data, thus preserving data privacy. However, realizing FL in remote regions lacking reliable cellular infrastructure remains challenging, as it requires reliable communication among participating devices. Legacy wireless technologies such as Bluetooth, WiFi, and ZigBee cannot support the long communication ranges typically encountered in such deployments without multi-hop solutions, which increase system complexity. Cellular technologies provide an alternative; however, their reliance on communication infrastructure limits deployment in regions lacking coverage. Low Power Wide This work was supported by the Anusandhan National Research Foundation (ANRF), Government of India, through its Advanced Research Grant (ARG) No. ANRF/ARG/2025/011639/ENS.
1
2
exchange in the context of a population-based SHM framework that employs SCAFFOLD-based anomaly detection using a cable-stayed bridge dataset. A representative depiction of such a scenario is shown in Fig. 1. For the considered setup, we characterize the learning accuracy, training time, and device airtime. We further investigate spreadingfactor (SF) allocation strategies for LoRa-enabled FL and demonstrate the benefits of jointly accounting for communication conditions and client data contribution during SF selection. The resulting observations provide useful preliminary insights into the design of FL systems over LPWANs for remote IoT deployments. A. Related Works FL-based SHM has recently received significant attention. A clustered FL framework for population-based structural health monitoring across multiple structures is proposed in [2], while [3] presents a personalized FL approach that incorporates tensor-based data fusion for improved damage detection. In [4], the authors propose an FL-based SHM mechanism for monitoring miter gates that are used for navigation and in flood control systems. An FL model augmented with tensor data fusion to detect structural damages is proposed in [5]. A federated convolutional neural network model with a data standardization procedure for damage identification in submerged structure-foundation systems is developed in [6]. In [7], FL is used to detect damages in gantry crane structures. These works focus on the development of FL models for SHM under the assumption of an ideal communication channel. In practice, however, communication reliability and bandwidth limitations have a profound impact on the performance of the FL algorithm. Packet losses on the communication link impact the FL model’s accuracy, and communication bandwidth impacts training time by dictating the airtime needed to transfer updates. To investigate the impact of bandwidth-constrained and erasure-prone wireless links on FL-SHM, we examine the integration of an LPWA layer to an FL-based SHM application. B. Contributions of This Paper Our main contributions are as follows: 1) We investigate a Stochastic Controlled Averaging for Federated Learning (SCAFFOLD) system for multiclass sensor anomaly detection using a real cablestayed bridge dataset. We evaluate the accuracy of the system when updates are transferred over LoRa links. 2) We quantify the accuracy degradation due to lossy quantization and sparsification, which are necessary to reduce update sizes for LoRa’s low data rate constraints. Specifically, we examine the impact of a three-stage compression pipeline combining topk sparsification, int8 quantization, and zlib lossless encoding.
3) We further investigate and quantify the additional accuracy penalty due to LoRa frame loss enforced by signal attenuation and interference. 4) We investigate spreading factor (SF) allocation for update transmission. Three strategies are devised: (1) based on the farthest client, (2) based on the client with the largest dataset, and (3) based on a weighted average global model update delivery probability, with weights determined by dataset sizes. We show that for the evaluated scenario, Strategy 3 provides the best performance among the three in terms of both accuracy and model transmission time. II. Federated-Learning Framework A. Dataset and Model Configuration We employ a dataset collected from a long-span cablestayed bridge located in China [8]. The SHM objective is treated as a multi-class classification problem based on images of vibration signal patterns. The dataset contains seven classes of sensor anomaly behaviors, namely: normal, missing, minor, outlier, square, trend, and drift. Each class is available at a unique client, resulting in seven clients and a strictly non-independent and identically distributed (non-IID) data split among clients. Furthermore, there is large variation among the clients in terms of dataset size, which ranges from 527 samples to 13,575 samples. A deep learning model based on the InceptionV3 architecture [9] is used for classification. Before training, the input data is resized and normalized to ensure stable convergence. B. Federated Learning Framework We implement a centralized FL framework with one central server and seven clients. Training occurs over several communication rounds, as explained below: 1) Initialization: The central server initializes a global model with random parameters. 2) Model Distribution: In each communication round, the server sends the current global model to all participating clients. 3) Local Training: Each client trains the received model on its local dataset and updates the model parameters. 4) Update Transmission: The updated parameters from each client are sent back to the server. 5) Aggregation: The server aggregates the received updates to form an improved global model. 6) Iteration: The updated global model is shared again with the clients, and this process continues until the model converges or reaches the desired performance. C. SCAFFOLD-Based Aggregation The non-IID distribution of data across clients can result in client drift. Because each client has data from only one class, their local updates tend to move in different directions. This impedes convergence and reduces overall
3
model performance. Traditional methods like Federated Averaging (FedAvg) are particularly affected, as they simply average these different updates. To address this issue, we use the Stochastic Controlled Averaging for Federated Learning (SCAFFOLD) algorithm [10]. SCAFFOLD introduces control variates at both the server and client sides, which act as correction terms to guide local training toward the global objective. In each communication round, the server sends the global model along with its control variate to all clients. Each client then trains the model on its local data while applying a correction term based on the difference between the server and client control variates. After training, clients send back their updated model parameters and control variates. The server aggregates these updates and adjusts its control variate to produce an improved global model. By reducing client drift, SCAFFOLD enables more stable training and faster convergence than FedAvg, especially in this highly non-IID setting where each client holds data from only one class. Let c and ci denote the server and client-i control variates, respectively, and let gi denote the local minibatch gradient. During local training, client i updates its model using the corrected gradient gi + c − ci . After local training, the client returns its model change ∆wi and control-variate change ∆ci . Let S denote the set of clients whose updates are successfully received by the server. The server updates the global model and its control variate as follows [10]: 1 ∑ w ← w + ηg ∆wi , (1) |S| i∈S 1 ∑ ∆ci , c←c+ (2) N i∈S
where ηg is the server step size and N is the total number of clients. III. Communication Framework The clients and the server use LoRa communications for exchanging model updates. To ensure the feasibility of transmission over bandwidth-constrained LoRa links, the update is compressed prior to transmission via the following stages: 1) Top-k sparsification: Only those elements with absolute values above a threshold are transmitted. The rest are discarded, which reduces the number of parameters sent in each round. In our implementation, only the top 0.1% of the total parameters are transmitted per round. 2) Int8 quantization: The selected model parameters are converted from 32-bit floating-point (float32) values to 8-bit integers (int8). This reduces the storage and transmission cost per parameter by a factor of 4. 3) Zlib Compression: The sparsified and quantized updates are further compressed using the zlib lossless
compression algorithm. This step leverages redundancy in the data to reduce its size without losing any information. The compressed update is transmitted using LoRa. Since the update is too large to fit in the payload of a single LoRa frame, it is divided into smaller fragments of size not exceeding LoRa’s maximum transmission unit. On the uplink (i.e., from a client to the server), the transfer of the client’s local update is modeled as point-to-point unicast communication. On the downlink, the server broadcasts the updated global model to all seven clients. The key physical layer parameter that dictates LoRa’s communication performance is the SF [11], which takes integer values between 7 and 12. Increasing the SF improves receiver sensitivity, resulting in a longer communication range. However, this also incurs longer transmission times and energy consumption. Mechanisms for selecting the SF are discussed in Section III-B. A. Forward Erasure Correction (FEC) and Model Delivery Probability (MDP) To compensate for frame losses that occur on the wireless links, an application-layer forward erasure correction (FEC) mechanism is used. Let k be the number of source fragments comprising the compressed update to be sent. A rate-r FEC (r < 1) produces n = k/r coded fragments, each of which is a linear combination of the source fragments. Each coded fragment is transmitted as a single LoRa frame. The receiver is able to reconstruct the update as long as k linearly independent coded fragments are received. We denote the probability of this event as the model delivery probability (MDP). If a maximumdistance separable code (MDS) is used for producing coded fragments, then the destination can reconstruct the update upon receiving any k coded fragments. For other types of encoding, slightly more than k successful receptions may be needed. For analytical tractability, we assume an MDS code in this work. Thus, the MDP for a sourcedestination link is the probability that at least k out of the n transmitted LoRa frames are successfully received. Letting di denote the distance between the server and client i, the MDP when SF j is used for transferring the update between the server to client i or vice versa is n ( ) ∑ n l n−l Pj (i) = (Sj (di )) (1 − Sj (di )) , (3) l l=k
where Sj (di ) denotes the probability that a LoRa frame transmitted over a link of length di is successfully delivered. Methods to find Sj (di ) can be found, for example, in [11] and [12]. B. Spreading Factor Allocation As mentioned earlier, there is an inherent tradeoff between LoRa’s communication reliability and transmission airtime. For FL-SHM, this translates to a tradeoff between the model accuracy and the time needed to
4
train the model. Consequently, achieving an acceptable model accuracy within reasonable time requires careful assignment of the SF. To assess the impact of the SF selection, we investigate three strategies. The strategies employ a design parameter δ defined as the target delivery probability. The strategies are described below: 1) Farthest-Client Based: This strategy selects the smallest SF that provides an MDP of δ at all clients. This is equivalent to ensuring such an MDP at the client with the worst MDP, which typically is the client farthest from the server. In general, SF j ∗ is chosen if j ∗ = min{j|Pj (i′ ) ≥ δ},
(4)
′
where i = argmaxi {di }. 2) Largest-Dataset Based: The farthest-client strategy aims to provide coverage for all clients but may result in a higher SF than necessary if the farthest client contributes little to the global model. As an alternative, the largestdataset strategy chooses the SF based on the client holding the largest number of training samples, since this client contributes most to federated aggregation. Specifically, the smallest SF that provides a MDP of δ or above at this client is chosen for transmissions. That is, SF j ∗ is chosen if j ∗ = min{j|Pj (i′′ ) ≥ δ},
(5)
i′′ = argmaxi {Ti },
(6)
where
where Ti denotes the number of training samples at client i. 3) Weighted-Average-MDP Based: While the farthestclient strategy may choose an unnecessarily large SF, the largest-dataset approach may inhibit the participation of clients with smaller datasets in the FL process. This may be detrimental in a non-IID setting like ours. To strike a balance between the two approaches, we consider a third strategy that jointly considers communication reliability and data contribution by computing a weighted average of the MDPs across all clients, with the weighting factor proportional to the sample size. Specifically, we define the weighted average MDP for SF j as N 1 ∑ Pj = Pj (i)Ti , Ttot i=1
(7)
where Ttot is the total number of training samples across all clients, given by Ttot =
N ∑
Ti .
(8)
i=1
SF j ∗ is chosen for communication if j ∗ = min{j|P j ≥ δ}.
(9)
Under the imbalanced dataset distribution considered here, this method assigns greater importance to clients with larger datasets while still considering the link quality of all clients.
IV. Simulation Setup We consider random uniform placement of the clients within a circular area of radius 500 m. The server is located at the center. An FL session consists of 30 communication rounds. The presented results are the average of 10 such sessions, each with random assignment of client locations. At the start of each session, the InceptionV3 backbone is loaded with its pretrained ImageNet weights and kept frozen. Only the trainable classification head, consisting of a 1024-unit dense layer followed by a 7-class softmax output layer, is randomly initialized. The resulting global model is then copied to every client, ensuring that all clients start from the same initial state. The parameters of the classification head are trained locally and exchanged between the clients and the server during federated learning. Each client uses stochastic gradient descent (SGD) with a learning rate of 0.01, no momentum, a batch size of 64, and one local epoch per communication round. The server step size is ηg = 0.01, and the server and client control variates are initialized to zero. All seven clients participate in every round; a client that fails to receive the global model in a round does not perform local training in that round. The dataset is divided into 90% for training and 10% for testing. Model accuracy is evaluated on the test set. For transmitting model updates, the transmission power is fixed at 14 dBm for all devices. The links are subject to Rayleigh fading and have path loss exponent of 3. A LoRa frame may be lost either due to interference or because its received power is below the receiver sensitivity. The receiver sensitivity values for each SF can be found in [11]. The strongest interferer model [11] with capture thresholds given in [12] is used for modeling interferenceinduced losses. The interferers are assumed to be distributed according to a Poisson Point Process of intensity 1×10−4 devices per square meter. For erasure correction, an FEC of rate r = 0.5 is applied. V. Numerical Results Fig. 2 shows the evolution of model accuracy across communication rounds under the three SF-allocation mechanisms. The results are compared against two benchmark schemes, described below. Benchmark 1 (Ideal Channel, Uncompressed Update): This is a hypothetical scheme in which uncompressed updates are exchanged over error-free channels. Clearly, this is the most favorable situation for FL, as it suffers no update loss from lossy compression or from frame erasures. Benchmark 2 (Ideal Channel, Compressed Update): Here, we retain the ideal channel but relax the assumption of lossless compression. Instead, we apply the compression pipeline of Section III comprising top-k sparsification, int8 quantization, and zlib compression. The size of the raw update in float32 format is approximately 8,420 kB. The size of the updates after each compression stage is as follows: After top-k sparsification, which retains 2106 entries (top 0.1%), the update reduces to 16.8 kB.
5
0.9
1
0.8
0.8
Accuracy
Accuracy
0.7 0.6 0.4
Ideal Channel, Uncompressed Update Ideal Channel, Compressed Update LoRa, Farthest-Client Based LoRa, Largest-Dataset Based LoRa, Weighted-Avg.-MDP Based
0.2 0
1
5
10
15
20
25
0.6 0.5 0.4 Farthest-Client Based Largest-Dataset Based Weighted-Avg.-MDP Based
0.3 30
Communication Rounds
0.2
0
1
2
3
4
5
6
7
8
9
Elapsed Time (Hours)
Fig. 2. Accuracy vs. communication rounds.
Fig. 3. Accuracy vs elapsed time.
The reduced size accounts for the retained entries and their corresponding identifiers. After int8 quantization, the size reduces to 10.6 kB, and after zlib compression to approximately 5 kB (4.8–5.1 kB across clients). Note that these are the same update sizes handled by the practical LoRa-based schemes. As seen from Fig 2, benchmark 1 outperforms benchmark 2 owing to the transmission of uncompressed updates, converging to about 90% accuracy as opposed to benchmark 2’s 85% accuracy. The slight underperformance of benchmark 1 in the early rounds is attributed to random model initialization. For the practical LoRa-based methods, we observe that their performance lags that of the hypothetical benchmarks. This is due to the frame losses in a practical communication system. However, by round 20, the practical FL systems employing farthest-client and weighted-average-MDP based SF selection come very close to the performance of the hypothetical benchmark 2 that employs compressed update transmission (reaching about 83% accuracy as opposed to benchmark 2’s 85%). By contrast, largest-dataset-based SF allocation provides relatively poor performance, saturating at about 68% accuracy. In summary, the results demonstrate that, with appropriate SF selection, it is possible for a LoRaWANaided SHM to reach accuracies close to a hypothetical system with error-free communications. Among the practical SF-allocation strategies, largestdataset-based selection provides lower FL accuracy because it selects the SF based only on the client with the most data, ignoring whether other clients can actually receive the model. Since every client in our setup represents a unique anomaly class, missing even one client during aggregation hurts the overall model quality. The farthestclient-based and average-weighted-MDP-based strategies avoid this shortcoming, since the former covers all clients whereas the latter jointly considers data size and link quality.
Although Fig. 2 depicts the accuracies of the schemes as a function of communication rounds, it must be noted that the time to complete one round differs from one LoRa-based scheme to another. This is because each of them uses potentially different SFs for update transfer. To transmit the same update, a higher SF requires more time than a lower SF. This aspect is illustrated in Fig. 3, where we plot the model accuracy after a communication round as a function of the time elapsed since the start of the FL session until the completion of that round. The time needed per round is computed by summing the time needed by the server to transmit the global update and the time needed by the clients to transmit their local update. We observe that the farthest-client strategy incurs the longest completion times. This is because it uses large SFs that are needed to cover the largest server-client distance in the network. By contrast, the largest-dataset strategy achieves the shortest completion times, as it often uses lower SFs that result in shorter transmissions. However, the time savings come at the cost of significantly lower model accuracy. The weightedaverage-MDP strategy performs the best among the three. Its final accuracy is similar to the farthest-client strategy, but the convergence times are lower. For example, to reach 80% accuracy, it requires about 5.2 hours, whereas the farthest-client method needs about 6.5 hours. In Table I, we report the average transmission time per communication round for both the client (uplink airtime) and the server (downlink airtime). The primary significance of airtimes is that they are an indirect measure of the energy consumption by the transmitters. We observe that largest-dataset SF allocation provides the lowest airtimes (but at the cost of accuracy penalty as seen earlier), whereas the farthest-client strategy incurs the maximum airtime. The weighted-average-MDP technique requires about 13% less airtime than the farthest-client strategy. We observe that the average per-client uplink airtimes are slightly lower than downlink airtime. This is
6
TABLE I Average downlink and per-client uplink airtime (in minutes) per communication round for different SF-allocation strategies SF-Allocation Strategy Farthest-Client Based Largest-Dataset Based Weighted-Avg.-MDP Based
Uplink Airtime 7.58 2.09 6.57
Downlink Airtime 7.82 2.88 6.87
because, in those instances where a client does not receive the global update (i.e., encounters more frame erasures than the FEC can correct), the client does not produce a local update for transmission. This reduces the average airtime. In contrast, the server transmits a global update in every communication round. VI. Conclusion We investigated the feasibility of supporting FL for remote IoT over LPWANs, using SHM over LoRa as a representative use case. Our results show that FL over LoRa incurs substantial latency because of long model transmission times. However, if the latency can be tolerated, LoRa-FL can achieve learning accuracies close to those of FL over an ideal (lossless) communication system, provided the transmission parameters are appropriately chosen. We compared three mechanisms for transmission-parameter selection. Our results showed that the weighted-average model-delivery-probability approach balances communication reliability and client contribution, avoiding the excessive conservatism of a worstcase-oriented design while preserving participation from smaller clients that may contain unique classes. Our results provide preliminary design insights for remote IoT deployments where reliable broadband connectivity is unavailable. Future work includes the following: • Extending the framework to larger-scale LPWAN deployments with more clients, diverse network topologies, and different dataset distributions. • Investigating adaptive per-client communication parameter selection, including dynamic spreadingfactor, coding-rate, and transmission-power adaptation. • Studying joint optimization of client selection and communication resource allocation to further improve the communication-learning trade-off. • Investigating the proposed communication-aware resource allocation under different data heterogeneity levels and client participation rates.
•
Evaluating the proposed framework using additional datasets, FL algorithms, and LPWAN technologies, together with experimental validations. References
[1] L. A. Bull, P. A. Gardner, J. Gosliga, T. J. Rogers, N. Dervilis, E. J. Cross, E. Papatheou, A. Maguire, C. Campos, and K. Worden, “Foundations of population-based SHM, Part I: Homogeneous populations and forms,” Mechanical systems and signal processing, vol. 148, p. 107141, 2021. [2] M. A. Cheema, M. Zohaib Sarwar, D. Cantero, and P. Salvo Rossi, “Clustered federated learning for populationbased structural health monitoring,” IEEE Internet of Things Journal, vol. 12, no. 13, pp. 24 958–24 967, 2025. [3] A. Anaissi, B. Suleiman, and W. Alyassine, “Personalised federated learning framework for damage detection in structural health monitoring,” Journal of Civil Structural Health Monitoring, vol. 13, pp. 295–308, 2023. [4] Y. Yang, H. Lin, G. Qian, Z. Hu, and M. D. Todd, “A privacypreserving framework using federated learning for structural health monitoring with miter gates application,” Structural Health Monitoring 2025, 2025. [5] A. Anaissi, B. Suleiman, and M. Naji, “Intelligent structural damage detection: A federated learning approach,” in Advances in Intelligent Data Analysis XIX, P. H. Abreu, P. P. Rodrigues, A. Fernández, and J. Gama, Eds. Cham: Springer International Publishing, 2021, pp. 155–170. [6] N.-L. Pham, Q.-B. Ta, T.-C. Huynh, and J.-T. Kim, “CNN federated learning for vibration-based damage identification of submerged structure-foundation system,” Journal of Civil Structural Health Monitoring, vol. 15, no. 7, pp. 2595–2620, 2025. [7] Z. Peng, Z. Zhang, X. Zhao, T. Zhang, and Q. Wu, “Structural health monitoring of similar gantry crane based on federated learning algorithm,” in Advanced Computational Intelligence and Intelligent Informatics, B. Xin, N. Kubota, K. Chen, and F. Dong, Eds. Singapore: Springer Nature Singapore, 2024, pp. 75–88. [8] Y. Bao, J. Li, T. Nagayama, Y. Xu, B. F. Spencer Jr, and H. Li, “The 1st international project competition for structural health monitoring (IPC-SHM, 2020): A summary and benchmark problem,” Structural Health Monitoring, vol. 20, no. 4, pp. 2229–2239, 2021. [9] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna, “Rethinking the inception architecture for computer vision,” in Proceedings of the IEEE conference on computer vision and pattern recognition, 2016, pp. 2818–2826. [10] S. P. Karimireddy, S. Kale, M. Mohri, S. Reddi, S. Stich, and A. T. Suresh, “SCAFFOLD: Stochastic controlled averaging for federated learning,” in Proceedings of the 37th International Conference on Machine Learning. PMLR, 2020, pp. 5132–5143. [11] O. Georgiou and U. Raza, “Low power wide area network analysis: Can LoRa scale?” IEEE Wireless Communications Letters, vol. 6, no. 2, pp. 162–165, 2017. [12] A. Mahmood, E. Sisinni, L. Guntupalli, R. Rondón, S. A. Hassan, and M. Gidlund, “Scalability analysis of a LoRa network under imperfect orthogonality,” IEEE Transactions on Industrial Informatics, vol. 15, no. 3, pp. 1425–1436, 2019.
Retrieved via Conceptio: every document is proof-bundled with source, license, and retrieval metadata.
Read the Docs → · View CLI source on GitHub · Conceptio Open Knowledge Archive