SlideShare a Scribd company logo
Semantic
Technologies
in Practice
Knowledge and the Web
2016
Semantic technologies in practice
Some technical tidbits
Some real-world examples
A practical way of developing apps
High quality linked data
Five stars
- The content is free
- … in a structured format
- … which is open
- … and it uses URIs
- … which are used elsewhere
<3 stars: Manual integration
>3 stars: Automatic integration
Semantic integration
Mapping to linked data:
- CKAN
- schema.org
Content is linked data:
- RDFa
- Turtle
Internal use of Linked Data:
- mu.semte.ch
SPARQL endpoint
- dbpedia
“Are we succeeding?”
Semantic technologies in practice - KULeuven 2016
Search Engine Optimisation
Example: Best Buy
Accidental SEO
- Build blog for higher visibility
- Annotations using RDFa
+ 30% incoming search traffic ?!
Example: Best Buy
Best buy now uses schema.org
Where do we see this working?
Example: Best Buy
Example: Coolblue
SEO
Search engines are pushing for structured data
& it’s linked
BBC
you know, the big broadcasters
BBC: World cup 2010
Problem:
- Information on 32 teams, 736 players
- Roughly 750 pages of dynamic content
Solution:
- A semantic model
- Dynamically generated pages
- Minimal journalistic management
Repeated in 2012 summer olympics
BBC: Ontologies
BBC publishes Linked Data everywhere
Awesome ontologies
!! Agile ontologies !!
Semantic administration tools
“We want people to
recognise, not memorise their
way around the site”
-- Jo Kent
Linked Open Data Cloud
ESCO
bringing structure to the job market
ESCO
Meet Sara,
… a Spanish speaking nurse from Spain
ESCO
Sarah considers filling her duties in
another European country.
ESCO
Sarah has limited language skills
Sarah uses Google translate and finds that enfermera
translates to nurse
What Sarah doesn’t find is that a nurse in Spain performs
the duties of a nursery assistant in Great Britain.
“Name concepts by URI”
ESCO
ESCO
ESCO
This is what we do:
- ~7 full time knowledge engineers
- ~4 full time developers and architects
- Loads of tooling
- Vision for the future
Semantic technologies in practice - KULeuven 2016
Tea time!
<<<SSSHHHHHHHHH>>>
this is the start of the mu.semte.ch story
*COUGH*
mu.semte.ch
practical applications with Linked Data
In 60 seconds
State-of-the-art web applications fuelled by Linked Data aware microservices
- User-facing microservices
- Easy deployment using Docker
- Single Page Apps using Ember.js
- Well known requirements
=> [HTTP+JSON+SPARQL]
https://github.com/mu-semtech/
https://mu.semte.ch
Some history
Share code on personal projects
Rails is not über-productive
Stay light, choose later
Use microservices and semantic model
KISS
Keep It Super Simple
KISS
- Most of us aren’t microservice experts
- Most of us aren’t UI experts
- We need to get stuff done
- Maximize freedom
- Orthogonal features
- Minimize requirements
- Enforce simple mental model
Simple mental model
user-facing http-services
Simple mental model
User-facing microservices
Limit base technologies:
- HTTP
- JSON(API)
- SPARQL (one graph)
Simple mental model
TenForce supports publishing of open data.
- Use DCAT standard
- EDCAT 2.0 released
- mudCAT = back-end
- webCAT = front-end
- Custom configurations to match
specific customer needs.
webCAT
Semantic models
Many actors, telling parts of the same story
Semantic models
Services read/write the part of the world they understand.
User Registration:
- There’s a new user => add it to the triplestore.
User Login:
- Check username/password => connect user to current session.
Semantic models
Registration
service
Login service
Semantic models
Many implementations, one model
Same model for:
- Username/Password login
- OAuth login
- ECAS login
Semantic models
We use the ECAS login for ESCO-related projects.
ESCO is a taxonomy of all Skills Competences and Occupations in Europe.
The Dacota team finds and classifies content. Brains for hire!
Docker
Deployment made easy
Docker Container =~ Lightweight Linux Virtual Machine
Docker Compose =~ Topology of multi-container project
Each service runs in its own Docker Container
In short:
- Simple hosting on hub.docker.com
- Clean project description
- Always works
- Runs on the Big Data Europe Platform
Share using Docker
Share using Docker
We are part of Big Data Europe
Making Big Data:
- Easy to get started
- Cheaper to maintain
… in any domain
- Now including Smart Big Data:
=> Semantics + Big Data = <3
Reuse everything
Reuse everything
- Templates: basics for a service
- Configurable services
- mu-cl-resources
- Ember add-ons
- Hierarchy service + add-on
- Login service + add-on
Base templates
CatalogsIndexRoute = Ember.Route.extend
ajax: Ember.inject.service()
model: () ->
@get('ajax').request('/hello')
Hello result: {{model.value}}
get '/hello/' do
counter = query( "SELECT COUNT (*) as ?counter" +
"WHERE {" +
" ?s ?p ?o." +
"}" ).first[:counter].to_i
status 200
{ value: counter }.to_json
end
FROM semtech/mu-ruby-template:2.0.0-ruby2.3
MAINTAINER Your Name <you@provider.com>
demo:
image: you/demo-service
links:
- db:database
dispatcher:
…
links:
- demo:demo
match "/hello/*path" do
Proxy.forward conn, path, "http://demo/hello/"
end
[mu-ruby-template
]
Base templates [mu-ruby-template
]
Configurable services
(define-resource distribution ()
:class (s-prefix "dcat:Distribution")
:properties `((:title :string ,(s-prefix "dct:title"))
(:description :string ,(s-prefix "dct:description"))
(:issued :string ,(s-prefix "dct:issued"))
(:modified :string ,(s-prefix "dct:modified"))
(:license :string ,(s-prefix "dct:license"))
(:rights :string ,(s-prefix "dct:rights"))
(:access-url :string ,(s-prefix "dcat:accessURL"))
(:download-url :string ,(s-prefix "dcat:downloadURL")))
:has-one `((dataset :via ,(s-prefix "dcat:distribution")
:inverse t
:as "dataset")
(format :via ,(s-prefix "dct:format")
:as "format"))
:resource-base (s-url "http://your-data-stories.eu/distributions/")
:on-path "distributions")
[mu-cl-resources]
Full JSONAPI from abstract description
Configurable services [mu-cl-resources]
Ember add-ons
> ember install ember-async-expanding-tree
{{async-expanding-tree model=topNode config=customConfig}}
config:
labelPropertyPath: 'label'
getChildren: (model) ->
children = Ember.ajax("/hierarchy/" +
"#{@get('hierarchyId')}" +
"/target/#{model.get('id')}")
showMaxChildren: 50
includeLeafs: true
hierarchy:
image: tf-esco/hierarchy:1.2.3
links:
- db:database
dispatcher:
…
links:
- hierarchy:hierarchy
match "/hierarchy/*path" do
Proxy.forward conn, path, "http://hierarchy/"
end
[hierarchy-service]
Ember add-ons [hierarchy-service]
What we learned
What we learned
- Extremely productive
- Code reuse
- Easy for juniors
- Customers like front-end
- Database performance is okayish
- Conscious playing with alternative solutions
About the future
Trigger microservices by changes in
semantic model.
Example:
- Compute KPIs when a new dataset is added
- Send email/tweet by writing it to the triplestore
Reactive programming
More performance
- ember-fastboot:
Faster first page render
- mu-cache:
Smart caching strategies
in core microservices
- mu-cl-resources:
Partial resource caching
More authority
Describe authorization outside the microservices:
- Simplify mental model
- Help in sharing content
- Open gate to advanced
applications
search for Jonathan Langens if you want to know more
More interactivity
Push cache updates to all visiting clients.
Almost no development time to create
basic interactive applications
(eg: updating KPIs, chat applications, …)
More links
Lego Time Star Wars: https://www.flickr.com/photos/eurobricks-starwars/5223334274/in/photolist-8XyXiu-7BJ9Xp-c2btBw-davQBK-
nAQJCC-9XVSZs-a3vVhy-vPZaHw-r6NB6c-4ajSXh-rX7ezA-BBhAWf-BiWDpc-rED79Q-rX7f8u-mtctqc-wtp245-fcNzVb-CgXNsA-D4Uxps-wKj5u9-rX7fVm-
rUWnBU-uhC54v-rXeB4g-zVknPq-qxEqXx-8GSCNc-nzg79j-biFNa6-9fXjwV-biFMTa-a1kbsX-5HnKDa-dQCdnW-a54g8X-bm9TRN-8zJUzU-fbGRan-sdr4hw-
e9DMFz-q3qQqf-aAZwyV- bm9Tsw-dQCdpb-sdpUWU-rkow4K-wazJmK-bz4Md8-pyU2QM Wendelstein 7X: http://www.sciencemag.org/news/2015/10/
bizarre-reactor-might-save- nuclear-fusion 300SL: https://www.flickr.com/photos/smfan/7181631212/in/photolist-bWBJKN-o52kEN-
5pCCRH-6NezBh-oF2nYm-gHtRrE-6KAHDv-cPKKj9-2aj2ur-s3A8ua-5pH14j-bQk48B-omejVV-q2tAx7-o8yCtS-nRauVz-5pCNWB-o525H4-o9dqig-sk2we8-
o4EApo-N2NDc-o7jxQM-5pCG4c-81DnQh-exNBvp-kc9m4-exS223-cm2nm5-aPXHgc-7Tg5XD-6HQ5Q9-6w1JtR-5pCGWi-eb6dJe-pJYFdi-azFSaU-p5y4mb-
6GjCy2-q2kGp6-o52baX-9XtXDc-4GqX86-pJXbk1-8canak-q2tu1j-6HQ6eo-sjZQkD-dhaPyf-bBqucA http://www.quickmeme.com/meme/3stqet Big Data
Europe: https://www.big-data-europe.eu/ Docker Logo: http://www.silicon.de/41608942/microsoft-optimiert-windows-server-2016-fuer-die-
cloud/ webCAT: https://github.com/tenforce/webcat Banksy Van: http://artcentron.com/2016/06/22/banksy-graffiti-art-swat-van-sale/
#prettyPhoto Banksy Bananas: https://www.touchofmodern.com/sales/banksy-8a9ea26d-040f-4435-ada1-86e7a6b4a05c/pulp-fiction-bananas
Your Data Stories platoform: http://platform.yourdatastories.eu/ Star Wars Clones box: https://www.flickr.com/photos/kalexanderson/
5410769283/in/photolist-9f8Bcz-5SJTDj-55MnH2-4WEfzr-in3p6t-drf7fp-3b46gb-bKfRW4-3aYzBt-4xztdx-35E11y-9jVQVR-9wuv3f-9r3mWe-9hNTVz-
7JzMxg-7JYZFM-Hw1QSq-8FW8eh-nVj9Sc-8ytJvH-aPPKYz-dYyYWK-7fhBFE-7GgZYm-e5M9jV-bwm6S9-7fhyGd-e5SNkL-5LDPWB-e5SNdf-4MKWht-e5SLrb-
5zPWDw-74Yjyb-8xh5Vr-9Apdwp-4XUn5j-jSHfRS-9fAZ86-eueiqp-e5SPwu-e5MbcZ-9tJQdd- 5f4rJT-9HsoqF-9hud4U-e5MaQX-52mMrQ-e5M9WX/ GitHub Logo:
https://blog.adafruit.com/2012/12/31/github-has-big-dreams-for- open-source-software-and-more/ Twitter Logo:
https://en.wikipedia.org/wiki/File:Twitter_bird_logo_2012.svg mu-ruby-template: https://github.com/mu-semtech/mu-ruby-template
mu-cl-resources: https://github.com/mu-semtech/mu-cl-resources mu-project: https://github.com/mu-semtech/mu-project
Resources used & interesting links
More questions
right now, or ask later
aad.versteden@gmail.com
aad.versteden@tenforce.com
madnificent
@impulsater
http://www.tenforce.com http://dacota.one http://mu.semte.ch
You can track me down
Aad Versteden

More Related Content

Similar to Semantic technologies in practice - KULeuven 2016 (20)

PPTX
mu.semte.ch - A journey from TenForce's perspective - SEMANTICS2016
Aad Versteden
 
PPTX
Inside Wordnik's Architecture
Tony Tam
 
PDF
Semantic Web For Dummies
Jeffrey T. Pollock
 
PDF
State of-the-art web applications using microservices and linked data
Aad Versteden
 
PDF
Memonic Architecture
Patrice Neff
 
PDF
Semantic web, python, construction industry
Reinout van Rees
 
KEY
Introduction to the Semantic Web
Nuxeo
 
PPT
Web Topics
Praveen AP
 
PPTX
Evolution Towards Web 3.0: The Semantic Web
LeeFeigenbaum
 
ODP
The Entity Registry System: Collaborative Editing of Entity Data in Poorly Co...
Christophe Guéret
 
PPT
Introduction to Semantic Web for GIS Practitioners
Emanuele Della Valle
 
PPTX
MyHeritage backend group - build to scale
Ran Levy
 
PPTX
ERS downscale2016
Victor de Boer
 
PDF
Lessons from Highly Scalable Architectures at Social Networking Sites
Patrick Senti
 
ODT
Riding The Semantic Wave
Kaniska Mandal
 
PDF
Scientific Social Objects
seanb
 
PDF
Some news about the SW
Ivan Herman
 
PPTX
Get on the Linked Data Web!
Armin Haller
 
PDF
Ditching the Middleware
DATAVERSITY
 
PPT
Corrib.org - OpenSource and Research
adameq
 
mu.semte.ch - A journey from TenForce's perspective - SEMANTICS2016
Aad Versteden
 
Inside Wordnik's Architecture
Tony Tam
 
Semantic Web For Dummies
Jeffrey T. Pollock
 
State of-the-art web applications using microservices and linked data
Aad Versteden
 
Memonic Architecture
Patrice Neff
 
Semantic web, python, construction industry
Reinout van Rees
 
Introduction to the Semantic Web
Nuxeo
 
Web Topics
Praveen AP
 
Evolution Towards Web 3.0: The Semantic Web
LeeFeigenbaum
 
The Entity Registry System: Collaborative Editing of Entity Data in Poorly Co...
Christophe Guéret
 
Introduction to Semantic Web for GIS Practitioners
Emanuele Della Valle
 
MyHeritage backend group - build to scale
Ran Levy
 
ERS downscale2016
Victor de Boer
 
Lessons from Highly Scalable Architectures at Social Networking Sites
Patrick Senti
 
Riding The Semantic Wave
Kaniska Mandal
 
Scientific Social Objects
seanb
 
Some news about the SW
Ivan Herman
 
Get on the Linked Data Web!
Armin Haller
 
Ditching the Middleware
DATAVERSITY
 
Corrib.org - OpenSource and Research
adameq
 

Recently uploaded (20)

PPTX
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
PDF
DevOps Design for different deployment options
henrymails
 
PDF
The Complete Guide to Chrome Net Internals DNS – 2025
Orage Technologies
 
PDF
Azure_DevOps introduction for CI/CD and Agile
henrymails
 
PPTX
英国学位证(RCM毕业证书)皇家音乐学院毕业证书如何办理
Taqyea
 
PDF
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
PPTX
unit 2_2 copy right fdrgfdgfai and sm.pptx
nepmithibai2024
 
PPTX
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
PPTX
Template Timeplan & Roadmap Product.pptx
ImeldaYulistya
 
PPTX
internet básico presentacion es una red global
70965857
 
PPTX
Cost_of_Quality_Presentation_Software_Engineering.pptx
farispalayi
 
PDF
Pas45789-Energs-Efficient-Craigg1ing.pdf
lafinedelcinghiale
 
PPTX
原版西班牙莱昂大学毕业证(León毕业证书)如何办理
Taqyea
 
PDF
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
PPTX
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
PPT
Computer Securityyyyyyyy - Chapter 2.ppt
SolomonSB
 
PPTX
本科硕士学历佛罗里达大学毕业证(UF毕业证书)24小时在线办理
Taqyea
 
PDF
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
PDF
Internet Governance and its role in Global economy presentation By Shreedeep ...
Shreedeep Rayamajhi
 
PDF
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
DevOps Design for different deployment options
henrymails
 
The Complete Guide to Chrome Net Internals DNS – 2025
Orage Technologies
 
Azure_DevOps introduction for CI/CD and Agile
henrymails
 
英国学位证(RCM毕业证书)皇家音乐学院毕业证书如何办理
Taqyea
 
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
unit 2_2 copy right fdrgfdgfai and sm.pptx
nepmithibai2024
 
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
Template Timeplan & Roadmap Product.pptx
ImeldaYulistya
 
internet básico presentacion es una red global
70965857
 
Cost_of_Quality_Presentation_Software_Engineering.pptx
farispalayi
 
Pas45789-Energs-Efficient-Craigg1ing.pdf
lafinedelcinghiale
 
原版西班牙莱昂大学毕业证(León毕业证书)如何办理
Taqyea
 
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
Computer Securityyyyyyyy - Chapter 2.ppt
SolomonSB
 
本科硕士学历佛罗里达大学毕业证(UF毕业证书)24小时在线办理
Taqyea
 
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
Internet Governance and its role in Global economy presentation By Shreedeep ...
Shreedeep Rayamajhi
 
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
Ad

Semantic technologies in practice - KULeuven 2016

  • 2. Semantic technologies in practice Some technical tidbits Some real-world examples A practical way of developing apps
  • 3. High quality linked data Five stars - The content is free - … in a structured format - … which is open - … and it uses URIs - … which are used elsewhere <3 stars: Manual integration >3 stars: Automatic integration
  • 4. Semantic integration Mapping to linked data: - CKAN - schema.org Content is linked data: - RDFa - Turtle Internal use of Linked Data: - mu.semte.ch SPARQL endpoint - dbpedia
  • 8. Example: Best Buy Accidental SEO - Build blog for higher visibility - Annotations using RDFa + 30% incoming search traffic ?!
  • 9. Example: Best Buy Best buy now uses schema.org Where do we see this working?
  • 12. SEO Search engines are pushing for structured data & it’s linked
  • 13. BBC you know, the big broadcasters
  • 14. BBC: World cup 2010 Problem: - Information on 32 teams, 736 players - Roughly 750 pages of dynamic content Solution: - A semantic model - Dynamically generated pages - Minimal journalistic management Repeated in 2012 summer olympics
  • 15. BBC: Ontologies BBC publishes Linked Data everywhere Awesome ontologies !! Agile ontologies !! Semantic administration tools
  • 16. “We want people to recognise, not memorise their way around the site” -- Jo Kent
  • 18. ESCO bringing structure to the job market
  • 19. ESCO Meet Sara, … a Spanish speaking nurse from Spain
  • 20. ESCO Sarah considers filling her duties in another European country.
  • 21. ESCO Sarah has limited language skills Sarah uses Google translate and finds that enfermera translates to nurse What Sarah doesn’t find is that a nurse in Spain performs the duties of a nursery assistant in Great Britain.
  • 23. ESCO
  • 24. ESCO
  • 25. ESCO This is what we do: - ~7 full time knowledge engineers - ~4 full time developers and architects - Loads of tooling - Vision for the future
  • 28. <<<SSSHHHHHHHHH>>> this is the start of the mu.semte.ch story
  • 31. In 60 seconds State-of-the-art web applications fuelled by Linked Data aware microservices - User-facing microservices - Easy deployment using Docker - Single Page Apps using Ember.js - Well known requirements => [HTTP+JSON+SPARQL] https://github.com/mu-semtech/ https://mu.semte.ch
  • 32. Some history Share code on personal projects Rails is not über-productive Stay light, choose later Use microservices and semantic model
  • 34. KISS - Most of us aren’t microservice experts - Most of us aren’t UI experts - We need to get stuff done - Maximize freedom - Orthogonal features - Minimize requirements - Enforce simple mental model
  • 36. Simple mental model User-facing microservices Limit base technologies: - HTTP - JSON(API) - SPARQL (one graph)
  • 37. Simple mental model TenForce supports publishing of open data. - Use DCAT standard - EDCAT 2.0 released - mudCAT = back-end - webCAT = front-end - Custom configurations to match specific customer needs.
  • 39. Semantic models Many actors, telling parts of the same story
  • 40. Semantic models Services read/write the part of the world they understand. User Registration: - There’s a new user => add it to the triplestore. User Login: - Check username/password => connect user to current session.
  • 42. Semantic models Many implementations, one model Same model for: - Username/Password login - OAuth login - ECAS login
  • 43. Semantic models We use the ECAS login for ESCO-related projects. ESCO is a taxonomy of all Skills Competences and Occupations in Europe. The Dacota team finds and classifies content. Brains for hire!
  • 45. Docker Container =~ Lightweight Linux Virtual Machine Docker Compose =~ Topology of multi-container project Each service runs in its own Docker Container In short: - Simple hosting on hub.docker.com - Clean project description - Always works - Runs on the Big Data Europe Platform Share using Docker
  • 46. Share using Docker We are part of Big Data Europe Making Big Data: - Easy to get started - Cheaper to maintain … in any domain - Now including Smart Big Data: => Semantics + Big Data = <3
  • 48. Reuse everything - Templates: basics for a service - Configurable services - mu-cl-resources - Ember add-ons - Hierarchy service + add-on - Login service + add-on
  • 49. Base templates CatalogsIndexRoute = Ember.Route.extend ajax: Ember.inject.service() model: () -> @get('ajax').request('/hello') Hello result: {{model.value}} get '/hello/' do counter = query( "SELECT COUNT (*) as ?counter" + "WHERE {" + " ?s ?p ?o." + "}" ).first[:counter].to_i status 200 { value: counter }.to_json end FROM semtech/mu-ruby-template:2.0.0-ruby2.3 MAINTAINER Your Name <[email protected]> demo: image: you/demo-service links: - db:database dispatcher: … links: - demo:demo match "/hello/*path" do Proxy.forward conn, path, "http://demo/hello/" end [mu-ruby-template ]
  • 51. Configurable services (define-resource distribution () :class (s-prefix "dcat:Distribution") :properties `((:title :string ,(s-prefix "dct:title")) (:description :string ,(s-prefix "dct:description")) (:issued :string ,(s-prefix "dct:issued")) (:modified :string ,(s-prefix "dct:modified")) (:license :string ,(s-prefix "dct:license")) (:rights :string ,(s-prefix "dct:rights")) (:access-url :string ,(s-prefix "dcat:accessURL")) (:download-url :string ,(s-prefix "dcat:downloadURL"))) :has-one `((dataset :via ,(s-prefix "dcat:distribution") :inverse t :as "dataset") (format :via ,(s-prefix "dct:format") :as "format")) :resource-base (s-url "http://your-data-stories.eu/distributions/") :on-path "distributions") [mu-cl-resources] Full JSONAPI from abstract description
  • 53. Ember add-ons > ember install ember-async-expanding-tree {{async-expanding-tree model=topNode config=customConfig}} config: labelPropertyPath: 'label' getChildren: (model) -> children = Ember.ajax("/hierarchy/" + "#{@get('hierarchyId')}" + "/target/#{model.get('id')}") showMaxChildren: 50 includeLeafs: true hierarchy: image: tf-esco/hierarchy:1.2.3 links: - db:database dispatcher: … links: - hierarchy:hierarchy match "/hierarchy/*path" do Proxy.forward conn, path, "http://hierarchy/" end [hierarchy-service]
  • 56. What we learned - Extremely productive - Code reuse - Easy for juniors - Customers like front-end - Database performance is okayish - Conscious playing with alternative solutions
  • 58. Trigger microservices by changes in semantic model. Example: - Compute KPIs when a new dataset is added - Send email/tweet by writing it to the triplestore Reactive programming
  • 59. More performance - ember-fastboot: Faster first page render - mu-cache: Smart caching strategies in core microservices - mu-cl-resources: Partial resource caching
  • 60. More authority Describe authorization outside the microservices: - Simplify mental model - Help in sharing content - Open gate to advanced applications search for Jonathan Langens if you want to know more
  • 61. More interactivity Push cache updates to all visiting clients. Almost no development time to create basic interactive applications (eg: updating KPIs, chat applications, …)
  • 63. Lego Time Star Wars: https://www.flickr.com/photos/eurobricks-starwars/5223334274/in/photolist-8XyXiu-7BJ9Xp-c2btBw-davQBK- nAQJCC-9XVSZs-a3vVhy-vPZaHw-r6NB6c-4ajSXh-rX7ezA-BBhAWf-BiWDpc-rED79Q-rX7f8u-mtctqc-wtp245-fcNzVb-CgXNsA-D4Uxps-wKj5u9-rX7fVm- rUWnBU-uhC54v-rXeB4g-zVknPq-qxEqXx-8GSCNc-nzg79j-biFNa6-9fXjwV-biFMTa-a1kbsX-5HnKDa-dQCdnW-a54g8X-bm9TRN-8zJUzU-fbGRan-sdr4hw- e9DMFz-q3qQqf-aAZwyV- bm9Tsw-dQCdpb-sdpUWU-rkow4K-wazJmK-bz4Md8-pyU2QM Wendelstein 7X: http://www.sciencemag.org/news/2015/10/ bizarre-reactor-might-save- nuclear-fusion 300SL: https://www.flickr.com/photos/smfan/7181631212/in/photolist-bWBJKN-o52kEN- 5pCCRH-6NezBh-oF2nYm-gHtRrE-6KAHDv-cPKKj9-2aj2ur-s3A8ua-5pH14j-bQk48B-omejVV-q2tAx7-o8yCtS-nRauVz-5pCNWB-o525H4-o9dqig-sk2we8- o4EApo-N2NDc-o7jxQM-5pCG4c-81DnQh-exNBvp-kc9m4-exS223-cm2nm5-aPXHgc-7Tg5XD-6HQ5Q9-6w1JtR-5pCGWi-eb6dJe-pJYFdi-azFSaU-p5y4mb- 6GjCy2-q2kGp6-o52baX-9XtXDc-4GqX86-pJXbk1-8canak-q2tu1j-6HQ6eo-sjZQkD-dhaPyf-bBqucA http://www.quickmeme.com/meme/3stqet Big Data Europe: https://www.big-data-europe.eu/ Docker Logo: http://www.silicon.de/41608942/microsoft-optimiert-windows-server-2016-fuer-die- cloud/ webCAT: https://github.com/tenforce/webcat Banksy Van: http://artcentron.com/2016/06/22/banksy-graffiti-art-swat-van-sale/ #prettyPhoto Banksy Bananas: https://www.touchofmodern.com/sales/banksy-8a9ea26d-040f-4435-ada1-86e7a6b4a05c/pulp-fiction-bananas Your Data Stories platoform: http://platform.yourdatastories.eu/ Star Wars Clones box: https://www.flickr.com/photos/kalexanderson/ 5410769283/in/photolist-9f8Bcz-5SJTDj-55MnH2-4WEfzr-in3p6t-drf7fp-3b46gb-bKfRW4-3aYzBt-4xztdx-35E11y-9jVQVR-9wuv3f-9r3mWe-9hNTVz- 7JzMxg-7JYZFM-Hw1QSq-8FW8eh-nVj9Sc-8ytJvH-aPPKYz-dYyYWK-7fhBFE-7GgZYm-e5M9jV-bwm6S9-7fhyGd-e5SNkL-5LDPWB-e5SNdf-4MKWht-e5SLrb- 5zPWDw-74Yjyb-8xh5Vr-9Apdwp-4XUn5j-jSHfRS-9fAZ86-eueiqp-e5SPwu-e5MbcZ-9tJQdd- 5f4rJT-9HsoqF-9hud4U-e5MaQX-52mMrQ-e5M9WX/ GitHub Logo: https://blog.adafruit.com/2012/12/31/github-has-big-dreams-for- open-source-software-and-more/ Twitter Logo: https://en.wikipedia.org/wiki/File:Twitter_bird_logo_2012.svg mu-ruby-template: https://github.com/mu-semtech/mu-ruby-template mu-cl-resources: https://github.com/mu-semtech/mu-cl-resources mu-project: https://github.com/mu-semtech/mu-project Resources used & interesting links