Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
You can change this under Settings & Account at any time.
Offline-First Semantic Web App
Transcript of Offline-First Semantic Web App
data accessible offline
Instead fetch all the data at the first ever
page load or after showing some pages
the user is likely to spend some time on
before trying to do anything which require
the resources which might take a few
seconds the first time they are downloaded.
Using Browser Storage
IndexedDB (size unlimited)
File API - SQLite (?)
Building an Offline-First Semantic Web Application
Eventually you need to sync your data backend (for sharing and
You can build the code yourself (but it is very complicated to build a
Luckily, there are many ready-made open-source solutions!
Synchronize local data backend
Different requirements need different backend solutions.
firebase for “realtime” data
hoodie or pouchdb for versioning requirements
SPARQL endpoint for querying large datasets (and small local datasets)
Decide what is available offline, and what is not?
The Remaining Challenge
is not available while offline, instead you get an error message saying something like “[unable to connected to the internet]”.
that are matched against the directed graph representing the RDF data.
Some Benefits of Semantic Technology
Fetching data from other data sources for offline use
through rdf stores (or otherwise?) and store them in our document store? where do we have our URI descriptions?
Making a web application semantic
OWL (Web Ontology Language)
What is a semantic web application?
Used to express extra
among resources. e.g when different terms are used to describe the same thing in different data sets, or when a bit of extra knowledge may lead to the discovery of new relationships.
Users can follow meaning, not pages (good for SPA)
Re-use other people's knowledge more easily
Decouple applications from data
Lowers the representational gap
For the developers
For the end user
Standard model for data interchange on the Web.
Facilitates data merging even if underlying schemas differ
Supports evolution of schemas over time without requiring all the data consumers to be changed
The promise of building
that runs on
Annoying lag time caused by client-server communication and an annoying error message "Unable to connect to the internet" as soon as internet is slow or down.
The concept of Offline-First is providing the tools to fulfill this promise
What is Offline First?
The core concept is to use a local database
as the gateway for all persistent data;
user initiated actions are persisted locally first
and then, at some point -now or later- the local database and the database on the server are synchronized (in the background).
Semantic web needs unique identification to allow provable manipulation with resources in the upper layers of the stack.
URIs are a way to identify anything in the world (things and concepts)
One thing per resource (this ensures findability, clickability, tweetability, SEO)
Can use data from other places on the web
Can make inferences from linked (semantic) data
Semantic Web Stack
Who decides? The user, the developer or both?
How do we deal with versioning and merging?
Graphs databases are great for querying data, but are not necessarily
good for the above task
A hybid solution? e.g. A document database and a triplestore
Guideline: Avoid unnecessary AJAX Calls.
Store data in browser storage instead.
Wrappers provide graceful degradation
A semantic web application uses
semantic technologies to create links between data as opposed to a web of documents, thus contributing and making
use of the semantic web
The semantic stack is the technologies
used in the semantic web.
You need some of these to build a
Semantic Web Application