+ - 0:00:00
Notes for current slide
Notes for next slide

notes here

Data Apps

the way to share

Department of GeoScience, University of Göttingen • October 2016

Puneet Kishor (Plazi)

Released under a CC0 Public Domain Dedication.

1 / 44

Help

  • Notes are hidden, but may be seen by pressing P on your keyboard.
  • Press C to clone a show.
  • Press H for other keyboard shortcuts.
2 / 44

notes here

In the beginning, there was a scientist working on her data on her computer with the help of an app on her computer.

3 / 44

Then she made a web app, and other scientists could see her data, but only what she made available and the way she made it available.

4 / 44

So, she made a data app that published her data. And, she became a client for her data app and made a web app.

5 / 44

Now, others could not only see her data through her web app, they could also see her data app. They liked this idea, and did the same.

6 / 44

Others liked the idea and joined the party. Some made only web apps, others made only data apps, while yet others made both, and even more only used them.

7 / 44

They continued to work the way they always did, without changing their tools and technology. No one placed any demands on another, no one’s burden was increased.

8 / 44

The only tacit agreement was that they all agreed to adhere to very minimum and easy standards for building data apps because they recognized the benefit of doing so.

9 / 44

So, how does this all work? A desire to make one’s data accessible by others, and a common understanding to follow a few very lightweight standards.

10 / 44

Every one is free to continue to use what they are already using. No one has to change their mode of work or their favorite technology.

11 / 44

We depend on Representational State Transfer (REST) as the architectural style and JavaScript Object Notation (JSON) as data transport format.

12 / 44

No one is obligated to provide their data to anyone, and no one is beholden to anyone. The only concession is to adhere to a common interface.

13 / 44

When a user finds some one else’s data useful, the two form a relationship.

14 / 44

If the other user finds use for the first user’s data, well, that is even better as the relationship is symbiotic.

15 / 44

Given a large number of users participating in this way of opening up their data, everyone will benefit from someone’s work.

16 / 44

But, it will be even better if the data publisher could keep count of how many users took the data.

17 / 44

Since access to the data, be it via the web or through the command line, is exclusively via a web server, the publisher always knows the use count.

18 / 44

With no middleman, it is easy to track when B uses A’s data as B leaves information in A’s logs.

19 / 44

But, what would happen if C takes A’s data from B? That is a difficult problem worth solving. No answer yet, but more on that soon.

20 / 44

A complementary issue is for the user to know what can be done with the data.

21 / 44

What can be done with the data is usually driven by what the data publisher permits.

22 / 44

Most scientific data may already be in the public domain. Yet, it is a good practice to publish the data with a data license accompanying all data packets.

23 / 44

24 / 44

25 / 44

26 / 44

Make your data available.

27 / 44

Make your data available.

Always serve your data via a web server.

28 / 44

Make your data available.

Always serve your data via a web server.

Always create a data app first.

29 / 44

Make your data available.

Always serve your data via a web server.

Always create a data app first.

Build other apps on top of the data apps.

30 / 44

Your data is a resource.

31 / 44

Your data is a resource.

Make your resource identifiable by a unique name.

32 / 44

Your data is a resource.

Make your resource identifiable by a unique name.

This is the Uniform Resource Identifier (URI).

33 / 44

Cool URIs don’t change. This is your contract to your community.

34 / 44

Because each scientist speaks a different language, we need a common interface to connect everyone.

35 / 44

Our common interface is the hypertext transfer protocol (http) and its limited set of verbs such as GET, PUT, DELETE, POST.

36 / 44

Our data transfer format of choice is JavaScript Object Notation (JSON), where possible.

37 / 44

You and others can do more with raw data than with cooked data.

38 / 44

You and others can do more with raw data than with cooked data.

Think data apps that publish raw data. (raw up to the level it makes sense)

39 / 44

You and others can do more with raw data than with cooked data.

Think data apps that publish raw data. (raw up to the level it makes sense)

Each datum is a resource.

40 / 44

You and others can do more with raw data than with cooked data.

Think data apps that publish raw data. (raw up to the level it makes sense)

Each datum is a resource.

Each resource has a unique name.

41 / 44

You and others can do more with raw data than with cooked data.

Think data apps that publish raw data. (raw up to the level it makes sense)

Each datum is a resource.

Each resource has a unique name.

And, is accessible by a canonical URI.

42 / 44

You and others can do more with raw data than with cooked data.

Think data apps that publish raw data. (raw up to the level it makes sense)

Each datum is a resource.

Each resource has a unique name.

And, is accessible by a canonical URI.

Choose JSON (or other format) for data transfer.

43 / 44

You and others can do more with raw data than with cooked data.

Think data apps that publish raw data. (raw up to the level it makes sense)

Each datum is a resource.

Each resource has a unique name.

And, is accessible by a canonical URI.

Choose JSON (or other format) for data transfer.

Provide a few standard resources for discovery

  • author
  • version
  • license
  • resources
44 / 44

Help

  • Notes are hidden, but may be seen by pressing P on your keyboard.
  • Press C to clone a show.
  • Press H for other keyboard shortcuts.
2 / 44

notes here

Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow