Talking about • Topic: Semantic
Web + World Wide Web development & user interfaces • Services based around data like Linking Open Data or custom/proprietary graphs • Talking about both Semantic Web and semantic web • From perspective of a developer
Seen so far • Both
Semantic Web & semantic web • Twine, Sindici, OpenLink faceted search, Freebase, Freebase Autosuggest, ViewChange player, rkbexplorer, Faviki, Glue, Facebook open graph, Zemanta, BBC (Nature, Music, Programme), Siri • Let's look at them in random order
The pattern • Some start
with a problem and arrive to SemWeb technologies as one part of a solution • Some start with semantic web solution and start to look for the problem • Which ones do you like more? • What goes wrong?
An example: Barack Obama Born:
August 4, 1961 (1961-08-04), age 48, Honolulu, Hawaii Birth name:Barack Hussein Obama II Nationality: American Political party:Democratic Spouse(s): Michelle Obama (m. 1992)
How SW engineer sees that?
Honolulu, Hawaii Place Event object 321321 Date Bi rt h ev male en 1961-08-04 t Sex Barack Obama rt y Marria c al pa ge partne Politi r1 Marriage Object 1231321 rl aitu Michelle Obama Marriage partner2 rtr po http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/ Official_portrait_of_Barack_Obama.jpg/225px-Official_portrait_of_Barack_Obama.jpg
Honolulu, Hawaii Place Event object
321321 Date This graph is fantastic! Bir th ev en 1961-08-04 t Sex Barack Obama y Marri age al part partner1 Politic Marria it u rl Marriage partner2 tr a Michelle Obama por http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/ Official_portrait_of_Barack_Obama.jpg/225px-Official_portrait_of_Barack_Ob • We can find people born on the same day! • We can find who is in Democratic party! • We can find the most similar people (not via SPARQL, but still) • We can exchange identifiers with everyone! • We can display the results easily, no mess!
Except • The queries mentioned
are mostly boring • In reality the LOD data is too sparse for 'discover anything, ask anything' • We usually want either a shallow search or truly deep and comprehensive data • Our app will have to do one thing and do it well
From engineer's perspective • Abstractions
are great • You can represent almost anything with a graph • You can query for anything you want in the same way! • You get all the cool things like validation, refactoring, reasoning. • .... • So you can treat all your data in the same
Abstraction • Is a blessing
for an engineer • But a curse for user interaction and user interfaces • Semantic web technology tends to attract “architecture astronauts”
Architecture astronauts The hallmark of
an architecture astronaut is that they don't solve an actual problem... they solve something that appears to be the template of a lot of problems. Or at least, they try. – Joel Sposlky <
User experience • We need
to tailor the experience to specific use-cases • Ignoring (powerful) underlying technology at first! • Spending more than just the last 10% of the time figuring out how the software/data are going to be used in practice • User experience is not just graphics design!
User experience • It might
be advantageous to have an unified data model on the backend • But that doesn't matter on the frontend/UX • Your software could theoretically offer limitless flexibility.... but are you sure you want to pay the price? • The price is a software that can do everything and is not good at anything in particular
Throw away a dream of
unified interfaces for data access And start designing software that concentrates on limited, but efficient ways to deal with data in scope of a specific task or a problem
So where are the tools?
• SemWeb is full of tools to manage ontologies, to extract data and to query data • But when it comes to interacting with data by end users on the web, the tools (libraries, frameworks) are missing • It's even worse. Everything beyond the triple store and SPARQL server is missing.
We don't have enough time
• Everyone needs to do visualizations, interfaces, data interactions on his own • But most of the time we're just reimplementing bottom layers • Thus there is no time to actually concentrate on interfaces • So we need to have the 'framework' problem solved in order to have resources for UI/UX
SemWeb web development - missing
Looking solely at UI side
• An UI toolset capable of dealing with specific ontologies • For starters: a decent graph presenting/manipulating JS library? • When I deal with dates, people, places, events, ... I want to 'outsource' design and interaction to people more capable than myself in bringing machines and computers together.
Ideas: PlaceSemWebUI • Assuming common
geo ontologies • Displaying the data using Google Maps or Cloudmade • Allowing for 'smart' display of multiple entities, 'smart' selection, editing, route planning, overlaying with other data, etc.
Ideas: PersonSemWebUI • Understanding common
person ontologies • Understanding what type of things people want to do with “Person” objects • Offer different visualizations, listing friends, contacts, relationships in different ways • Mashing it up with Facebook, LinkedIn, Twitter, Glue, etc...
Good tools to start with
• Sparta (ORM for Python, dead) • ActiveRDF, HyperDE (ORM for Ruby) • Simile MIT project (Timeline, Seek) • Longwell (RDF faceted browser) • Freebase Parallax (open sourced) • Freebase Acre (Semantic PaaS)
Why are there no frameworks?
• Because they are hard • Because there's no specification up front (Frenzel failed) • No immediate benefits to authors, questionable demand • It takes UI/UX designer, designer, semweb expert, backend engineer and frontend engineer (5 different people!) • Or maybe I just don't know about them??
So you want to be
a hero? • You might be the savior of SemWeb – making it appeal to wider web development community • If you are Semantic Web backend provider, you can look at this as a complementary product which rises demand for your main one • Since there is so little competition, you can take the world by storm
And don't hesitate about •
Making politically incorrect requirements (“to run this fast, please download whole Freebase locally into MySQL database”) • Building opinionated software (Apple...) • Creating ontology specific solutions • Releasing it as open source, even half baked
RDFa, Microdata? • Browsers turned
away from creating useful default interactions for common data types • Extensions like Mozilla Operator seem to be a dead end (unfortunately) • However new browser wars are coming! • And that is a good thing for semantic web!
Facebook Open Graph • Publishing
stuff in Facebook-supported way might become more important than anything else regarding RDFa or microdata • Useful for people dealing with social or 'popular' objects • Are FB apps based on this actually semantic apps already?
When to do what? •
Start with use-cases • Involve user experience designers early on • Exploration is overrated • If there's one thought I want to leave you with: Not constraining yourself to specific use-cases is the greatest design sin of Semantic Web, ever.
Conclusion • SemWeb on the
web right now is mostly a data interchange layer • Creating web applications based solely on SemWeb stack is for most advanterous • We need more of a 'pull' projects, 'push' isn't getting us anywhere