interacting with linked data part iv: information workbench€¦ · linked data approch to drug...
TRANSCRIPT
Interacting with Linked Data Part IV: Information Workbench
Agenda
• Part 0: Welcome
• Part I: General Introduction to Semantic Technologies
• Part II: Advanced Concepts
• Part III: OWLIM
• Part IV: Information Workbench
• Part V: Hands-on
Music!
3
Visualization Module
Metadata
Streaming providers
Physical Wrapper
Downloads
Dat
a ac
qu
isit
ion
D2R Transf. LD Wrapper
Musical Content
Ap
plic
atio
n
Analysis & Mining Module
LD D
atas
et
Acc
ess
LD Wrapper
RDF/ XML
Integrated Dataset
Interlinking Cleansing Vocabulary
Mapping
SPARQL Endpoint
Publishing
RDFa
Other content
fluidOps Portfolio
fluidOps Platform
Cloud Management Semantic Data Management Flexible & Data-driven UI
Pla
tfo
rm
SDK
Sa
mp
le S
olu
tio
ns
Protein Engineering
Portal
Scalable End-User Access to Big Data
Dynamic Semantic Publishing
@
Linked Data Approch to
Drug Research
Public Portal for Complex
Demo Application Landscapes
IT Transparency & Data Center
Intelligence for large Hosters
Data Providers Data Widgets Templates Ontology Configuration Workflows Rules API
Pro
du
ct
On demand. On time. Ready to run For a World Where All Data is Linked
Image Library
Managementfor Complex
Demo Application Landscapes
Par
tne
r P
rod
uct
s &
So
luti
on
s
Open Technologies & Standards
REST
JDBC
User Interface Concept: One Page URI
Resource page
RDF Graph
Resource page
Resource page
Resource page
Information Workbench User Interface
Navigation
Back to Information Workbench Start Page
Print view of current page
Search panel
Admin pages
Help content
Login screen
User Interface Concept: One Page URI
Resource page
RDF Graph
Resource page
Resource page
Resource page
Different Views on Every Resource
Wiki View
Table View
Graph View
Pivot View
How to Get Data into the System?
• Data Management based on Sesame framework • Open Source, written in Java
• Layered architecture for semantic data management
• Easy to plug in new data management components on demand
REST
Sesame Access API
SAIL API
Stable (yet extensilble) APIs for data access, manipulation, ...
SAIL 1 (e.g. Query Optimization Layer)
SAIL 2 (e.g. Distributed Query Execution Layer)
DB1 DB2 DB3
Stackable architecure of custom data management components
Easy integration by implementing a generic API
Data Providers
Data providers support the periodic extraction & integration from external data sources into a central repository
• Parametrizable (e.g. connection information, refresh interval, ..)
• Built-in UI for instantiating providers
• Intuitive interfaces for writing own, customized providers (see SDK)
Relational DB Provider
User-defined Provider
SOAP Provider REST Provider
RDF Connector
Metadata Connector
R2RML
XML2RDF
Example: XML Provider
Retrieve XML Data
RDF Mapping
dbpedia:Karlsruhe
foaf:mbox
:residence
:Tobias
foaf:firstName
rdf:type
foaf:Person
“Tobias”
“Mathaess”
foaf:lastName
Store
:
“
”
”
“
”
”
:
:
:
:
Database
Example: Script Provider
Step 1: instantiate a new Script Provider in the UI
Step 2: implement groovy script, e.g. extracting custom data from relational databases
Instantiating Data Providers
Example: instantiating an RDF provider for the wine ontology located at http://www.w3.org/TR/owl-guide/wine.rdf.
Search and Querying
• Several possibilities
• Keyword search (Wiki and/or structured data)
• Structured SPARQL queries
• Faceted Search
SELECT ?project ?area ?grant
WHERE {
?project rdf:type foaf:Project .
?project research:area ?area .
?project research:grant ?grant .
}
Keyword Search: Structured Search:
Keyword Search vs. Structured Search
Skeleton query for keyword-based search:
SELECT ?Subject ?Property ?Value ?Type
WHERE {
{
SELECT ?Subject ?Property ?Value
WHERE {
?Subject search:matches ?match .
?match search:query "??" ;
search:property ?Property ;
search:snippet ?Value ;
search:score ?score .
} ORDER BY DESC(?score) LIMIT 1000
}
OPTIONAL { ?Subject rdf:type ?Type . }
}
Structured Search
SELECT *
WHERE {
?s ?p ?o.
}
Hybrid Search
• Combine capabilities of full-text and structured search SELECT ?Subject ?Property ?Value ?Type
WHERE {
{
SELECT ?Subject ?Property ?Value
WHERE {
?Subject search:matches ?match .
?match search:query "person";
search:property rdfs:label;
search:snippet ?Value;
search:score ?score.
} ORDER BY DESC(?score) LIMIT 1000
}
OPTIONAL { ?Subject rdf:type ?Type . }
}
Query answer: All triples that have rdfs:label as their property and a match with the string „person“ in their subject.
Pivot View
Widget-based User Interface
Analytics and Reporting Visualization and Exploration
Mashups with Social Media Authoring and Content Creation
Widgets are not static and can be integrated
into the UI using a Wiki-style syntax.
Adding Widgets to Wiki - Example
{{ #widget : BarChart
| input = 'region'
| output = {{ 'sumGrant' }}
| query = ‘
SELECT (SUM(?grant) AS ?sumGrant) ?region
WHERE {
?role :grant ?grant .
?role :region ?region .
?region :name ?regionname .
}
GROUP BY ?region’
}}
Information Workbench – Widgets
Example:
{{ #widget : TableResult
| query = 'select distinct ?type where
{?s rdf:type ?type.}'
| width = '700'
}}
General Form:
{{ #widget: WIDGETNAME
| PARAM1 = 'ARGS1'
| PARAM2 = 'ARGS2'
}}
Information Workbench – Widgets
• Go to a new wiki page http://optique.fluidops.net/resource/Widget123Page
• Change to the Edit View
Tabular Listing of Widgets
Charts: • Bar Chart • Heat Map • Line Chart • Pie Chart • Radar Chart • Stock Chart
Authoring: • Data Input • New Instance • Triple Editor
Visualization: • Google Map • Graph • Image • Pivot • Tag Cloud • Tree Result • Timeline • Timeplot • Query Result • Search • Table Result
Social Media: • News • Skype • Twitter • YouTube
User-defined Widgets
Additional Information & Hints
• Detailed SDK documentation is available at • Help:Developers (e.g. http://localhost:8888/resource/Help:Developers)
• How to write a widget • Help:WidgetSDK
• How to write a provider • Help:ProviderSDK
Instance Pages vs. Templates
Page content is composed based on a template concept:
Barack Obama
rdf:type
• Wiki template Template:foaf:Person • Table view config for foaf:Person • Graph view config for foaf:Person • Pivot view config for foaf:Person • Additional widget definitions for foaf:Person request for
dbpedia:Barack_Obama
foaf:Person
Resource page
• Wiki view for dbpedia:Barack_Obama • Table view for dbpedia:Barack_Obama • Graph view for dbpedia:Barack_Obama • Pivot view for dbpedia:Barack_Obama • Additional widget definitions for
dbpedia:Barack_Obama
+
Combined information from template definition and specific instance (giving instance config a priority)
Building Solutions
Package functionality together:
• Custom wiki pages
• Custom template pages
• Custom widgets
• Custom data providers
Solution deployment: • Built as single ZIP file • Can be copied into IWB to make
functionality available and running
Additional Information & Hints
• Detailed SDK documentation is available at • Help:Developers (e.g. http://localhost:8888/resource/Help:Developers)
• How to write a widget • Help:WidgetSDK
• How to write a provider • Help:ProviderSDK
Summary
You have seen so far …
• Information Workbench wiki and data model
• Possibilities for keyword search and semantic-based search
• How to build custom visualization of your data
• How Linked Data enables browsing-based application
• The IWB solution concept
THANK YOU!
Contact us fluid Operations AG Altrottstr. 31 69190 Walldorf Germany Tel: +49 (0) 6227 3846-527 Fax: +49 (0) 6227 3849-565 E-Mail: [email protected] www.fluidOps.com