Hello Grade
Simeoni, Baldassarre
SUSTAINABLE LINKED DATA
we like in in FAO.
FISHERIES LINKED OPEN DATA
(F) LOD
we use it for FACP
FISHERIES AND AQUACULTURE COUNTRY PROFILES
we found it hard to manage
data integration issues, in LOD context.
linked data, sustainably.
Grade
“we”
the full story
context, details, demo.
why we did it
relation to past work
implications for the future
what we delivered
how we worked together
our toolchain
our stack
all about Grade, in a black-box.
context
a pinch of theory
key features
data integration activities
now put ‘Semantics’ in the black box.
under the hood
features in context
real data
simulated scenarios
demonstration
a day in the life of a data manager.
context
mod-A architecture.
no monoliths, specialised components
functionally small.
services, libraries, apps.
repositories.
“one thing” is disseminate data.
you put data there.
act as a producer.
I find it there.
act as a consumer.
we’ve

exchanged it
data
hubs
not all alike
hold different data, hold it differently.
eg. master data
in relational databases.
RTMS
eg. cross-master “relations”
in triple stores.
flod
all managed.
with appropriate tools.
Grade is a tool to manage 

Linked Data repositories.
flod
generate it
from external sources.
three macro requirements.
update it in place
when sources change.
disseminate it
via FACP-facing services.
facp 

clients
so far “unsustainably” met.
the extraordinary Linked Data Manager.
all we could throw at requirements.
doubles as javadev.
has sysadmin skills.
oversees operations.
a rare find.
(an inefficient employee anyway.)
make interactive what’s now batch
make online what’s now offline.
make automated what’s now manual.
make production-ready what’s now not.
a Web App for Data Managers.
With Grade, we turn things around.
to generate, update, and disseminate Flod.
A Tale of Two Managers.
Linked Data Manager
designs ontologies. 

defines maintenance strategy.

defines services.

implements strategy.
General Data Manager
explores and validates data.
monitors services.
can implement strategy.
can define services.
hold on, develop tools for a use case?
isn’t it a disproportionate use of force ?
no, if we reuse them.
reuse beyond FACP.
Grade promotes Flod
can be entrusted with more use cases.
Grade complements RTMS
two-pronged data management strategy.
RTMS
local

boundary

(fips, fao)
LOCAL
clients
Flod
external
clients
external
SOURCES
gems
agrovoc
IRD
reuse beyond Flod.
requirements recur across similar repositories.
Grade promotes a LD Network
with our external partners in Fishery.
Flod
worms
EEZ
WIOFISH
STATBASE
the dev pattern behind Grade.
a viable approach to architecture.
SOFTWAREUSE CASEs MOD-A
drives / validates
make it general
goes on to enhance
reuse to solve other
seed
architecture “on demand”
we “tunnel” its investment through seeds.
- driven development
reconciles short-term need with longer-term benefit.
seed
but, there is a catch.
try build reusable software in

timescales appropriate to seeds.
it’s challenging.
our challenges.
very sustained pace.
fully distributed team.
busy schedule for some members.
no CI services.
a fairly new stack.
coping measures.
result focus.
crabwalking
progressive refinement
feature weighting
tight feedback 

cycles.
reactive steering
min. blocking dependencies
tools for max visibility
Trello boards.
activities: may do, doing, done, won’t do.
actions: discuss, report, notify, alert.
include, attach, or link: know-hows, how-tos, docs.
Continuous Deployment
real-time progress visibility, off premises.
github drone.io d4science AWS 

+NO-IP
sources CI BUILDS dependencies
(nexus)
deployment
(micro)
our software stack.
fuseki
JAVA 8
lombok
jersey/WELD/jackson
plenty of innovation for us.
BACKEND
POLYMER / ANGULAR DI
Google’s dart
frontend
why the frontend.
incremental innovation.
familiarity
safety
platform
tooling
control
productivity
momentum
under the hood
CLIENTS
storage 

abstraction
infrastructure
interactive
dissemination
staged
transformation
sources
three Big Features.
first, layman’s concepts.
LOGICAL physical
LOGICAL physical
subject OBJECT
PREDICATE
‘SCHEMAS’
TRIPLESnamed graphs
QUERIESupdates
endpoints
STORES
different storage arrangements.
mono-point MULTI-point MULTI-STORE
small scale, simplest.medium scale, simple.large scale or linked.
Grade can work with any model.
adapts to infrastructure, doesn’t prescribe it.
at any time.
change to migrate, scale out, network with partners.
with any provider.
read/write access via HTTP-based standards.
Grade has Datasets.
logical asset partitions.
Datasets map to Endpoints
endpoints have addresses.
Endpoints have Graphs.
can inspect, add, edit, remove, copy/move directly in Grade.
this is storage abstraction.
next, interactive dissemination
DOCUMENTATION
target
narrow

scope
SPARQL
testing
Query Playground.
color highlighting
!
keyword completion
!
prefix completion
!
graph name completion
!
query templates
!
address abstraction
DYNAMIC UI !
OMNI format
paste in editorFOLLOW YOUR NOSE
breadcrumb
paste in BROWSER
URI-BASED NEGOTIATIoN
REAl-TIME API
on demand
Grade can expose data on demand.
no predefined, hardcoded dissemination services.
without Java code
well within reach of (Linked) Data Managers.
with perks
monitoring, testing, and documentation also covered.
this is interactive
dissemination.
finally, staged transformations
sources
generate and update in 2-phases.
sources
ingest
&
TRIPLIFY “raw”
first, ingest into staging area in raw form.then, transform in public form for production.
transForM
“public”
STAGING
(triage)
production
the notion of staging area.
a secondary asset that serves as a “dropbox”,

a hole for pigeons.
raw as in uncooked.
no LD design, ontology-less triples.
easily produced…
blindfold conversions from any XML, JSON, CSV…
yet “semantically edible”.
can cook it with SPARQL-driven recipes.
publication tasks
create or overwrite whole graphs.
TRANSFORMATION
query
staging
source
graphs
production
target
graph
update tasks
add or remove a “delta” of triples to/from a graph.
TRANSFORMATION
query
staging
Transform
DIFFERENCE
QUERY
delta
production
we keep all tasks in a catalogue.
a third LD asset just for “recipe definitions”.
tasks
catalogue
testing
doc.
I/O
transform
Task Playground.
stoppable
remote LOGS
partial resultS
FINAL resultS
real test executions happen “on deck”.
CATALOGUE AT HAND
current or past

executions
results, as

in playground
putting it all together…
production
DECK
STAGING
CATALOGUE
hold on, how does data get into Grade?
who populates the staging area?
?
ingest
&
TRIPLIFY “raw”
sources
drop-in servicepublishers it to staging.
REST dropin service +Java API.
PUSH
admins it.upload
drop(“…/codes.xml”).with(xml).in(prod).as(“…/codes.xml”)
admin-units
countries
vessels
direct or indirect, codelist or mappings.
Flod has about sources.20
gear eez-flagstate-eploitation
asfis-worms
RFB
species-distributions
EEZ
asfis
eez-country-sovereignity
eez-fsa_intersection
fsa-hierarchies
EXPLOITATION-­‐STATUS
marine-regions
the project within the project.
demo
publish service for ASFIS species list.

acquire list, transform it, expose it through service.
!
publish service for ASFIS - WORMS species mapping.

acquire mapping, transform it, expose it through service.
coming on:
feedback
phase : delivery
produce the solution (3m)

GRADE 1.0-ea
1
phase : post-delivery
disseminate, document, and deploy the solution (2m)
GRADE 1.0
2
where we are.
phase : next-gen
GRADE 2.0
3

Grade@cnr