designing semantic web application

41
Mark van Berkel, Founder [email protected] @vberkel March 2013, Hunch Manifest Inc

Upload: mark-van-berkel

Post on 01-Jul-2015

953 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Designing Semantic Web Application

Mark van Berkel, Founder

[email protected]

@vberkel

March 2013, Hunch Manifest Inc

Page 2: Designing Semantic Web Application

Mark “van Berkel”lastName

March 2013, Hunch Manifest Inc

Page 3: Designing Semantic Web Application

Mark “van Berkel”lastName

Hunch Manifest

M.Eng.studied

founded

Hunch Manifest

March 2013, Hunch Manifest Inc

Page 4: Designing Semantic Web Application

Mark “van Berkel”lastName

Hunch Manifest

M.Eng.studied

included

founded

Hunch Manifest

Servicedat

Home.comRHomeApi.com

M.Eng.

Projectoffersoffers

March 2013, Hunch Manifest Inc

Page 5: Designing Semantic Web Application

Mark “van Berkel”lastName

Hunch Manifest

M.Eng.studied

included

founded

Hunch Manifest

Servicedat

Home.comRHomeApi.com

M.Eng.

Project

SAP Labs

Prototype

Research

Report

offersoffers

producedproduced

March 2013, Hunch Manifest Inc

Page 6: Designing Semantic Web Application

Mark “van Berkel”lastName

Hunch Manifest“Designing

Semantic Web Apps”

M.Eng.studied

included

presentsfounded

Hunch Manifest Semantic Web Apps”

Servicedat

Home.comRHomeApi.com

M.Eng.

Project

SAP Labs

Prototype

Research

Report

basedOnbasedOn

basedOn

offersoffers

producedproduced

March 2013, Hunch Manifest Inc

Page 7: Designing Semantic Web Application

� Making connections may be the noblest work of man� Ralph Caplan, author, public speaker, and designer

� Digital technology and the Internet have suddenly opened up a dramatic flood of new connections opened up a dramatic flood of new connections and connectivity that’s confusing in its intensity and reach. Traditional media are being challenged by unexpected new media that have been spawned by these new connections.� Bill Moggridge, Founder IDEO

� Big data without context is just noise� Expert System ?

March 2013, Hunch Manifest Inc

Page 8: Designing Semantic Web Application

� Why?� Basic semantic web applications vs idealistic

designs� Data Collection� Basic Queries, CRUD operations� Basic Queries, CRUD operations� Advanced Queries, Transactions, using Contexts� Security� Publishing information� Platform and Infrastructure.� Ecosystem and complimentary technologies.� Opportunities and Challenges

March 2013, Hunch Manifest Inc

Page 9: Designing Semantic Web Application

Search & Discovery: ALL kinds of

information is unified

Do More: Better context, content

for User Actions

Knowledge Graph: Generate

assertions and automated

reasoningreasoning

Business Control: Shift from techies

to Knowledge workers (eg ODapps)

Adaptive & Robust: Easily extended,

integrate syntax, structure,

meaning.

Lower Costs: Integrate w/out

rearchitecting, single model

Domain Rationale: Elegant method

to solve data explosion

Source: http://www.mkbergman.com/1626/seven-arguments-for-semantic-technologies/

Page 10: Designing Semantic Web Application
Page 11: Designing Semantic Web Application

March 2013, Hunch Manifest Inc

Page 12: Designing Semantic Web Application

Ad

dit

ive

Te

chn

olo

gie

sA

dd

itiv

e T

ech

no

log

ies

March 2013, Hunch Manifest Inc

Page 13: Designing Semantic Web Application

Ad

dit

ive

Te

chn

olo

gie

sA

dd

itiv

e T

ech

no

log

ies

March 2013, Hunch Manifest Inc

Page 14: Designing Semantic Web Application

� Start with a Graph database

� Load some data (Data Collection)

� RDB to RDF Mapping Language ( R2RML )

� Load some LinkedData, e.g. DBPedia.org

� Custom Application Integration

� Test the SPARQL Query

� Find a Sem Web Library for your language

[see Ecosystem Slide]

March 2013, Hunch Manifest Inc

Page 15: Designing Semantic Web Application

March 2013, Hunch Manifest Inc

Page 16: Designing Semantic Web Application

� Partial R2RML mapping document will produce the triples from the EMP table:

� http://d2rq.org can generate mappings & SPARQL read access to content of relational databases

March 2013, Hunch Manifest Inc

Page 17: Designing Semantic Web Application

March 2013, Hunch Manifest Inc

Page 18: Designing Semantic Web Application

March 2013, Hunch Manifest Inc

Page 19: Designing Semantic Web Application

March 2013, Hunch Manifest Inc

Page 20: Designing Semantic Web Application

March 2013, Hunch Manifest Inc

Page 21: Designing Semantic Web Application

Franz AllegroGraph Semantic Entity Tracking

March 2013, Hunch Manifest Inc

Page 22: Designing Semantic Web Application

TopBraid Suite

Leverages emerging

technology to help

customers connect customers connect

silos of data, systems

and infrastructure and

to build flexible

applications from

linked data models.

March 2013, Hunch Manifest Inc

Page 23: Designing Semantic Web Application

Ontology� Defines all the elements

involved in a business ecosystem and organizes them by their relationship to each relationship to each other.

� Upper Level Ontology� Domain Specific

Ontology� Generate Reasoning &

Dynamic Insights

March 2013, Hunch Manifest Inc

Page 24: Designing Semantic Web Application

INSERT DATA { d:i8301 ab:homeTel "(718) 440-9821” .

ab:Person a rdfs:Class . }

Preview dynamic insertsCONSTRUCT { ?person a ab:Person . } CONSTRUCT { ?person a ab:Person . }

WHERE { ?person ab:firstName ?firstName ;

ab:lastName ?lastName . }

Dynamic InsertINSERT { ?person a ab:Person . }

WHERE { ?person ab:firstName ?firstName ;

ab:lastName ?lastName . }

DuCharme, Bob (2011-07-14). Learning SPARQL. OReilly Media -

A. Kindle Edition.March 2013, Hunch Manifest Inc

Page 25: Designing Semantic Web Application

SELECT * WHERE { ?person rdf:type ab:Person }

SELECT ?child ?predicate ?object WHERE {

?person rdf:type ab:Person .

?person ab:LastName “Smith” .

?person ab:child ?child . ?person ab:child ?child .

?child ?predicate ?object .

}

Lots of options:

Can use FILTER, regex, test data types, in a list, LIMIT result

count, OFFSET results, SORT / ORDER BY, CONCAT, etc.

DuCharme, Bob (2011-07-14). Learning SPARQL. OReilly Media -

A. Kindle Edition.March 2013, Hunch Manifest Inc

Page 26: Designing Semantic Web Application

� DELETE and INSERT behave similarly

Specific DeleteDELETE { d:i8301 an:name "Tommy_Potter" .

d:i8301 ab:homeTel "(718) 440-9821” }d:i8301 ab:homeTel "(718) 440-9821” }

Test dynamic DELETE first with CONSTRUCTCONSTRUCT { ?s ?p "Tommy_Potter" }

WHERE { ?s ?p "Tommy_Potter" }

And execute:DELETE { ?s ?p "Tommy_Potter" }

WHERE { ?s ?p "Tommy_Potter" }

DuCharme, Bob (2011-07-14). Learning SPARQL. OReilly Media -

A. Kindle Edition.March 2013, Hunch Manifest Inc

Page 27: Designing Semantic Web Application

Uses DELETE and INSERT togetherDELETE { ?s ab:email ?o }

INSERT { ?s foaf:mbox ?o }

WHERE {?s ab:email ?o }WHERE {?s ab:email ?o }

Alternative using RDF transactions follows

DuCharme, Bob (2011-07-14). Learning SPARQL. OReilly Media -

A. Kindle Edition.March 2013, Hunch Manifest Inc

Page 28: Designing Semantic Web Application

� Transactions, depends on database and

SPARQL version supported

� Some graph databases are ACID compliant

Atomicity, Consistency, Isolation, and Durability▪ Atomicity, Consistency, Isolation, and Durability

� Query with Reasoning

� Federated Query with SPARQL SERVICE

� Using specific or multiple GRAPHS

March 2013, Hunch Manifest Inc

Page 29: Designing Semantic Web Application

<transaction><add>

<bnode>person4</bnode><uri>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</uri>

• Transactions, depends on database, this is the

format I use with AllegroGraph

ns#type</uri> <uri>http://www.franz.com/simple#person</uri> </add>

<add><bnode>person4</bnode> <uri>http://www.franz.com/simple#birth</uri> <literal datatype=“xmls#date">1917-05-29</literal>

</add><remove>

<null/> <uri>http://www.franz.com/simple#first-name</uri><null/>

</remove><clear>

<uri>http://franz.com/simple#context1</uri> </clear>

</transaction>March 2013, Hunch Manifest Inc

Page 30: Designing Semantic Web Application

� Depends on database� Allegrograph, with HTTP query simply specify &infer=true

� rdfs++ reasoning▪ rdf:type and rdfs:subClassOf

▪ rdfs:range and rdfs:domain▪ rdfs:range and rdfs:domain

▪ rdfs:subPropertyOf

▪ owl:sameAs

▪ owl:inverseOf

▪ owl:TransitiveProperty� Queries take longer, well designed will be subsecond but

can be unpredictable, orders of magnitude longer� Allegrograph now was a Materializer to generate triples

applying a set of rules which places triples in the store

March 2013, Hunch Manifest Inc

Page 31: Designing Semantic Web Application

� Common newbie challenge is metadata

� Where did the data come from?

� When was it loaded?

� Who created the data?� Who created the data?

Data Provenance

� From Tripleshr:Mark rdf:type ho:Person .

hr:Mark ho:lastName “van Berkel” .

hr:Mark ho:founded hr:HunchManifestInc .

March 2013, Hunch Manifest Inc

Page 32: Designing Semantic Web Application

� To Quads hr:Mark rdf:type ho:Person hr:Context123 .

hr:Mark ho:lastName “van Berkel” hr:Context123 .

hr:Mark ho:founded hr:HunchManifest hr:Context123 .

hr:Context123 ho:source “Mark’s head” .

hr:Context123 ho:createdOn “2013-03-25”^^xsd:date .hr:Context123 ho:createdOn “2013-03-25”^^xsd:date .

hr:Context123 ho:createdBy hr:Mark .

� Now you can SELECT and FILTER by source,

createdOn, createdBy.

March 2013, Hunch Manifest Inc

Page 33: Designing Semantic Web Application

� Depends on technology� How I solve it with AllegroGraph

� Authorized for DoD .mil network� Transport Layer security / encryption

� Http or Https� Http or Https

� SSL handshake� Management of Access Control for various admin

functions� User / Role Management

� Triple/Quad Level Security

� Fine grained flexible access for read / write

� Restricts access according to security filters, user views

March 2013, Hunch Manifest Inc

Page 34: Designing Semantic Web Application

� Linked Data Publishing covered last month by James� 5 Stars for publishing ★ make your stuff available on the Web

(whatever format) under an open license★★ make it available as structured data (e.g., ★★ make it available as structured data (e.g.,

Excel instead of image scan of a table)★★★ use non-proprietary formats (e.g., CSV

instead of Excel)★★★★ use URIs to denote things, so that people

can point at your stuff★★★★★ link your data to other data to provide

context� A user-view of the database

March 2013, Hunch Manifest Inc

Page 35: Designing Semantic Web Application

� Cloud platforms providers great to get started� Azure, Amazon Web Services, etc

� How to get data in?� How to get data in?� Use RDFizers or google “XYZ to RDF”

� Openlink Virtuoso, great middleware

� I like Mule ESB and Talend▪ big data integration, open source software

� Plan ahead and make it a Service Oriented Architecture

March 2013, Hunch Manifest Inc

Page 36: Designing Semantic Web Application

� Platforms, Open source vs Proprietary� Tradeoffs include

� Cost

� Licenses� Licenses

� Support

� Documentation

� Integratation with other tools

� Inactive vs Active Development

� Scalability

March 2013, Hunch Manifest Inc

Page 37: Designing Semantic Web Application

� Range from Hosting, Open Source Projects, eCommercestandards, Graph databases, data integration, numerous code libraries.

� More tools than I can list:� http://www.w3.org/2001/sw/wiki/Tools

http://semanticweb.org/wiki/Category:Tool� http://semanticweb.org/wiki/Category:Tool� A couple platforms to get going

� Callimachus

� Drupal with its RDFa plugin� Get a graph database / triplestore

� Franz AllegroGraph, Neo4J, BigData, 4store, Jena, etc� Open source tools

� Protege, modeling tool

� Apache ...

March 2013, Hunch Manifest Inc

Page 38: Designing Semantic Web Application

Respect to Apache 0 employee &2,663 volunteers:� www.any23.org – any URI to triples� jena.apache.org – Framework for building

SemWeb Apps, APIs, graph storage, server, etcSemWeb Apps, APIs, graph storage, server, etc� stanbol.apache.org – set of components for

Semantic Content Enhancement� incubator.apache.org/clerezza/ - Semantically

Linked Data through RESTful Web Services� lucene.apache.org/solr/ - Search server which

can use Triplestores

March 2013, Hunch Manifest Inc

Page 39: Designing Semantic Web Application

� Scaling graphs databases recent challenge� Horizontal, across clusters of machines

� Vertical, e.g. Super computers , YarcData's uRiKA

� Semantic Web Stack� Semantic Web Stack� RDF, SPARQL, RDFS, OWL fairly mature

� OWL and Rules standardized but not easy

� Logic, Proof, Trust not mature

� Finding people with Experience� Predicting a Return on Investment

March 2013, Hunch Manifest Inc

Page 40: Designing Semantic Web Application

March 2013, Hunch Manifest Inc

Page 41: Designing Semantic Web Application

[email protected]

@vberkel

March 2013, Hunch Manifest Inc