+ All Categories
Home > Education > Programming the Semantic Web

Programming the Semantic Web

Date post: 26-Jan-2015
Category:
Upload: steffen-staab
View: 114 times
Download: 3 times
Share this document with a friend
Description:
Talk at ESWC 2013 summer school in Kalamaki, Crete
Popular Tags:
45
Institute for Web Science & Technologies – WeST Programming the Semantic Web Steffen Staab, Thomas Gottron, Stefan Schegelmann & Team
Transcript
Page 1: Programming the Semantic Web

Institute for Web Science & Technologies – WeST

Programming the

Semantic Web

Steffen Staab,

Thomas Gottron, Stefan Schegelmann

& Team

Page 2: Programming the Semantic Web

Steffen Staab 2Programming the Semantic Web

Linked Open Data – Vision of a Web of Data

„Classic“ Web Linked documents

Web of Data Linked data entities

Page 3: Programming the Semantic Web

Steffen Staab 3Programming the Semantic Web

„Classic“ Web

Linked Open Data – Vision of a Web of Data

Web of Data

ID

ID

Page 4: Programming the Semantic Web

Steffen Staab 4Programming the Semantic Web

LOD – Base technologies

IDs: Dereferencable HTTP URIs Data Format: RDF No schema often / rich schema sometimes Links to other data sources

foaf:Document

„Extracting schema ...“

fb:Computer_Scientist

dc:creator

http://dblp.l3s.de/.../NesterovAM98

http://dblp.l3s.de/.../Serge_Abiteboul

rdf:type

„Serge Abiteboul“

dc:title

rdf:type

foaf:name

http://www.bibsonomy.org/.../Serge+Abiteboul

rdfs:seeAlso

1 Statement = 1 Tripel

Subject Predicate Object

rdf:type = http://www.w3.org/1999/02/22-rdf-syntax-ns#type

foaf:Document = http://xmlns.com/foaf/0.1/Document

swrc:InProceedingsrdf:type

Page 5: Programming the Semantic Web

Steffen Staab 5Programming the Semantic Web

LOD Cloud

… the Web of Linked Data consisting of more than 30 Billion RDF triples from

hundreds of data sources …

Gerhard WeikumSIGMOD Blog, 6.3.2013http://wp.sigmod.org/

Where’s the Data in the Big Data Wave?

Page 6: Programming the Semantic Web

Steffen Staab 6Programming the Semantic Web

Some „Bubbles“ of the LOD Cloud

Page 7: Programming the Semantic Web

Steffen Staab 7Programming the Semantic Web

Agenda

SchemEX Where do I find relevant data? Efficient construction of a

schema-level index

Application LODatio: Search the LOD cloud Active user support

LiteQ – Language integrated types, extensions and queries for RDF graphs Exploring Programming, Typing

Page 8: Programming the Semantic Web

Steffen Staab 8Programming the Semantic Web

Motivation

NPQLDesign TimeNavigation

Run TimeAccess

Page 9: Programming the Semantic Web

Steffen Staab 9Programming the Semantic Web

Example RDF Graph

Page 10: Programming the Semantic Web

Steffen Staab 10Programming the Semantic Web

Programmers Tasks

1. Explore and understand the schema of the data source• Find a type that represents

dogs

2. Align schema types with programming language type system• From dog RDF data type to

dog data type in the host programming language

3. Query for instances and instantiate program data types• Get all dogs that have an

owner

Page 11: Programming the Semantic Web

Steffen Staab 11Programming the Semantic Web

Programmers Tasks vs Our Solution: LITEQ

1. Explore and understand the schema of the data source• Find a type that represents

dogs

2. Align schema types with programming language type system• From dog RDF data type to

dog data type in the host programming language

3. Query for instances and instantiate program data types• Get all dogs that have an

owner

1. Using NPQL (NodePathQueryLanguage) for exploration and definition

2. Type mapping rules for primitive data types

3. Intensional vs Extensional Intensional node path

evaluation provides program data types

Extensional node path evaluation provides instance data representations

Page 12: Programming the Semantic Web

Steffen Staab 12Programming the Semantic Web

Navigating to ex:Dog:• Start with rdf:Resource as

universal supertype• Use the subtype navigation

operator „>“

rdf:Resourcerdf:Resource >rdf:Resource > ex:Creature rdf:Resource > ex:Creature >rdf:Resource > ex:Creature > ex:Dog

Use NPQL schema query language for navigation

Page 13: Programming the Semantic Web

Steffen Staab 13Programming the Semantic Web

Retrieving the ex:dog data type

• Start with the node pathfrom previous example

• Use the intension methodto get data type description

Using NPQL to retrieve type descriptions

... > ex:Creature > ex:Dog... > ex:Creature > ex:Dog -> Intension

type exDog =member

this.exhasOwner :exPerson = member this.exhasName :String =member this.exhasAge :String =

.

.member this.exTaxNo :Integer =

Page 14: Programming the Semantic Web

Steffen Staab 14Programming the Semantic Web

Using NPQL to retrieve sets of typed objects

Retrieving objects for all ex:dog entities

• Start with the node pathfrom previous example

• Use the extension methodto get the set of typed objects

... > ex:Creature > ex:Dog... > ex:Creature > ex:Dog -> Extension

Provides you with the set of objects containing typed objects for all instances of ex:Dog

{exHasso}

Page 15: Programming the Semantic Web

Steffen Staab 15Programming the Semantic Web

Retrieve all dogs with owners• Use the known path to

navigate to the dog type• Use the property selection

operator “<-“ to restrict the dog data type

• Restrict dog data type to dogs withex:hasOwner property

• Use the extension method toretrieve all dog instances with an owner

ex:Hasso object

Using NPQL to define Instances

... > ex:Dog... > ex:Dog <- ... > ex:Dog <- ex:hasOwner... > ex:Dog <- ex:hasOwner -> Extension

Page 16: Programming the Semantic Web

Steffen Staab 16Programming the Semantic Web

Using LITEQ in Visual Studio

• Line 5: define a datacontext object• Line 6: Use the datacontext object to define pet data type

• Navigate to pet• Choose ex:hasOwner property

Page 17: Programming the Semantic Web

Steffen Staab 17Programming the Semantic Web

Using LITEQ to define types

type dog =rdfResource > exCreature > exDog → Intension

Intensional semantics:type exDog= inherit exCreature hasOwner : exPerson

Using LITEQ to define types

• The intensional semantic of LITEQ node paths supports data type definition in the host programming language

Page 18: Programming the Semantic Web

Steffen Staab 18Programming the Semantic Web

Using LITEQ to retrieve objects

let dogs =rdfResource > exCreature > exDog → Extension

Extensional semantics:{ex:Hasso,…}

• The extensional semantic of LITEQ node paths supports query and retrieval of sets of typed objects

Page 19: Programming the Semantic Web

Steffen Staab 19Programming the Semantic Web

Using LITEQ to define type conditions

let payTax(dogWithOwner : exDog←hasOwner) = …

Type conditions for function(method) arguments

• LITEQ data types in the host programming language can beused to define type condidtions, e.g. in method heads

• LITEQ data types are generated in a pre-compile step, they behave like manually implemented types

• compile-time and run-time type-checking is supported

Page 20: Programming the Semantic Web

Steffen Staab 20Programming the Semantic Web

Using Type Condidtions

let dogs = rdfResource > exCreature > exDog → Extensionlet payTax(dogWithOwner : exDog←hasOwner) = … for dog in dogs do

match dog with| :? exDog ← hasOwner as dogWithOwner -> payTax dog | _ -> ()

Scenario:• Get all dogs• Iterate over the set of dogs• Call paytax method for all dogs with owners

Page 21: Programming the Semantic Web

Steffen Staab 21Programming the Semantic Web

Agenda

SchemEX Where do I find relevant data? Efficient construction of a

schema-level index

Application LODatio: Search the LOD cloud Active user support

LiteQ – Language integrated types, extensions and queries for RDF graphs Exploring Programming, Typing

Page 22: Programming the Semantic Web

Steffen Staab 22Programming the Semantic Web

Searching the LOD cloud???

?

foaf:Document

fb:Computer_Scientist

dc:creator

x

swrc:InProceedingsSELECT ?xWHERE { ?x rdf:type foaf:Document . ?x rdf:type swrc:InProceedings . ?x dc:creator ?y . ?y rdf:type fb:Computer_Scientist}

Page 23: Programming the Semantic Web

Steffen Staab 23Programming the Semantic Web

Searching the LOD cloud???

SELECT ?xWHERE { ?x rdf:type foaf:Document . ?x rdf:type swrc:InProceedings . ?x dc:creator ?y . ?y rdf:type fb:Computer_Scientist}

Index

Where? • ACM• DBLP

Page 24: Programming the Semantic Web

Steffen Staab 24Programming the Semantic Web

Schema-level index

Schema information on LOD

Explicit

Assigning class types

Implicit

Modelling attributes

Class

Entity

rdf:type EntityProperty

Entity 2

Page 25: Programming the Semantic Web

Steffen Staab 25Programming the Semantic Web

DS1

Schema-level index

E1

P1 E2

XYZP2

C1

C2

C3

P1

P2

C1

C2

C3

DS1

Page 26: Programming the Semantic Web

Steffen Staab 26Programming the Semantic Web

Typecluster

Entities with the same Set of types

C1 C2

DS1 DS2 DSm

Cn...

...

TCj

Page 27: Programming the Semantic Web

Steffen Staab 27Programming the Semantic Web

Typecluster: Example

foaf:Document swrc:InProceedings

DBLP ACM

tc2309

Page 28: Programming the Semantic Web

Steffen Staab 28Programming the Semantic Web

Bi-Simulation

Entities are equivalent, if they refer with the same attributes to equivalent entities

Restriction: 1-Bi-Simulation

P1 P2

DS1 DS2 DSm

Pn...

...

BSi

Page 29: Programming the Semantic Web

Steffen Staab 29Programming the Semantic Web

Bi-Simulation: Example

dc:creator

BBC DBLP

bs2608

Page 30: Programming the Semantic Web

Steffen Staab 30Programming the Semantic Web

SchemEX: Combination TC and Bi-Simulation

Partition of TC based on 1-Bi-Simulation with restrictions on the destination TC

C1 C2 Cn...

DS1 DS2 DSm...

C45 C2 Cn‘...

P1 Pn...EQC EQC

DS

TCj TCk

EQCj

BSi

Sch

ema

Pay

load

P2

Page 31: Programming the Semantic Web

Steffen Staab 31Programming the Semantic Web

SchemEX: Example

DBLP

...

tc2309 tc2101

eqc707

bs2608

foaf:Document swrc:InProceedings fb:Computer_Scientist

dc:creator

SELECT ?xWHERE { ?x rdf:type foaf:Document . ?x rdf:type swrc:InProceedings . ?x dc:creator ?y . ?y rdf:type fb:Computer_Scientist}

Page 32: Programming the Semantic Web

Steffen Staab 32Programming the Semantic Web

SchemEX: Computation

Precise computation: Brute-Force

C1 C2 Cn...

DS1 DS2 DSm...

C12 C2 Cn‘...

P1 Pn...EQC EQC

DS

TCj TCk

EQCj

BSi

Sch

ema

Pay

load

P2

Smarter Approach?

Page 33: Programming the Semantic Web

Steffen Staab 33Programming the Semantic Web

Stream-based Computation of SchemEX

LOD Crawler: Stream of n-Quads (triple + data source)

… Q16, Q15, Q14, Q13, Q12, Q11, Q10, Q9, Q8, Q7, Q6, Q5, Q4, Q3, Q2, Q1

FiFo

4

3

2

1

1

6

23

4

5

C3

C2

C2

C1

Page 34: Programming the Semantic Web

Steffen Staab 34Programming the Semantic Web

Quality of Approximated Index

Stream-based computation vs. brute force Data set of 11 Mio. tripel

Page 35: Programming the Semantic Web

Steffen Staab 35Programming the Semantic Web

SchemEX @ BTC 2011

SchemEX Allows complex queries (Star, Chain) Scalable computation High quality

Index over BTC 2011 data 2.17 billion tripel Index: 55 million tripel

Commodity hardware VM: 1 Core, 4 GB RAM Throughput: 39.500 tripel / second Computation of full index: 15h

1. Place BTC 2011

Page 36: Programming the Semantic Web

Steffen Staab 36Programming the Semantic Web

Agenda

SchemEX Where do I find relevant data? Efficient construction of a

schema-level index

Application LODatio: Search the LOD cloud Active user support

LiteQ – Language integrated types, extensions and queries for RDF graphs Exploring Programming, Typing

Page 37: Programming the Semantic Web

Steffen Staab 37Programming the Semantic Web

SPARQL queries on LOD ???

SELECT ?xWHERE { ?x rdf:type foaf:Document . ?x rdf:type swrc:InProceedings . ?x dc:creator ?y . ?y rdf:type fb:Computer_Scientist}

Index

Where? • ACM• DBLP

0hits1.000 hits

Help!

Page 38: Programming the Semantic Web

Steffen Staab 38Programming the Semantic Web

Inspiration from web search engines ...

Result set size

Result Snippets

Ranked Retrieval

Reference to data source

Page 39: Programming the Semantic Web

Steffen Staab 39Programming the Semantic Web

Inspiration from web search engines ...

Related Queries

Page 40: Programming the Semantic Web

Steffen Staab 40Programming the Semantic Web

Did youmean?

Result set size

Result Snippets

RelatedQueries

Ranked Retrieval

Reference to data source

Page 41: Programming the Semantic Web

Steffen Staab 41Programming the Semantic Web

LODatio: Extending the Payload

C1 C2 Cn...

DS-URI1

C12 C2 Cn‘...

P1 Pn...EQC EQC

TCj TCk

EQCj

BSi

Sch

ema

Pay

load

P2

DS1

EX1-1

EX1-2

EX1-3

200

ABC

DEF

GHI DS-URI2

DS2

EX2-1150

XYZ

Page 42: Programming the Semantic Web

Steffen Staab 42Programming the Semantic Web

C3

P1

Realizing „Related Queries“

C1 C2

TC1

EQC2

DS3

300

SELECT ?xWHERE {?x rdf:type C1 .?x rdf:type C2 }

C1 C2

EQC3

DS4

150

P1

EQC1

DS1

200

DS2

150

C3

BS1

TC2

SELECT ?xWHERE {?x rdf:type C1 .?x rdf:type C2 .?x P1 ?y}SELECT ?xWHERE {?x rdf:type C1 .?x rdf:type C2 .?x P1 ?y .?y rdf:type C3 .}

Page 43: Programming the Semantic Web

Steffen Staab 43Programming the Semantic Web

Conclusions

Programming the Semantic Web requires new concepts

Linked Open Data High volume, Varied data, Varying schemata

Schema-level indices Efficient approximative computation High accuracy

Applications Search Analysis ... (many more)

Page 44: Programming the Semantic Web

Institute for Web Science & Technologies – WeST

Thank you!

Page 45: Programming the Semantic Web

Steffen Staab 45Programming the Semantic Web

References

1. M. Konrath, T. Gottron, and A. Scherp, “Schemex – web-scale indexed schema extraction of linked open data,” in Semantic Web Challenge, Submission to the Billion Triple Track, 2011.

2. M. Konrath, T. Gottron, S. Staab, and A. Scherp, “Schemex—efficient construction of a data catalogue by stream-based indexing of linked data,” Journal of Web Semantics, 2012.

3. T. Gottron, M. Knauf, S. Scheglmann, and A. Scherp, “Explicit and implicit schema information on the linked open data cloud: Joined forces or antagonists?,” Tech. Rep. 06/2012, Institut WeST, Universität Koblenz-Landau, 2012.

4. T. Gottron and R. Pickhardt, “A detailed analysis of the quality of stream-based schema construction on linked open data,” in CSWS’12: Proceedings of the Chinese Semantic Web Symposium, 2012.

5. T. Gottron, A. Scherp, B. Krayer, and A. Peters, “Get the google feeling: Supporting users in finding relevant sources of linked open data at web-scale,” in Semantic Web Challenge, Submission to the Billion Triple Track, 2012.

6. T. Gottron, A. Scherp, B. Krayer, and A. Peters, “LODatio: Using a Schema-Based Index to Support Users in Finding Relevant Sources of Linked Data,” in K-CAP’13: Proceedings of the Conference on Knowledge Capture, 2013.

7. T. Gottron, M. Knauf, S. Scheglmann, and A. Scherp, “A Systematic Investigation of Explicit and Implicit Schema Information on the Linked Open Data Cloud,” in ESWC’13: Proceedings of the 10th Extended Semantic Web Conference, 2013.

8. J. Schaible, T. Gottron, S. Scheglmann, and A. Scherp, “LOVER: Support for Modeling Data Using Linked Open Vocabularies,” in LWDM’13: 3rd International Workshop on Linked Web Data Management, 2013.


Recommended