wot-solid
A WoT- & SoLiD-based Mobile App for Wearable Data Collection and Visualization
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.6%) to scientific vocabulary
Repository
A WoT- & SoLiD-based Mobile App for Wearable Data Collection and Visualization
Basic Info
Statistics
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
Taking Care of Your Data: A WoT- & SoLiD-based Mobile App for Wearable Data Collection and Visualization
Showcase
Below are some screenshots and videos showcasing the app's features.
SoLiD Authentication
In order to use the app, the user needs to authenticate with a SoLiD Pod. The app uses the SoLiD OIDC authentication flow to authenticate the user.
The user is redirected to the SoLiD Pod's authentication page, where the user can log in and grant the app access to the Pod.
After the user has authenticated, the app receives an access token, which is used to access the user's data on the Pod.
see the files AuthenticationStore.ts and LoginScreen.tsx for implementation details.
Connecting Wearables
The Application connects to BLE wearable devices described with W3C WoT Thing Descriptions. See the td examples folder for examples of Thing Descriptions for different wearables. This was successfully tested with the following devices: - Polar H9 Heartrate sensor - Magene H303 Heartrate Sensor - Garmin Cadence Sensor 2 - Wahoo RPM Bike Cadence Sensor - RuuviTag
After connecting to a wearable, users can browse the Thing's available Interaction Affordaces, subscribe to Events Affordances and read Property Affordances.
The screencast on the right shows the Interaction Affordances of the Polar H9 described by its Thing Model
Live Data Visualization
Subscribed Events are visualized in real-time using the Victory Native library.
In the screencast on the right, after selecting the heart-rate event from the Polar H9 the app displays a line-plot of the measurements as the device sends it.
SoLiD Data Storage
The User may store the collected data in SoLiD PODs. The data is stored in Turtle, see Annotated Data for an example.
Stored data is also visualized to allow analyzing historical data comprehensively. Numerical data from the Knowledge Graph is displayed as line plots, and geographic locations are displayed on a map.
Annotated Data
Below is an example of a Turtle file with annotated data. The collected measurements are stored as SOSA/SSN observations, annotated with the measurement's unit and datatype parsed from the TD, time and the location of the measurement gathered by the Android device, plus the authenticated user as the SOSA featureOfInterest.
```turtle
@prefix qudt: http://qudt.org/2.1/schema/qudt#.
@prefix unit: http://qudt.org/2.1/vocab/unit#.
@prefix geo: http://www.w3.org/2003/01/geo/wgs84_pos#.
@prefix sosa: http://www.w3.org/ns/sosa/.
@prefix xsd: http://www.w3.org/2001/XMLSchema#.
@prefix s4wear: https://saref.etsi.org/saref4wear/ .
_:heartrateObservation1702382040625 a sosa:Observation; sosa:hasFeatureOfInterest https://ex.solidpod/profile/card#me; sosa:resultTime "2023-12-12T11:54:00.625Z"^^xsd:dateTime; sosa:observedProperty s4wear:HeartRate; geo:lat "49.594672"^^unit:DEG; geo:long "11.0033571"^^unit:DEG; sosa:hasResult _:heartrateResult1702382040625.
_:heartrateResult1702382040625 a sosa:Result; qudt:numericValue "72"^^xsd:decimal; qudt:unit unit:BEAT-PER-MIN; sosa:isResultOf _:heartrateObservation1702382040625. ```
Building
The app is built using React Native and Expo. To run the app, you need to have Node.js and npm installed.
- Clone the repository
- Install the dependencies
bash yarn install - Start the app
bash yarn run startThis will start the Expo development server and open the Expo DevTools in your browser. You can then run the app on an emulator or on your phone using the Expo Go app.
Installing
The app is not yet available on the App Store or Google Play Store. However, you can download the APK from the releases page and install it on your Android device.
Owner
- Name: Thomas Wehr
- Login: derwehr
- Kind: user
- Location: Erlangen, Germany
- Company: Fraunhofer IIS
- Repositories: 11
- Profile: https://github.com/derwehr
Semantic Web / Internet of Things / SoLiD Ph.D. at FAU Erlangen
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- given-names: Thomas
family-names: Wehr
email: thomas.wehr@fau.de
orcid: 'https://orcid.org/0000-0002-0678-5019'
- given-names: Michael
family-names: Freund
email: michael.freund@fau.de
orcid: 'https://orcid.org/0000-0003-1601-9331'
- given-names: Andreas
family-names: Harth
email: andreas.harth@fau.de
orcid: 'https://orcid.org/0000-0002-0702-510X'
title: "Taking Control of Your Health Data: A Solid-based Mobile App for Wearable Data Collection and RDF' Visualization"
url: "https://github.com/derwehr/WoT-Solid"
preferred-citation:
type: article
authors:
- given-names: "Thomas"
family-names: "Wehr"
orcid: 'https://orcid.org/0000-0002-0678-5019'
- given-names: "Michael"
family-names: "Freund"
orcid: 'https://orcid.org/0000-0003-1601-9331'
- given-names: "Andreas"
family-names: "Harth"
orcid: 'https://orcid.org/0000-0002-0702-510X'
journal: "Extended Semantic Web Conference"
month: 5
title: "Taking Control of Your Health Data: A Solid-based Mobile App for Wearable Data Collection and RDF' Visualization"
year: 2024
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: almost 2 years ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- @babel/core ^7.20.0 development
- @babel/plugin-proposal-export-namespace-from ^7.18.9 development
- @babel/preset-env ^7.20.0 development
- @babel/runtime ^7.20.0 development
- @react-native-community/cli-platform-ios ^8.0.2 development
- @react-native-community/eslint-config ^3.2.0 development
- @rnx-kit/metro-config ^1.3.5 development
- @types/d3 ^7.4.2 development
- @types/i18n-js 3.8.2 development
- @types/jest ^29.2.1 development
- @types/react ^18.0.24 development
- @types/react-native-svg-charts ^5.0.15 development
- @types/react-test-renderer ^18.0.0 development
- @types/uritemplate ^0.3.4 development
- @types/web-bluetooth ^0.0.17 development
- @typescript-eslint/parser ^5.59.0 development
- eslint ^8.53.0 development
- eslint-config-airbnb-typescript ^17.1.0 development
- eslint-config-prettier ^9.0.0 development
- eslint-plugin-prettier ^5.0.1 development
- eslint-plugin-react-native ^4.1.0 development
- metro-config 0.76.8 development
- metro-react-native-babel-preset 0.76.8 development
- metro-source-map 0.75.1 development
- node-libs-react-native ^1.2.1 development
- patch-package 6.4.7 development
- postinstall-prepare 1.0.1 development
- prettier ^3.0.3 development
- query-string ^7.0.1 development
- react-devtools-core 4.28.4 development
- react-dom 18.2.0 development
- react-test-renderer 18.2.0 development
- regenerator-runtime ^0.13.4 development
- typescript ^5.0.4 development
- wot-typescript-definitions 0.8.0-SNAPSHOT.27 development
- @craftzdog/react-native-buffer ^6.0.5
- @expo-google-fonts/space-grotesk ^0.2.3
- @expo/metro-config 0.10.7
- @expo/webpack-config ^19.0.0
- @inrupt/solid-client ^1.30.2
- @inrupt/solid-client-access-grants ^2.6.1
- @inrupt/vocab-common-rdf ^1.0.5
- @matthewwarnes/react-native-ble-manager-plugin ^1.0.1
- @petamoriken/float16 ^3.8.4
- @react-native-async-storage/async-storage 1.18.2
- @react-native-community/netinfo 9.3.10
- @react-native-picker/picker 2.4.10
- @react-navigation/bottom-tabs ^6.5.9
- @react-navigation/native ^6.1.8
- @react-navigation/native-stack ^6.9.14
- @rnx-kit/metro-resolver-symlinks ^0.1.34
- @tradle/react-native-http ^2.0.1
- apisauce 2.1.5
- babel-plugin-root-import ^6.6.0
- d3 ^7.8.5
- date-fns ^2.29.2
- expo ~49.0.15
- expo-application ~5.3.0
- expo-constants ~14.4.2
- expo-crypto ~12.4.1
- expo-dev-client ~2.4.12
- expo-device ~5.4.0
- expo-document-picker ~11.5.4
- expo-file-system ~15.4.5
- expo-font ~11.4.0
- expo-localization ~14.3.0
- expo-location ~16.1.0
- expo-secure-store ~12.3.1
- expo-splash-screen ~0.20.5
- expo-status-bar ~1.6.0
- expo-system-ui ~2.4.0
- i18n-js 3.9.2
- mobx ^6.10.2
- mobx-react-lite ^4.0.5
- mobx-state-tree ^5.3.0
- os ^0.1.2
- react 18.2.0
- react-icons ^4.11.0
- react-native 0.72.6
- react-native-avoid-softinput ^4.0.1
- react-native-ble-manager ^10.1.5
- react-native-dialog ^9.3.0
- react-native-fs ^2.20.0
- react-native-gradle-plugin ^0.71.19
- react-native-level-fs ^3.0.1
- react-native-linear-gradient ^2.8.3
- react-native-maps 1.7.1
- react-native-quick-base64 ^2.0.7
- react-native-reanimated ~3.3.0
- react-native-reanimated-table ^0.0.2
- react-native-safe-area-context 4.6.3
- react-native-screens ~3.22.0
- react-native-svg 13.9.0
- react-native-svg-charts ^5.4.0
- rxjs ^7.8.1
- solid-authn-react-native 2.0.3
- stream ^0.0.2
- uritemplate ^0.3.4
- use-async-effect ^2.2.7
- victory-native ^36.6.12
- 1750 dependencies