wot-solid

A WoT- & SoLiD-based Mobile App for Wearable Data Collection and Visualization

https://github.com/derwehr/wot-solid

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
Last synced: 6 months ago · JSON representation ·

Repository

A WoT- & SoLiD-based Mobile App for Wearable Data Collection and Visualization

Basic Info
  • Host: GitHub
  • Owner: derwehr
  • License: mit
  • Language: TypeScript
  • Default Branch: master
  • Homepage:
  • Size: 87 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

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.

  1. Clone the repository
  2. Install the dependencies bash yarn install
  3. Start the app bash yarn run start This 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

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

package.json npm
  • @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
yarn.lock npm
  • 1750 dependencies