Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start 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.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Offline-First Semantic Web App

No description
by

julia wells

on 19 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Offline-First Semantic Web App

Guideline: Use App cache for making static
data accessible offline

Static Data
Dynamic Data
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
Cookies
localstorage
webSQL (depreciated)
IndexedDB (size unlimited)
File API - SQLite (?)

Building an Offline-First Semantic Web Application
The Basics
Eventually you need to sync your data backend (for sharing and
backup)

You can build the code yourself (but it is very complicated to build a
version system)

Luckily, there are many ready-made open-source solutions!



Synchronize local data backend
Multiple Backends
Different requirements need different backend solutions.

For example

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
By default
static
data like
html
,
css
and
js
is not available while offline, instead you get an error message saying something like “[unable to connected to the internet]”.
Defines
queries
with
graph patterns
that are matched against the directed graph representing the RDF data.
SPARQL
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
constraints
and
logical relationships
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
URI
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
RDF
Background
Why
Web
Programming?
The promise of building
one application
that runs on
all devies

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.
but...
now...
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
not servers
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)

http://xmlns.com/foaf/0.1/Person
http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing
For both
Can use data from other places on the web
Dynamic Aggregation
Common Vocabulary
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

Full transcript