Staab programming thesemanticweb
Transcript of Staab programming thesemanticweb
![Page 1: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/1.jpg)
Institute for Web Science & Technologies – WeST
Programming the
Semantic Web
Steffen Staab,
Thomas Gottron, Stefan Schegelmann
& Team
![Page 2: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/2.jpg)
Steffen Staab 2 Programming the Semantic Web
Linked Open Data – Vision of a Web of Data
„Classic“ Web
Linked documents
Web of Data
Linked data entities
![Page 3: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/3.jpg)
Steffen Staab 3 Programming the Semantic Web
„Classic“ Web
Linked Open Data – Vision of a Web of Data
Web of Data
ID
ID
![Page 4: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/4.jpg)
Steffen Staab 4 Programming 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:InProceedings rdf:type
![Page 5: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/5.jpg)
Steffen Staab 5 Programming the Semantic Web
LOD Cloud
… the Web of Linked Data consisting of
more than 30 Billion RDF triples from
hundreds of data sources …
Gerhard Weikum
SIGMOD Blog, 6.3.2013
http://wp.sigmod.org/
Where’s the Data in
the Big Data Wave?
![Page 6: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/6.jpg)
Steffen Staab 6 Programming the Semantic Web
Some „Bubbles“ of the LOD Cloud
![Page 7: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/7.jpg)
Steffen Staab 7 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/8.jpg)
Steffen Staab 8 Programming the Semantic Web
Motivation
Design Time
Navigation
Run Time
Access
![Page 9: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/9.jpg)
Steffen Staab 9 Programming the Semantic Web
Example RDF Graph
![Page 10: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/10.jpg)
Steffen Staab 10 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/11.jpg)
Steffen Staab 11 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/12.jpg)
Steffen Staab 12 Programming the Semantic Web
Navigating to ex:Dog:
• Start with rdf:Resource as
universal supertype
• Use the subtype navigation
operator „>“
rdf:Resource rdf:Resource > rdf:Resource > ex:Creature rdf:Resource > ex:Creature > rdf:Resource > ex:Creature > ex:Dog
Use NPQL schema query language for navigation
![Page 13: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/13.jpg)
Steffen Staab 13 Programming the Semantic Web
Retrieving the ex:dog data
type
• Start with the node path
from previous example
• Use the intension method
to 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/14.jpg)
Steffen Staab 14 Programming the Semantic Web
Using NPQL to retrieve sets of typed objects
Retrieving objects for all ex:dog
entities
• Start with the node path
from previous example
• Use the extension method
to 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/15.jpg)
Steffen Staab 15 Programming 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 with
ex:hasOwner property
• Use the extension method to
retrieve 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/16.jpg)
Steffen Staab 16 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/17.jpg)
Steffen Staab 17 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/18.jpg)
Steffen Staab 18 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/19.jpg)
Steffen Staab 19 Programming 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 be
used 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/20.jpg)
Steffen Staab 20 Programming the Semantic Web
Using Type Condidtions
let dogs = rdfResource > exCreature > exDog → Extension
let 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/21.jpg)
Steffen Staab 21 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/22.jpg)
Steffen Staab 22 Programming the Semantic Web
Searching the LOD cloud???
?
foaf:Document
fb:Computer_Scientist
dc:creator
x
swrc:InProceedings SELECT ?x
WHERE {
?x rdf:type foaf:Document .
?x rdf:type swrc:InProceedings .
?x dc:creator ?y .
?y rdf:type fb:Computer_Scientist
}
![Page 23: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/23.jpg)
Steffen Staab 23 Programming the Semantic Web
Searching the LOD cloud???
SELECT ?x
WHERE {
?x rdf:type foaf:Document .
?x rdf:type swrc:InProceedings .
?x dc:creator ?y .
?y rdf:type fb:Computer_Scientist
}
Index
• ACM
• DBLP
![Page 24: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/24.jpg)
Steffen Staab 24 Programming the Semantic Web
Schema-level index
Schema information on LOD
Explicit
Assigning class types
Implicit
Modelling attributes
Class
Entity
rdf:type Entity Property
Entity 2
![Page 25: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/25.jpg)
Steffen Staab 25 Programming the Semantic Web
DS1
Schema-level index
E1
P1 E2
XYZ P2
C1
C2 C3
P1
P2
C1
C2 C3
DS1
![Page 26: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/26.jpg)
Steffen Staab 26 Programming the Semantic Web
Typecluster
Entities with the same Set of types
C1 C2
DS1 DS2 DSm
Cn ...
...
TCj
![Page 27: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/27.jpg)
Steffen Staab 27 Programming the Semantic Web
Typecluster: Example
foaf:Document swrc:InProceedings
DBLP ACM
tc2309
![Page 28: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/28.jpg)
Steffen Staab 28 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/29.jpg)
Steffen Staab 29 Programming the Semantic Web
Bi-Simulation: Example
dc:creator
BBC DBLP
bs2608
![Page 30: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/30.jpg)
Steffen Staab 30 Programming 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
Schem
a
Paylo
ad
P2
![Page 31: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/31.jpg)
Steffen Staab 31 Programming the Semantic Web
SchemEX: Example
DBLP
...
tc2309 tc2101
eqc707
bs2608
foaf:Document swrc:InProceedings fb:Computer_Scientist
dc:creator
SELECT ?x
WHERE {
?x rdf:type foaf:Document .
?x rdf:type swrc:InProceedings .
?x dc:creator ?y .
?y rdf:type fb:Computer_Scientist
}
![Page 32: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/32.jpg)
Steffen Staab 32 Programming 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
Schem
a
Paylo
ad
P2
![Page 33: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/33.jpg)
Steffen Staab 33 Programming 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
2 3
4
5
C3
C2
C2
C1
![Page 34: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/34.jpg)
Steffen Staab 34 Programming the Semantic Web
Quality of Approximated Index
Stream-based computation vs. brute force
Data set of 11 Mio. tripel
![Page 35: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/35.jpg)
Steffen Staab 35 Programming 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
![Page 36: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/36.jpg)
Steffen Staab 36 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/37.jpg)
Steffen Staab 37 Programming the Semantic Web
SPARQL queries on LOD ???
SELECT ?x
WHERE {
?x rdf:type foaf:Document .
?x rdf:type swrc:InProceedings .
?x dc:creator ?y .
?y rdf:type fb:Computer_Scientist
}
Index
• ACM
• DBLP
0
hits
1.000
hits
Help!
![Page 38: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/38.jpg)
Steffen Staab 38 Programming the Semantic Web
Inspiration from web search engines ...
Result set size
Result Snippets
Ranked
Retrieval
Reference to
data source
![Page 39: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/39.jpg)
Steffen Staab 39 Programming the Semantic Web
Inspiration from web search engines ...
Related Queries
![Page 40: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/40.jpg)
Steffen Staab 40 Programming the Semantic Web
Did you
mean?
Result set size
Result Snippets
Related
Queries
Ranked
Retrieval
Reference to
data source
![Page 41: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/41.jpg)
Steffen Staab 41 Programming the Semantic Web
LODatio: Extending the Payload
C1 C2 Cn ...
DS-URI1
C12 C2 Cn‘ ...
P1 Pn ... EQC EQC
TCj TCk
EQCj
BSi
Schem
a
Paylo
ad
P2
DS1
EX1-1
EX1-2
EX1-3
200
ABC
DEF
GHI DS-URI2
DS2
EX2-1 150
XYZ
![Page 42: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/42.jpg)
Steffen Staab 42 Programming the Semantic Web
C3
P1
Realizing „Related Queries“
C1 C2
TC1
EQC2
DS3
300
SELECT ?x
WHERE {
?x rdf:type C1 .
?x rdf:type C2
} C1 C2
EQC3
DS4
150
P1
EQC1
DS1
200
DS2
150
C3
BS1
TC2
SELECT ?x
WHERE {
?x rdf:type C1 .
?x rdf:type C2 .
?x P1 ?y
}
SELECT ?x
WHERE {
?x rdf:type C1 .
?x rdf:type C2 .
?x P1 ?y .
?y rdf:type C3 .
}
![Page 43: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/43.jpg)
Steffen Staab 43 Programming 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: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/44.jpg)
Institute for Web Science & Technologies – WeST
Thank you!
![Page 45: Staab programming thesemanticweb](https://reader034.fdocuments.us/reader034/viewer/2022052601/558e1a4d1a28abc63f8b4665/html5/thumbnails/45.jpg)
Steffen Staab 45 Programming 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.