from idea to web - creating linked data apps
DESCRIPTION
Slidedeck from SemTechBiz Berlin, FebTRANSCRIPT
From Idea to WebCreating Linked Data Apps
SemTechBiz Berlin 06.02.2012
#php #javascript #semweb #kasabi
[email protected]@bengee
Benjamin Nowack
Linked Data Essentials
SemTechBiz Berlin 06.02.2012
Data objects with
● properties
● links to other objects
Linked Data Essentials
SemTechBiz Berlin 06.02.2012
HTTP identifiers for
● objects
● property names
● link names
Linked Data and the Semantic Web
SemTechBiz Berlin 06.02.2012
The Linked Data Ecosystem
SemTechBiz Berlin 06.02.2012
New Possibilities (and Challenges)
SemTechBiz Berlin 06.02.2012
● Distributed, re-usable data and schemas
● Schema-less, fully indexed storage systems
● Uniform interfaces (HTTP + flattened graph model)
● Open extensibility / annotations
● Free-form analytics
● Aggregation / Integration
● Inference
Typical App Scenarios for Linked Data
SemTechBiz Berlin 06.02.2012
● Analytics & Visualisations
● Context-aware widgets and UI elements
● UGC / Annotations
● Filtered Aggregations
● Flexible Navigators
● Mashups
● KM
Before you start
SemTechBiz Berlin 06.02.2012
● What is your objective?
● Dataset, Tool or Application?
● Charity or Business?
● Pick one app scenario at a time.
● Set a time-frame.
By Example...
SemTechBiz Berlin 06.02.2012
1) Problem Identification
SemTechBiz Berlin 06.02.2012
● 3 days left until SemTech Biz Berlin (ugh!)
● 1st SemTech in DE
● (Hopefully) many new faces interested in applying
the technology
● Getting started with specs and tools to build an app
can be tricky.
● Generally, finding your way around in the semantic
technology space is not necessarily obvious.
2) App Idea & Possibilities
SemTechBiz Berlin 06.02.2012
● Show, don't tell...
● A behind-the-scenes demo could be helpful
● The SemTech conference organizers make their data
available (Thanks, Eric!)
● Build a basic graph navigator. Demonstrate lessons
learned and challenges
● Domain browser as a handy by-product.
● 3 days? Should be easy, no?!
3) Simple User Stories help to stay focused
SemTechBiz Berlin 06.02.2012
● Get access to all (well, many) semantic tech
resources in one place (experts, topics,
companies, talks, ...)
● Allow exploration by simply “Following links”.
● Find outgoing as well as incoming relations .
● Provide statistics using the aggregated
information.
4) Create a UI Sketch and Interaction Idea
SemTechBiz Berlin 06.02.2012
5) Design the basic UI Elements
SemTechBiz Berlin 06.02.2012
5b) Think Widgets
SemTechBiz Berlin 06.02.2012
6) Create your UI in code (CSS FTW!)
SemTechBiz Berlin 06.02.2012
7) Create a Schema Sketch:
SemTechBiz Berlin 06.02.2012
7b) Schema in simple code:
SemTechBiz Berlin 06.02.2012
8) URL/Path Considerations
SemTechBiz Berlin 06.02.2012
/ Welcome
/ TYPE List of items of type TYPE
/ TYPE / ID Description of item ID
/ TYPE / ID / LINK Related items of type LINK
/conferences/semtech2010/speakers
8b) Let clean URL structures enable Automation
SemTechBiz Berlin 06.02.2012
/conferences/semtech2010/speakers;country=UK
SELECT ?speaker WHERE {
?conference rdf:type app:Conference .
?conference app:id “semtech2010” .
?conference app:speaker ?speaker .
?speaker app:country “UK” .
}
(... 2 days left)
SemTechBiz Berlin 06.02.2012
9) Code!
10) External Data needed!
SemTechBiz Berlin 06.02.2012
● Identification of needed data sources
● semtech data
● country identifiers
● Conversion to internal, app-specific model
● Alternative: re-use source ontology
● Clean-up and harmonisation („Reconciliation“)
● Import or use a stand-alone service
(... 1 day left)
(... 1 day night left)
SemTechBiz Berlin 06.02.2012
11) Get the basic widgets in place.
Next Steps
SemTechBiz Berlin 06.02.2012
● Use the app and revisit the user stories
● Now you can start having fun with
automation/abstraction
● Add more powerful widgets
● Export the augmented/curated data to support
the ecosystem. (Did I mention Kasabi?)
● Create and publish link sets
semtech360.com
(work in progress)
SemTechBiz Berlin 06.02.2012
Trimming the Learning Curve
SemTechBiz Berlin 06.02.2012
● Keep your existing tools (where possible)
● Specs matter. Time-to-launch matters more
● Late URI binding
● Create per-app schemas
● Don't generalise and automate right away
● (Re-)Publishing is the easy part
● Grab a SPARQL tutorial & play 2h with LOD stores.