Slides of the course given at the KULeuven lecture of Knowledge and the Web on 2016/10/26. Examples of semantic technologies and a way of developing web apps on top of it.
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
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
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.
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
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.
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.
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 <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
]
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
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, …)