SlideShare a Scribd company logo
1 of 56
Web Science & Technologies

University of Koblenz ▪ Landau, Germany

Information-Rich Programming
in F#
with Semantic Data
Linked Open Data Cloud
Where’s the Data in
the Big Data Wave?
Gerhard Weikum
SIGMOD Blog, 6.3.2013
http://wp.sigmod.org/

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

WeST

Steffen Staab
staab@uni-koblenz.de

2
Some „Bubbles“ of the LOD Cloud

WeST

Steffen Staab
staab@uni-koblenz.de

3
RDF: Simple Foundations

WeST

Steffen Staab
staab@uni-koblenz.de

4
Example RDF Graph

Native Graph
OR
R2RML: RDB to RDF Mapping Language
(W3C rec)
WeST

Steffen Staab
staab@uni-koblenz.de

5
Agenda

LiteQ – Language integrated types,
extensions and queries for RDF graphs
 Exploring
 Programming, Typing
Evaluation of LITEQ (NPQL) against SPARQL
Understandability
Ease of use
SchemEX
Construction of schema-based index
Schema induction
WeST

Steffen Staab
staab@uni-koblenz.de

6
Programming against unknown data source

Exploring a
data source

WeST

Steffen Staab
staab@uni-koblenz.de

Using a data
source

7
Example application

• Goal: Application that helps to collect dog license fee
• Send Email reminders to dog owners

• Data is given as RDF graph

WeST

Steffen Staab
staab@uni-koblenz.de

8
Programmer‘s Task 1: Schema Exploration

Schema exploration & Identification of important RDF types
• Find RDF types representing dogs and persons

WeST

Steffen Staab
staab@uni-koblenz.de

9
Naive Approach Task 1: Schema Exploration

Schema exploration & Identification of important RDF types
• Find RDF types representing dogs and persons
Tooling for Naïve Approach: SPARQL Query Formulation

WeST

Steffen Staab
staab@uni-koblenz.de

10
Programmer‘s Task 2: Code Type Creation

Code type creation in host language
• Convert the identified dog and person RDF types to
code types in the host language
type exCreature(uri) = class
member this.hasName : String = …
Member this.hasAge : int = …
end
type exDog(uri) = class
inherit exCreature(uri)
member this.hasOwner : exPerson = …
member this.TaxNo : Integer = …
end
type exPerson(uri) = class
inherit exCreature(uri)
end
WeST

Steffen Staab
staab@uni-koblenz.de

11
Programmer‘s Task 3: Data querying

Data querying
• Write a query that returns all dog owners

WeST

Steffen Staab
staab@uni-koblenz.de

12
Naive Approach Task 3: Data querying

Data querying
• Write a query that returns all dog owners

Tooling for Naive Approach: SPARQL Query formulation

WeST

Steffen Staab
staab@uni-koblenz.de

13
Naive Approach Task 4: Object manipulation

Create the objects, manipulate them & make them persistent
• Develop functionality around query to send reminder

let queryString = “SELECT ?owner WHERE {
?dog rdf:type exDog.
?dog ex:hasOwner ?owner
}“

dbConnection.evaluate(queryString) |> Seq.iter ( fun uri ->
let p = new Person(uri)
sendReminderEmail(p)
)

WeST

Steffen Staab
staab@uni-koblenz.de

14
The LITEQ approach

WeST

Steffen Staab
staab@uni-koblenz.de

15
Node Path Query Language

WeST

Steffen Staab
staab@uni-koblenz.de

16
Graph Traversal with NPQL: Subtype Navigation >
NPQL

rdf:Resource > ex:Creature

WeST

Steffen Staab
staab@uni-koblenz.de

17
Graph Traversal with NPQL: Property Navigation .
NPQL

ex:Dog . ex:hasOwner

WeST

Steffen Staab
staab@uni-koblenz.de

18
Extensional Semantics: Task 3 – Querying for Owners
NPQL

rdf:Resource > ex:Dog
ex:Creature > ex:Dog . ex:hasOwner
-> Extension
• Select ex:Dog
• Walk through
ex:hasOwner to
ex:Person
• Use extension to
retrieve all persons
who own dogs:
ex:Bob
WeST

Steffen Staab
staab@uni-koblenz.de

19
Intensional Semantics: Task 2 - Creating Person Code Type
NPQL

rdf:Resource > ex:Creature > ex:Dog.hasOwner ->
Intension
• Select ex:Person node
• “Intension”
to get code type
based on rdf type
type exCreature(uri) = class
member this.hasName : String = …
Member this.hasAge : int = …
end
type exPerson(uri) = class
inherit exCreature(uri)
WeST
Steffen Staab
end
staab@uni-koblenz.de

20
Autocompletion Semantics: Task 1 - Exploration
NPQL

rdf:Resource > ex:Creature >
Suggestions during query writing
• Instances based on
extensional semantics
• Types & Props
based on intensional
semantics

ex:Person, ex:Dog
WeST

Steffen Staab
staab@uni-koblenz.de

21
Extensional Semantics: LA Conjunctive Queries
NPQL

ex:Dog <- ex:hasOwner
Left associative
conjunctive query
with projection

WeST

Steffen Staab
staab@uni-koblenz.de

22
Host Language Extension: Task 4 – Create Objects

Create the objects, manipulation & persistence
• Develop the functionality around the query
that will send the reminder using LITEQ in F#

Preliminary Implementation in F#
http://west.uni-koblenz.de/Research/systems/liteq
WeST

Steffen Staab
staab@uni-koblenz.de

23
Web Science & Technologies

University of Koblenz ▪ Landau, Germany

Live demo of LITEQ in Visual Studio/F#
Related Work
Task

LINQ

XML Freebase
Type
Type
Provider Provider

LITEQ
current
version

LITEQ
Concept

1 Schema
exploration

-

(✔)
per doc

(✔)
only trees

✔

✔

2 Code type
creation

-

(✔)
erased
types?

(✔)
erased types

(✔)
erased types

✔
full
hierarchy

✔

-

((✔))
very limited
expressiv.

(✔)
limited
expressiv.

✔
no full
SPARQL

(✔)

✔

-

✔
no new object
creation

✔

3 Data
querying
4 Object
manipulation
& persistence
WeST

Steffen Staab
staab@uni-koblenz.de

26
Future work wrt LITEQ

• Current implementation is a prototype
• Current implementation uses erased types
 At runtime, no type hierarchy is present
• Switch to generated types in the future
 Higher expressiveness in the host language
exploiting type hierarchy
• Optimizations of LITEQ implementation necessary
• Lazy evaluation
• Distinguish between design time and runtime
• Not all types created at design time are needed at
runtime
• Formalize query language and investigate expressiveness
WeST

Steffen Staab
staab@uni-koblenz.de

27
Challenge: Joint Type Inference

Data modeling world
Description Logics

Program modeling world
ML type inference

RDF

UML class
diagrams

WeST

Steffen Staab
staab@uni-koblenz.de

28
Agenda

LiteQ – Language integrated types, extensions
and queries for RDF graphs
 Exploring
 Programming, Typing
Evaluation of LITEQ (NPQL) vs. SPARQL
Understandability
Ease of use
SchemEX
Where do I find relevant data?
Efficient construction of a
schema-level index
WeST

Steffen Staab
staab@uni-koblenz.de

29
Preliminary Evaluation of LITEQ/NPQL

Focused on NPQL
• Reason:
Test subjects lacked knowledge of F# and functional
programming for evaluating LITEQ in full
• Comparing NPQL against SPARQL
Main Hypothesis of Evaluation
• NPQL with autocompletion allows for effective query
writing in more efficient manner than SPARQL

Thus: some of the advantages of LITEQ cannot show up in
the evaluation!
WeST

Steffen Staab
staab@uni-koblenz.de

30
Evaluation Subjects

Evaluation with 11 participants
• 1 subject a posteriori eliminated from analysis of evaluation,
because he could not deal with SPARQL at all!
• 10 subjects remaining for analysis
Participants
• Undergraduate students
• PhD students
• PostDocs

WeST

Steffen Staab
staab@uni-koblenz.de

31
Evaluation - Setup

1. Pre-questionaire
1. Training in RDF, SPARQL & NPQL
1. Experimental tasks to be solved by subjects
1. Post-questionaire

WeST

Steffen Staab
staab@uni-koblenz.de

32
Phase 1: Pre-Questionnaire – Knowledge & skills

• Programming:
All
• Object-orientation:
8
• Functional programming:

 “Intermediate” or above
 “Intermediate” or above

4 Intermediate” or above
Lisp, Haskell, F# (once)
4 none”

• .NET
1 Expert”
2 Beginner”
7 none”

• SPARQL:
3 Intermediate” or above
7 below “intermediate”
WeST

Steffen Staab
staab@uni-koblenz.de

[Sparql Experts]
[Sparql Novices]

33
Phase 2: Training in RDF, SPARQL, NPQL

Training in RDF & SPARQL
• Presentation of RDF & SPARQL (20 minutes)
• Practical excercise writing SPARQL queries
in the Web interface (5 minutes)
Training in NPQL
• Practical excercise writing NPQL queries in Visual Studio
(5 minutes)

WeST

Steffen Staab
staab@uni-koblenz.de

34
Phase 3: Solving experimental tasks by subjects

9 different experimental tasks to solve
• Half of tasks in NPQL using Visual Studio
• Other half using SPARQL and a web interface
Task types
• Navigation and exploration of a data source (Task 1)
• Retrieving and answering questions about the data (Task 3)
• 2 tasks were not solvable in NPQL
• Investigating how users deal with limits of the language
Evaluation measure:
•
Duration to complete each task
WeST

Steffen Staab
staab@uni-koblenz.de

35
Evaluation across different user types

WeST

Steffen Staab
staab@uni-koblenz.de

36
Evaluations per Task

WeST

Steffen Staab
staab@uni-koblenz.de

37
Phase 4: Post-Questionnaire
“Do you want to explore a data source in your IDE?”
4 yes”
3 no, prefer separation of steps”
3 no preference”
“NPQL is easier to use than SPARQL”
7 agree” or above

My conclusion
Other Though LITEQ is still in a pre-alpha status,
• Better supportadvantages queries in SPARQL
when writing became visible
in times for interactive working with
• Better responsepreliminary user evaluation NPQL
WeST

Steffen Staab
staab@uni-koblenz.de

38
Agenda

LiteQ – Language integrated types, extensions
and queries for RDF graphs
 Exploring
 Programming, Typing
Evaluation of LITEQ (NPQL) against SPARQL
Understandability
Ease of use
SchemEX
Construction of schema-based index
Schema induction
WeST

Steffen Staab
staab@uni-koblenz.de

39
Searching the LOD cloud

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

?
WeST

Steffen Staab
staab@uni-koblenz.de

40

swrc:InProceedings

fb:Computer_Scientist

dc:creator
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
WeST

Steffen Staab
staab@uni-koblenz.de

41

• ACM
• DBLP
Schema-level index

Schema information on LOD

Explicit

Implicit

Assigning class types

Modelling attributes

Class
rdf:type

Property

Entity 2

Entity

Entity

WeST

Steffen Staab
staab@uni-koblenz.de

42
Schema-level index

C1

C3

C2
P1

DS1

C1

P2
C3

C2
P1

E1
P2

WeST

E2

XYZ

Steffen Staab
staab@uni-koblenz.de

DS1

43
Typecluster

 Entities with the same Set of types

C1

C2

...

Cn

...

DSm

TCj

DS1

WeST

Steffen Staab
staab@uni-koblenz.de

DS2

44
Typecluster: Example

foaf:Document

swrc:InProceedings

tc2309

DBLP

WeST

Steffen Staab
staab@uni-koblenz.de

ACM

45
Bi-Simulation

 Entities are equivalent, if they refer with the same
attributes to equivalent entities
 Restriction: 1-Bi-Simulation

P1

P2

...

Pn

...

DSm

BSi

DS1

WeST

Steffen Staab
staab@uni-koblenz.de

DS2

46
Bi-Simulation: Example

dc:creator

bs2608

BBC

WeST

Steffen Staab
staab@uni-koblenz.de

DBLP

47
SchemEX: Combination TC and Bi-Simulation

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

Schema

C1

Payload

...

Cn

C45

C2

TCj

...

Cn„

TCk
BSi

EQC

WeST

C2

DS1

EQCj

DS2

P1

P2

...

Pn

... DSm

Steffen Staab
staab@uni-koblenz.de

EQC

DS

48
SchemEX: Example
foaf:Document

swrc:InProceedings

fb:Computer_Scientist

tc2309

tc2101
bs260
8

eqc707

DBLP

WeST

Steffen Staab
staab@uni-koblenz.de

dc:creator
...

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

49
SchemEX: Computation

 Precise computation: Brute-Force

Schema

C1

Payload

...

Cn

C12

C2

TCj

...

Cn„

TCk
BSi

EQC

WeST

C2

DS1

EQCj

DS2

P1

P2

...

Pn

... DSm

Steffen Staab
staab@uni-koblenz.de

EQC

DS

50
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
1
C3

4

C2

3

6
4

2
C2

2
3

1
5

C1

WeST

Steffen Staab
staab@uni-koblenz.de

51
Quality of Approximated Index

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

WeST

Steffen Staab
staab@uni-koblenz.de

52
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
WeST

Steffen Staab
staab@uni-koblenz.de

53
Future work wrt SchemEX

Further exploration of
• schema induction
• query federation
Federation vs Link Traversal based query execution
• Granularity of query execution
• Too fine grained: URI dereferencing
• Too expressive: SPARQL
• Sweet spot -> NPQL??

WeST

Steffen Staab
staab@uni-koblenz.de

54
Agenda

LiteQ – Language integrated types, extensions
and queries for RDF graphs
 Exploring
 Programming, Typing
Evaluation of LITEQ (NPQL) against SPARQL
Understandability
Ease of use
SchemEX
Construction of schema-based index
Schema induction
WeST

Steffen Staab
staab@uni-koblenz.de

55
Future

1.
2.
3.
4.

Searching for distributed data
Understanding distributed data
Intelligent queries on distributed data
Programming with distributed data
• Type reuse
• Type induction

WeST

Steffen Staab
staab@uni-koblenz.de

56
Web Science & Technologies

University of Koblenz ▪ Landau, Germany

Thank you for your attention!

More Related Content

What's hot

Summary of the Stream Reasoning workshop at ISWC 2016
Summary of the Stream Reasoning workshop at ISWC 2016Summary of the Stream Reasoning workshop at ISWC 2016
Summary of the Stream Reasoning workshop at ISWC 2016Daniele Dell'Aglio
 
On the need for a W3C community group on RDF Stream Processing
On the need for a W3C community group on RDF Stream ProcessingOn the need for a W3C community group on RDF Stream Processing
On the need for a W3C community group on RDF Stream ProcessingPlanetData Network of Excellence
 
LDQL: A Query Language for the Web of Linked Data
LDQL: A Query Language for the Web of Linked DataLDQL: A Query Language for the Web of Linked Data
LDQL: A Query Language for the Web of Linked DataOlaf Hartig
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Olaf Hartig
 
Embedded interactive learning analytics dashboards with Elasticsearch and Kib...
Embedded interactive learning analytics dashboards with Elasticsearch and Kib...Embedded interactive learning analytics dashboards with Elasticsearch and Kib...
Embedded interactive learning analytics dashboards with Elasticsearch and Kib...Andrii Vozniuk
 
Large Scale Image Forensics using Tika and Tensorflow [ICMR MFSec 2017]
Large Scale Image Forensics using Tika and Tensorflow [ICMR MFSec 2017]Large Scale Image Forensics using Tika and Tensorflow [ICMR MFSec 2017]
Large Scale Image Forensics using Tika and Tensorflow [ICMR MFSec 2017]Thamme Gowda
 
Making the big data ecosystem work together with python apache arrow, spark,...
Making the big data ecosystem work together with python  apache arrow, spark,...Making the big data ecosystem work together with python  apache arrow, spark,...
Making the big data ecosystem work together with python apache arrow, spark,...Holden Karau
 
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...Martin Junghanns
 
Data Programming: Creating Large Datasets, Quickly -- Presented at JPL MLRG
Data Programming: Creating Large Datasets, Quickly -- Presented at JPL MLRGData Programming: Creating Large Datasets, Quickly -- Presented at JPL MLRG
Data Programming: Creating Large Datasets, Quickly -- Presented at JPL MLRGThamme Gowda
 
GluonNLP MXNet Meetup-Aug
GluonNLP MXNet Meetup-AugGluonNLP MXNet Meetup-Aug
GluonNLP MXNet Meetup-AugChenguang Wang
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Olaf Hartig
 
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...apidays
 
Shebanq roma-2013-10-01
Shebanq roma-2013-10-01Shebanq roma-2013-10-01
Shebanq roma-2013-10-01Dirk Roorda
 
Fulfilling Apache Arrow's Promises: Pandas on JVM memory without a copy
Fulfilling Apache Arrow's Promises: Pandas on JVM memory without a copyFulfilling Apache Arrow's Promises: Pandas on JVM memory without a copy
Fulfilling Apache Arrow's Promises: Pandas on JVM memory without a copyUwe Korn
 
Batch import of large RDF datasets into Semantic MediaWiki
Batch import of large RDF datasets into Semantic MediaWikiBatch import of large RDF datasets into Semantic MediaWiki
Batch import of large RDF datasets into Semantic MediaWikiSamuel Lampa
 
Overview of the TREC 2019 Deep Learning Track
Overview of the TREC 2019 Deep Learning TrackOverview of the TREC 2019 Deep Learning Track
Overview of the TREC 2019 Deep Learning TrackNick Craswell
 
Data Science at Scale: Using Apache Spark for Data Science at Bitly
Data Science at Scale: Using Apache Spark for Data Science at BitlyData Science at Scale: Using Apache Spark for Data Science at Bitly
Data Science at Scale: Using Apache Spark for Data Science at BitlySarah Guido
 
Kaggle Competitions, New Friends, New Skills and New Opportunities
Kaggle Competitions, New Friends, New Skills and New OpportunitiesKaggle Competitions, New Friends, New Skills and New Opportunities
Kaggle Competitions, New Friends, New Skills and New OpportunitiesJo-fai Chow
 
Congressional PageRank: Graph Analytics of US Congress With Neo4j
Congressional PageRank: Graph Analytics of US Congress With Neo4jCongressional PageRank: Graph Analytics of US Congress With Neo4j
Congressional PageRank: Graph Analytics of US Congress With Neo4jWilliam Lyon
 
The Reality of Digital Transfer @ArchivesNZ
The Reality of Digital Transfer @ArchivesNZThe Reality of Digital Transfer @ArchivesNZ
The Reality of Digital Transfer @ArchivesNZRoss Spencer
 

What's hot (20)

Summary of the Stream Reasoning workshop at ISWC 2016
Summary of the Stream Reasoning workshop at ISWC 2016Summary of the Stream Reasoning workshop at ISWC 2016
Summary of the Stream Reasoning workshop at ISWC 2016
 
On the need for a W3C community group on RDF Stream Processing
On the need for a W3C community group on RDF Stream ProcessingOn the need for a W3C community group on RDF Stream Processing
On the need for a W3C community group on RDF Stream Processing
 
LDQL: A Query Language for the Web of Linked Data
LDQL: A Query Language for the Web of Linked DataLDQL: A Query Language for the Web of Linked Data
LDQL: A Query Language for the Web of Linked Data
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
 
Embedded interactive learning analytics dashboards with Elasticsearch and Kib...
Embedded interactive learning analytics dashboards with Elasticsearch and Kib...Embedded interactive learning analytics dashboards with Elasticsearch and Kib...
Embedded interactive learning analytics dashboards with Elasticsearch and Kib...
 
Large Scale Image Forensics using Tika and Tensorflow [ICMR MFSec 2017]
Large Scale Image Forensics using Tika and Tensorflow [ICMR MFSec 2017]Large Scale Image Forensics using Tika and Tensorflow [ICMR MFSec 2017]
Large Scale Image Forensics using Tika and Tensorflow [ICMR MFSec 2017]
 
Making the big data ecosystem work together with python apache arrow, spark,...
Making the big data ecosystem work together with python  apache arrow, spark,...Making the big data ecosystem work together with python  apache arrow, spark,...
Making the big data ecosystem work together with python apache arrow, spark,...
 
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
Gradoop: Scalable Graph Analytics with Apache Flink @ Flink & Neo4j Meetup Be...
 
Data Programming: Creating Large Datasets, Quickly -- Presented at JPL MLRG
Data Programming: Creating Large Datasets, Quickly -- Presented at JPL MLRGData Programming: Creating Large Datasets, Quickly -- Presented at JPL MLRG
Data Programming: Creating Large Datasets, Quickly -- Presented at JPL MLRG
 
GluonNLP MXNet Meetup-Aug
GluonNLP MXNet Meetup-AugGluonNLP MXNet Meetup-Aug
GluonNLP MXNet Meetup-Aug
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
 
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
 
Shebanq roma-2013-10-01
Shebanq roma-2013-10-01Shebanq roma-2013-10-01
Shebanq roma-2013-10-01
 
Fulfilling Apache Arrow's Promises: Pandas on JVM memory without a copy
Fulfilling Apache Arrow's Promises: Pandas on JVM memory without a copyFulfilling Apache Arrow's Promises: Pandas on JVM memory without a copy
Fulfilling Apache Arrow's Promises: Pandas on JVM memory without a copy
 
Batch import of large RDF datasets into Semantic MediaWiki
Batch import of large RDF datasets into Semantic MediaWikiBatch import of large RDF datasets into Semantic MediaWiki
Batch import of large RDF datasets into Semantic MediaWiki
 
Overview of the TREC 2019 Deep Learning Track
Overview of the TREC 2019 Deep Learning TrackOverview of the TREC 2019 Deep Learning Track
Overview of the TREC 2019 Deep Learning Track
 
Data Science at Scale: Using Apache Spark for Data Science at Bitly
Data Science at Scale: Using Apache Spark for Data Science at BitlyData Science at Scale: Using Apache Spark for Data Science at Bitly
Data Science at Scale: Using Apache Spark for Data Science at Bitly
 
Kaggle Competitions, New Friends, New Skills and New Opportunities
Kaggle Competitions, New Friends, New Skills and New OpportunitiesKaggle Competitions, New Friends, New Skills and New Opportunities
Kaggle Competitions, New Friends, New Skills and New Opportunities
 
Congressional PageRank: Graph Analytics of US Congress With Neo4j
Congressional PageRank: Graph Analytics of US Congress With Neo4jCongressional PageRank: Graph Analytics of US Congress With Neo4j
Congressional PageRank: Graph Analytics of US Congress With Neo4j
 
The Reality of Digital Transfer @ArchivesNZ
The Reality of Digital Transfer @ArchivesNZThe Reality of Digital Transfer @ArchivesNZ
The Reality of Digital Transfer @ArchivesNZ
 

Viewers also liked

Ce functional design workshop
Ce functional design workshopCe functional design workshop
Ce functional design workshopamwing
 
SA Paving | Paving Gallery
SA Paving | Paving GallerySA Paving | Paving Gallery
SA Paving | Paving Gallerysapaving001
 
Proiect tic a_1c_naca_elena andreea
Proiect tic a_1c_naca_elena andreeaProiect tic a_1c_naca_elena andreea
Proiect tic a_1c_naca_elena andreeaMakedoanca87
 
Szkolenie UX: nawigacja, formularze, tabele
Szkolenie UX:  nawigacja, formularze, tabeleSzkolenie UX:  nawigacja, formularze, tabele
Szkolenie UX: nawigacja, formularze, tabeleAnna Sorbian
 

Viewers also liked (6)

Arts in Healthcare
Arts in HealthcareArts in Healthcare
Arts in Healthcare
 
Ce functional design workshop
Ce functional design workshopCe functional design workshop
Ce functional design workshop
 
SA Paving | Paving Gallery
SA Paving | Paving GallerySA Paving | Paving Gallery
SA Paving | Paving Gallery
 
Proiect tic a_1c_naca_elena andreea
Proiect tic a_1c_naca_elena andreeaProiect tic a_1c_naca_elena andreea
Proiect tic a_1c_naca_elena andreea
 
Szkolenie UX: nawigacja, formularze, tabele
Szkolenie UX:  nawigacja, formularze, tabeleSzkolenie UX:  nawigacja, formularze, tabele
Szkolenie UX: nawigacja, formularze, tabele
 
Akta 550(1)
Akta 550(1)Akta 550(1)
Akta 550(1)
 

Similar to Information-Rich Programming in F# with Semantic Data

Seamless semantics - avoiding semantic discontinuity
Seamless semantics - avoiding semantic discontinuitySeamless semantics - avoiding semantic discontinuity
Seamless semantics - avoiding semantic discontinuitySteffen Staab
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic WebSteffen Staab
 
Programming with Semantic Broad Data
Programming with Semantic Broad DataProgramming with Semantic Broad Data
Programming with Semantic Broad DataSteffen Staab
 
Semantic Technologies and Programmatic Access to Semantic Data
Semantic Technologies and Programmatic Access to Semantic Data Semantic Technologies and Programmatic Access to Semantic Data
Semantic Technologies and Programmatic Access to Semantic Data Steffen Staab
 
Apache spark-melbourne-april-2015-meetup
Apache spark-melbourne-april-2015-meetupApache spark-melbourne-april-2015-meetup
Apache spark-melbourne-april-2015-meetupNed Shawa
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic WebSteffen Staab
 
ESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic Web
ESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic WebESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic Web
ESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic Webeswcsummerschool
 
Staab programming thesemanticweb
Staab programming thesemanticwebStaab programming thesemanticweb
Staab programming thesemanticwebAneta Tu
 
Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)NETUserGroupBern
 
Develop realtime web with Scala and Xitrum
Develop realtime web with Scala and XitrumDevelop realtime web with Scala and Xitrum
Develop realtime web with Scala and XitrumNgoc Dao
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusBoldRadius Solutions
 
Graph basedrdf storeforapachecassandra
Graph basedrdf storeforapachecassandraGraph basedrdf storeforapachecassandra
Graph basedrdf storeforapachecassandraRavindra Ranwala
 
Spark - The Ultimate Scala Collections by Martin Odersky
Spark - The Ultimate Scala Collections by Martin OderskySpark - The Ultimate Scala Collections by Martin Odersky
Spark - The Ultimate Scala Collections by Martin OderskySpark Summit
 
Apache Spark for Everyone - Women Who Code Workshop
Apache Spark for Everyone - Women Who Code WorkshopApache Spark for Everyone - Women Who Code Workshop
Apache Spark for Everyone - Women Who Code WorkshopAmanda Casari
 
VALA Tech Camp 2017: Intro to Wikidata & SPARQL
VALA Tech Camp 2017: Intro to Wikidata & SPARQLVALA Tech Camp 2017: Intro to Wikidata & SPARQL
VALA Tech Camp 2017: Intro to Wikidata & SPARQLJane Frazier
 
Combine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quicklCombine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quicklNeo4j
 
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...MLconf
 

Similar to Information-Rich Programming in F# with Semantic Data (20)

Seamless semantics - avoiding semantic discontinuity
Seamless semantics - avoiding semantic discontinuitySeamless semantics - avoiding semantic discontinuity
Seamless semantics - avoiding semantic discontinuity
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic Web
 
Spark meetup TCHUG
Spark meetup TCHUGSpark meetup TCHUG
Spark meetup TCHUG
 
Programming with Semantic Broad Data
Programming with Semantic Broad DataProgramming with Semantic Broad Data
Programming with Semantic Broad Data
 
Semantic Technologies and Programmatic Access to Semantic Data
Semantic Technologies and Programmatic Access to Semantic Data Semantic Technologies and Programmatic Access to Semantic Data
Semantic Technologies and Programmatic Access to Semantic Data
 
Apache spark-melbourne-april-2015-meetup
Apache spark-melbourne-april-2015-meetupApache spark-melbourne-april-2015-meetup
Apache spark-melbourne-april-2015-meetup
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic Web
 
ESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic Web
ESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic WebESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic Web
ESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic Web
 
Staab programming thesemanticweb
Staab programming thesemanticwebStaab programming thesemanticweb
Staab programming thesemanticweb
 
Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)
 
Develop realtime web with Scala and Xitrum
Develop realtime web with Scala and XitrumDevelop realtime web with Scala and Xitrum
Develop realtime web with Scala and Xitrum
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadius
 
Graph basedrdf storeforapachecassandra
Graph basedrdf storeforapachecassandraGraph basedrdf storeforapachecassandra
Graph basedrdf storeforapachecassandra
 
Spark - The Ultimate Scala Collections by Martin Odersky
Spark - The Ultimate Scala Collections by Martin OderskySpark - The Ultimate Scala Collections by Martin Odersky
Spark - The Ultimate Scala Collections by Martin Odersky
 
LD4KD 2015 - Demos and tools
LD4KD 2015 - Demos and toolsLD4KD 2015 - Demos and tools
LD4KD 2015 - Demos and tools
 
Apache Spark for Everyone - Women Who Code Workshop
Apache Spark for Everyone - Women Who Code WorkshopApache Spark for Everyone - Women Who Code Workshop
Apache Spark for Everyone - Women Who Code Workshop
 
VALA Tech Camp 2017: Intro to Wikidata & SPARQL
VALA Tech Camp 2017: Intro to Wikidata & SPARQLVALA Tech Camp 2017: Intro to Wikidata & SPARQL
VALA Tech Camp 2017: Intro to Wikidata & SPARQL
 
Combine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quicklCombine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quickl
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
 

More from Steffen Staab

Knowledge graphs for knowing more and knowing for sure
Knowledge graphs for knowing more and knowing for sureKnowledge graphs for knowing more and knowing for sure
Knowledge graphs for knowing more and knowing for sureSteffen Staab
 
Symbolic Background Knowledge for Machine Learning
Symbolic Background Knowledge for Machine LearningSymbolic Background Knowledge for Machine Learning
Symbolic Background Knowledge for Machine LearningSteffen Staab
 
Soziale Netzwerke und Medien: Multi-disziplinäre Ansätze für ein multi-dimens...
Soziale Netzwerke und Medien: Multi-disziplinäre Ansätze für ein multi-dimens...Soziale Netzwerke und Medien: Multi-disziplinäre Ansätze für ein multi-dimens...
Soziale Netzwerke und Medien: Multi-disziplinäre Ansätze für ein multi-dimens...Steffen Staab
 
Web Futures: Inclusive, Intelligent, Sustainable
Web Futures: Inclusive, Intelligent, SustainableWeb Futures: Inclusive, Intelligent, Sustainable
Web Futures: Inclusive, Intelligent, SustainableSteffen Staab
 
Concepts in Application Context ( How we may think conceptually )
Concepts in Application Context ( How we may think conceptually )Concepts in Application Context ( How we may think conceptually )
Concepts in Application Context ( How we may think conceptually )Steffen Staab
 
Storing and Querying Semantic Data in the Cloud
Storing and Querying Semantic Data in the CloudStoring and Querying Semantic Data in the Cloud
Storing and Querying Semantic Data in the CloudSteffen Staab
 
Ontologien und Semantic Web - Impulsvortrag Terminologietag
Ontologien und Semantic Web - Impulsvortrag TerminologietagOntologien und Semantic Web - Impulsvortrag Terminologietag
Ontologien und Semantic Web - Impulsvortrag TerminologietagSteffen Staab
 
Opinion Formation and Spreading
Opinion Formation and SpreadingOpinion Formation and Spreading
Opinion Formation and SpreadingSteffen Staab
 
10 Jahre Web Science
10 Jahre Web Science10 Jahre Web Science
10 Jahre Web ScienceSteffen Staab
 
(Semi-)Automatic analysis of online contents
(Semi-)Automatic analysis of online contents(Semi-)Automatic analysis of online contents
(Semi-)Automatic analysis of online contentsSteffen Staab
 
Text Mining using LDA with Context
Text Mining using LDA with ContextText Mining using LDA with Context
Text Mining using LDA with ContextSteffen Staab
 
Wwsss intro2016-final
Wwsss intro2016-finalWwsss intro2016-final
Wwsss intro2016-finalSteffen Staab
 
10 Years Web Science
10 Years Web Science10 Years Web Science
10 Years Web ScienceSteffen Staab
 
Semantic Web Technologies: Principles and Practices
Semantic Web Technologies: Principles and PracticesSemantic Web Technologies: Principles and Practices
Semantic Web Technologies: Principles and PracticesSteffen Staab
 
Closing Session ISWC 2015
Closing Session ISWC 2015Closing Session ISWC 2015
Closing Session ISWC 2015Steffen Staab
 
ISWC2015 Opening Session
ISWC2015 Opening SessionISWC2015 Opening Session
ISWC2015 Opening SessionSteffen Staab
 
Bias in the Social Web
Bias in the Social WebBias in the Social Web
Bias in the Social WebSteffen Staab
 

More from Steffen Staab (20)

Knowledge graphs for knowing more and knowing for sure
Knowledge graphs for knowing more and knowing for sureKnowledge graphs for knowing more and knowing for sure
Knowledge graphs for knowing more and knowing for sure
 
Symbolic Background Knowledge for Machine Learning
Symbolic Background Knowledge for Machine LearningSymbolic Background Knowledge for Machine Learning
Symbolic Background Knowledge for Machine Learning
 
Soziale Netzwerke und Medien: Multi-disziplinäre Ansätze für ein multi-dimens...
Soziale Netzwerke und Medien: Multi-disziplinäre Ansätze für ein multi-dimens...Soziale Netzwerke und Medien: Multi-disziplinäre Ansätze für ein multi-dimens...
Soziale Netzwerke und Medien: Multi-disziplinäre Ansätze für ein multi-dimens...
 
Web Futures: Inclusive, Intelligent, Sustainable
Web Futures: Inclusive, Intelligent, SustainableWeb Futures: Inclusive, Intelligent, Sustainable
Web Futures: Inclusive, Intelligent, Sustainable
 
Eyeing the Web
Eyeing the WebEyeing the Web
Eyeing the Web
 
Concepts in Application Context ( How we may think conceptually )
Concepts in Application Context ( How we may think conceptually )Concepts in Application Context ( How we may think conceptually )
Concepts in Application Context ( How we may think conceptually )
 
Storing and Querying Semantic Data in the Cloud
Storing and Querying Semantic Data in the CloudStoring and Querying Semantic Data in the Cloud
Storing and Querying Semantic Data in the Cloud
 
Semantics reloaded
Semantics reloadedSemantics reloaded
Semantics reloaded
 
Ontologien und Semantic Web - Impulsvortrag Terminologietag
Ontologien und Semantic Web - Impulsvortrag TerminologietagOntologien und Semantic Web - Impulsvortrag Terminologietag
Ontologien und Semantic Web - Impulsvortrag Terminologietag
 
Opinion Formation and Spreading
Opinion Formation and SpreadingOpinion Formation and Spreading
Opinion Formation and Spreading
 
The Web We Want
The Web We WantThe Web We Want
The Web We Want
 
10 Jahre Web Science
10 Jahre Web Science10 Jahre Web Science
10 Jahre Web Science
 
(Semi-)Automatic analysis of online contents
(Semi-)Automatic analysis of online contents(Semi-)Automatic analysis of online contents
(Semi-)Automatic analysis of online contents
 
Text Mining using LDA with Context
Text Mining using LDA with ContextText Mining using LDA with Context
Text Mining using LDA with Context
 
Wwsss intro2016-final
Wwsss intro2016-finalWwsss intro2016-final
Wwsss intro2016-final
 
10 Years Web Science
10 Years Web Science10 Years Web Science
10 Years Web Science
 
Semantic Web Technologies: Principles and Practices
Semantic Web Technologies: Principles and PracticesSemantic Web Technologies: Principles and Practices
Semantic Web Technologies: Principles and Practices
 
Closing Session ISWC 2015
Closing Session ISWC 2015Closing Session ISWC 2015
Closing Session ISWC 2015
 
ISWC2015 Opening Session
ISWC2015 Opening SessionISWC2015 Opening Session
ISWC2015 Opening Session
 
Bias in the Social Web
Bias in the Social WebBias in the Social Web
Bias in the Social Web
 

Recently uploaded

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Information-Rich Programming in F# with Semantic Data

  • 1. Web Science & Technologies University of Koblenz ▪ Landau, Germany Information-Rich Programming in F# with Semantic Data
  • 2. Linked Open Data Cloud Where’s the Data in the Big Data Wave? Gerhard Weikum SIGMOD Blog, 6.3.2013 http://wp.sigmod.org/ … the Web of Linked Data consisting of more than 30 Billion RDF triples from hundreds of data sources … WeST Steffen Staab staab@uni-koblenz.de 2
  • 3. Some „Bubbles“ of the LOD Cloud WeST Steffen Staab staab@uni-koblenz.de 3
  • 4. RDF: Simple Foundations WeST Steffen Staab staab@uni-koblenz.de 4
  • 5. Example RDF Graph Native Graph OR R2RML: RDB to RDF Mapping Language (W3C rec) WeST Steffen Staab staab@uni-koblenz.de 5
  • 6. Agenda LiteQ – Language integrated types, extensions and queries for RDF graphs  Exploring  Programming, Typing Evaluation of LITEQ (NPQL) against SPARQL Understandability Ease of use SchemEX Construction of schema-based index Schema induction WeST Steffen Staab staab@uni-koblenz.de 6
  • 7. Programming against unknown data source Exploring a data source WeST Steffen Staab staab@uni-koblenz.de Using a data source 7
  • 8. Example application • Goal: Application that helps to collect dog license fee • Send Email reminders to dog owners • Data is given as RDF graph WeST Steffen Staab staab@uni-koblenz.de 8
  • 9. Programmer‘s Task 1: Schema Exploration Schema exploration & Identification of important RDF types • Find RDF types representing dogs and persons WeST Steffen Staab staab@uni-koblenz.de 9
  • 10. Naive Approach Task 1: Schema Exploration Schema exploration & Identification of important RDF types • Find RDF types representing dogs and persons Tooling for Naïve Approach: SPARQL Query Formulation WeST Steffen Staab staab@uni-koblenz.de 10
  • 11. Programmer‘s Task 2: Code Type Creation Code type creation in host language • Convert the identified dog and person RDF types to code types in the host language type exCreature(uri) = class member this.hasName : String = … Member this.hasAge : int = … end type exDog(uri) = class inherit exCreature(uri) member this.hasOwner : exPerson = … member this.TaxNo : Integer = … end type exPerson(uri) = class inherit exCreature(uri) end WeST Steffen Staab staab@uni-koblenz.de 11
  • 12. Programmer‘s Task 3: Data querying Data querying • Write a query that returns all dog owners WeST Steffen Staab staab@uni-koblenz.de 12
  • 13. Naive Approach Task 3: Data querying Data querying • Write a query that returns all dog owners Tooling for Naive Approach: SPARQL Query formulation WeST Steffen Staab staab@uni-koblenz.de 13
  • 14. Naive Approach Task 4: Object manipulation Create the objects, manipulate them & make them persistent • Develop functionality around query to send reminder let queryString = “SELECT ?owner WHERE { ?dog rdf:type exDog. ?dog ex:hasOwner ?owner }“ dbConnection.evaluate(queryString) |> Seq.iter ( fun uri -> let p = new Person(uri) sendReminderEmail(p) ) WeST Steffen Staab staab@uni-koblenz.de 14
  • 15. The LITEQ approach WeST Steffen Staab staab@uni-koblenz.de 15
  • 16. Node Path Query Language WeST Steffen Staab staab@uni-koblenz.de 16
  • 17. Graph Traversal with NPQL: Subtype Navigation > NPQL rdf:Resource > ex:Creature WeST Steffen Staab staab@uni-koblenz.de 17
  • 18. Graph Traversal with NPQL: Property Navigation . NPQL ex:Dog . ex:hasOwner WeST Steffen Staab staab@uni-koblenz.de 18
  • 19. Extensional Semantics: Task 3 – Querying for Owners NPQL rdf:Resource > ex:Dog ex:Creature > ex:Dog . ex:hasOwner -> Extension • Select ex:Dog • Walk through ex:hasOwner to ex:Person • Use extension to retrieve all persons who own dogs: ex:Bob WeST Steffen Staab staab@uni-koblenz.de 19
  • 20. Intensional Semantics: Task 2 - Creating Person Code Type NPQL rdf:Resource > ex:Creature > ex:Dog.hasOwner -> Intension • Select ex:Person node • “Intension” to get code type based on rdf type type exCreature(uri) = class member this.hasName : String = … Member this.hasAge : int = … end type exPerson(uri) = class inherit exCreature(uri) WeST Steffen Staab end staab@uni-koblenz.de 20
  • 21. Autocompletion Semantics: Task 1 - Exploration NPQL rdf:Resource > ex:Creature > Suggestions during query writing • Instances based on extensional semantics • Types & Props based on intensional semantics ex:Person, ex:Dog WeST Steffen Staab staab@uni-koblenz.de 21
  • 22. Extensional Semantics: LA Conjunctive Queries NPQL ex:Dog <- ex:hasOwner Left associative conjunctive query with projection WeST Steffen Staab staab@uni-koblenz.de 22
  • 23. Host Language Extension: Task 4 – Create Objects Create the objects, manipulation & persistence • Develop the functionality around the query that will send the reminder using LITEQ in F# Preliminary Implementation in F# http://west.uni-koblenz.de/Research/systems/liteq WeST Steffen Staab staab@uni-koblenz.de 23
  • 24. Web Science & Technologies University of Koblenz ▪ Landau, Germany Live demo of LITEQ in Visual Studio/F#
  • 25. Related Work Task LINQ XML Freebase Type Type Provider Provider LITEQ current version LITEQ Concept 1 Schema exploration - (✔) per doc (✔) only trees ✔ ✔ 2 Code type creation - (✔) erased types? (✔) erased types (✔) erased types ✔ full hierarchy ✔ - ((✔)) very limited expressiv. (✔) limited expressiv. ✔ no full SPARQL (✔) ✔ - ✔ no new object creation ✔ 3 Data querying 4 Object manipulation & persistence WeST Steffen Staab staab@uni-koblenz.de 26
  • 26. Future work wrt LITEQ • Current implementation is a prototype • Current implementation uses erased types  At runtime, no type hierarchy is present • Switch to generated types in the future  Higher expressiveness in the host language exploiting type hierarchy • Optimizations of LITEQ implementation necessary • Lazy evaluation • Distinguish between design time and runtime • Not all types created at design time are needed at runtime • Formalize query language and investigate expressiveness WeST Steffen Staab staab@uni-koblenz.de 27
  • 27. Challenge: Joint Type Inference Data modeling world Description Logics Program modeling world ML type inference RDF UML class diagrams WeST Steffen Staab staab@uni-koblenz.de 28
  • 28. Agenda LiteQ – Language integrated types, extensions and queries for RDF graphs  Exploring  Programming, Typing Evaluation of LITEQ (NPQL) vs. SPARQL Understandability Ease of use SchemEX Where do I find relevant data? Efficient construction of a schema-level index WeST Steffen Staab staab@uni-koblenz.de 29
  • 29. Preliminary Evaluation of LITEQ/NPQL Focused on NPQL • Reason: Test subjects lacked knowledge of F# and functional programming for evaluating LITEQ in full • Comparing NPQL against SPARQL Main Hypothesis of Evaluation • NPQL with autocompletion allows for effective query writing in more efficient manner than SPARQL Thus: some of the advantages of LITEQ cannot show up in the evaluation! WeST Steffen Staab staab@uni-koblenz.de 30
  • 30. Evaluation Subjects Evaluation with 11 participants • 1 subject a posteriori eliminated from analysis of evaluation, because he could not deal with SPARQL at all! • 10 subjects remaining for analysis Participants • Undergraduate students • PhD students • PostDocs WeST Steffen Staab staab@uni-koblenz.de 31
  • 31. Evaluation - Setup 1. Pre-questionaire 1. Training in RDF, SPARQL & NPQL 1. Experimental tasks to be solved by subjects 1. Post-questionaire WeST Steffen Staab staab@uni-koblenz.de 32
  • 32. Phase 1: Pre-Questionnaire – Knowledge & skills • Programming: All • Object-orientation: 8 • Functional programming:  “Intermediate” or above  “Intermediate” or above 4 Intermediate” or above Lisp, Haskell, F# (once) 4 none” • .NET 1 Expert” 2 Beginner” 7 none” • SPARQL: 3 Intermediate” or above 7 below “intermediate” WeST Steffen Staab staab@uni-koblenz.de [Sparql Experts] [Sparql Novices] 33
  • 33. Phase 2: Training in RDF, SPARQL, NPQL Training in RDF & SPARQL • Presentation of RDF & SPARQL (20 minutes) • Practical excercise writing SPARQL queries in the Web interface (5 minutes) Training in NPQL • Practical excercise writing NPQL queries in Visual Studio (5 minutes) WeST Steffen Staab staab@uni-koblenz.de 34
  • 34. Phase 3: Solving experimental tasks by subjects 9 different experimental tasks to solve • Half of tasks in NPQL using Visual Studio • Other half using SPARQL and a web interface Task types • Navigation and exploration of a data source (Task 1) • Retrieving and answering questions about the data (Task 3) • 2 tasks were not solvable in NPQL • Investigating how users deal with limits of the language Evaluation measure: • Duration to complete each task WeST Steffen Staab staab@uni-koblenz.de 35
  • 35. Evaluation across different user types WeST Steffen Staab staab@uni-koblenz.de 36
  • 36. Evaluations per Task WeST Steffen Staab staab@uni-koblenz.de 37
  • 37. Phase 4: Post-Questionnaire “Do you want to explore a data source in your IDE?” 4 yes” 3 no, prefer separation of steps” 3 no preference” “NPQL is easier to use than SPARQL” 7 agree” or above My conclusion Other Though LITEQ is still in a pre-alpha status, • Better supportadvantages queries in SPARQL when writing became visible in times for interactive working with • Better responsepreliminary user evaluation NPQL WeST Steffen Staab staab@uni-koblenz.de 38
  • 38. Agenda LiteQ – Language integrated types, extensions and queries for RDF graphs  Exploring  Programming, Typing Evaluation of LITEQ (NPQL) against SPARQL Understandability Ease of use SchemEX Construction of schema-based index Schema induction WeST Steffen Staab staab@uni-koblenz.de 39
  • 39. Searching the LOD cloud SELECT ?x foaf:Document WHERE { ?x rdf:type foaf:Document . ?x rdf:type swrc:InProceedings . ?x dc:creator ?y . x ?y rdf:type fb:Computer_Scientist } ? WeST Steffen Staab staab@uni-koblenz.de 40 swrc:InProceedings fb:Computer_Scientist dc:creator
  • 40. 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 WeST Steffen Staab staab@uni-koblenz.de 41 • ACM • DBLP
  • 41. Schema-level index Schema information on LOD Explicit Implicit Assigning class types Modelling attributes Class rdf:type Property Entity 2 Entity Entity WeST Steffen Staab staab@uni-koblenz.de 42
  • 43. Typecluster  Entities with the same Set of types C1 C2 ... Cn ... DSm TCj DS1 WeST Steffen Staab staab@uni-koblenz.de DS2 44
  • 45. Bi-Simulation  Entities are equivalent, if they refer with the same attributes to equivalent entities  Restriction: 1-Bi-Simulation P1 P2 ... Pn ... DSm BSi DS1 WeST Steffen Staab staab@uni-koblenz.de DS2 46
  • 47. SchemEX: Combination TC and Bi-Simulation  Partition of TC based on 1-Bi-Simulation with restrictions on the destination TC Schema C1 Payload ... Cn C45 C2 TCj ... Cn„ TCk BSi EQC WeST C2 DS1 EQCj DS2 P1 P2 ... Pn ... DSm Steffen Staab staab@uni-koblenz.de EQC DS 48
  • 48. SchemEX: Example foaf:Document swrc:InProceedings fb:Computer_Scientist tc2309 tc2101 bs260 8 eqc707 DBLP WeST Steffen Staab staab@uni-koblenz.de dc:creator ... SELECT ?x WHERE { ?x rdf:type foaf:Document . ?x rdf:type swrc:InProceedings ?x dc:creator ?y . ?y rdf:type fb:Computer_Scient } 49
  • 49. SchemEX: Computation  Precise computation: Brute-Force Schema C1 Payload ... Cn C12 C2 TCj ... Cn„ TCk BSi EQC WeST C2 DS1 EQCj DS2 P1 P2 ... Pn ... DSm Steffen Staab staab@uni-koblenz.de EQC DS 50
  • 50. 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 1 C3 4 C2 3 6 4 2 C2 2 3 1 5 C1 WeST Steffen Staab staab@uni-koblenz.de 51
  • 51. Quality of Approximated Index Stream-based computation vs. brute force Data set of 11 Mio. tripel WeST Steffen Staab staab@uni-koblenz.de 52
  • 52. 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 WeST Steffen Staab staab@uni-koblenz.de 53
  • 53. Future work wrt SchemEX Further exploration of • schema induction • query federation Federation vs Link Traversal based query execution • Granularity of query execution • Too fine grained: URI dereferencing • Too expressive: SPARQL • Sweet spot -> NPQL?? WeST Steffen Staab staab@uni-koblenz.de 54
  • 54. Agenda LiteQ – Language integrated types, extensions and queries for RDF graphs  Exploring  Programming, Typing Evaluation of LITEQ (NPQL) against SPARQL Understandability Ease of use SchemEX Construction of schema-based index Schema induction WeST Steffen Staab staab@uni-koblenz.de 55
  • 55. Future 1. 2. 3. 4. Searching for distributed data Understanding distributed data Intelligent queries on distributed data Programming with distributed data • Type reuse • Type induction WeST Steffen Staab staab@uni-koblenz.de 56
  • 56. Web Science & Technologies University of Koblenz ▪ Landau, Germany Thank you for your attention!