Semantic Web - University of Illinois - Engineering Wiki

steelsquareInternet and Web Development

Oct 20, 2013 (3 years and 7 months ago)

83 views

Triplify

CS511
-
Fall 2011

Mike McHugh

David Parkinson

Triplify


The Research Group
-

www.aksw.org


Development of methods, tools and applications for adaptive Knowledge
Engineering in the context of the Semantic Web


Research of underlying Semantic Web technologies and development of
fundamental Semantic Web tools and applications


Maturation of strategies for fruitfully combining the Social Web paradigms
with semantic knowledge representation techniques



The Paper
-

Triplify: Light
-
weight Linked Data Publication from
Relational Databases


Proceedings of the 18th international conference on World wide web, 2009,
621

630.


AKSW Research Group : University Leipzig


www.triplfy.org

:
Triplify provides a building block for the “
semantification


of Web applications



Background


Tim Berners
-
Lee


Creator of WWW, HTTP, HTML, …



Syntactic Web
-

Web of Documents


Constructed of letters, words, punctuation, tags, markup


Navigated by URL


Interpreted and presented by browsers


Humans must infer meaning


Syntactic Web

Traditional RDMS


Semantics are “locked” and “hidden”


in the schema: attribute names and shared keys


in business logic of applications and SQL

However…


Web is constantly growing, changing, evolving


Relational database are difficult to extend


Data migration : cottage industry


ORM abstractions

Semantic Web


Semantic Web : Web of Things


Initial Paper ( March 2008 )


Giving
Meaning

to the Syntax


Berners
-
Lee, Tim; James Hendler and Ora Lassila (May 17, 2001). "The Semantic Web".
Scientific American Magazine. Retrieved March 26, 2008.



Initial Ted Talk ( Feb 2009 )


http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html


Video Snippet 1


Video
Snippet
2






Linked Data Modeling


Triple
-

Short statements ( axioms )


Subject
-
> Predicate
-
> Object


Subject
-
> book is a ‘Thing’ ( similar to an object oriented class )


Predicate
-
> a relationship ( or meaning )


Object
-
> another ‘Thing’ or a literal



Linked Data

Amazon.com

foaf

nytimes

Linked Data

Subject

Predicate

Object

amazon:book#006251587X

amazon:hasPrice

rdf:value#10.13

amazon:book#006251587X

amazon:hasTitle

rdf:literal#”Weaving The Web”

amazon:book#006251587X

amazon:hasAuthor

foaf:name#TimBerners
-
Lee

foaf:name#TimBerners
-
Lee

foaf:name

rdf:literal#”Tim Berners
-
Lee”

foaf:name#TimBerners
-
Lee

foaf:email

<mailto:timbl@w3.org>

foaf:name#TimBerners
-
Lee

foaf:homepage

<http://ww.w3.org/People/Berners
-
Lee>

foaf:name#Andrew

amazon:reccomends

amazon:book#006251587X

foaf:name#John

foaf:isFriend

foaf:name#Andrew

Underlying Assumptions


RDBMS
-

Closed
-
World Assumption


what is not currently known to be true is false



No inferencing


Semantic Web
-

Open World Assumption


what is not currently known to be true is unknown


Allows for deductive reasoning, inferencing

Inferencing

Subject

Predicate

Object

amazon:book#006251587X

amazon:hasPrice

rdf:value#10.13

amazon:book#006251587X

amazon:hasTitle

rdf:literal#”Weaving The Web”

amazon:book#006251587X

amazon:hasAuthor

foaf:name#TimBerners
-
Lee

foaf:name#TimBerners
-
Lee

foaf:name

rdf:literal#”Tim Berners
-
Lee”

foaf:name#TimBerners
-
Lee

foaf:email

<mailto:timbl@w3.org>

foaf:name#TimBerners
-
Lee

foaf:homepage

<http://ww.w3.org/People/Berners
-
Lee>

foaf:name#Andrew

amazon:reccomends

amazon:book#006251587X

foaf:name#John

foaf:isFriend

foaf:name#Andrew

Subject

Predicate

Object

amazon:book#006251587X

hasAuthorEmail

<mailto:timbl@w3.org>

Query Languages


RDBMS


SQL

select bookID, authorName

from books, authors

where books.aid = authors.aid

and books.isbn = ‘006251587X’.


Semantic Web


Sparql

select ?authName ?authEmail

where {

<amazon:book#006251587X><amazon:hasAuthor><foaf:name#TimBerners
-
Lee>

<foaf:name#TimBerners
-
Lee><foaf:name> ?authName

<foaf:name#TimBerners
-
Lee><foaf:email>?authEmail

}

Discussion Question

How does a semantic web
triplestore

compare and contrast to a traditional
Relational Database Management System?

Success Stories


Tim Berners
-
Lee


Feb 2010


http://www.ted.com/talks/lang/eng/tim_berners_lee_the_year_open
_data_went_worldwide.html


Video Snippet 3


Linked Open Data
Cloud Diagram as of September
2011

Discussion Question

Do you believe that a Semantic Web as
described by Tim Berners
-
Lee is in fact the
next natural evolution of the
Web ?

However…


Semantic Web requires that Web of Things map the ‘same
things’ ie: ‘Linked Data’


Hard and time consuming ie: expensive


Triplify’s approach is to identify common open
-
source
applications and to support publication of underlying
database information as semantic triples

A Solution: Triplify

A Solution: Triplify


Expose Relational DB
data to the web


Solves unstructured data
problem


Allows easy refreshing of
data


Multiple data formats


JSON


RDF


LinkedData

The Details


Based on

the definition of

relational database queries
for

a

specific Web

application


Expose / Retrieve valuable information and

to

convert
the

results of

these queries into RDF, JSON and

Linked
Data


For

most web
-
applications 3
-
7 queries are

sufficient
to

extract the

most important information


Views can

be

used to

converted into an

RDF, JSON
or

Linked Data representation, which can

be

shared
and

accessed on

the (Semantic) Web.

Classic Application Structure

Relational Database

Web Application

Clients / Users

SQL Queries

The Goal

Relational Database

Clients / Users

SQL Queries

Web Application

Triplify

Data

What do we need to do?

ID

Name

Cost

Qty

1

iPhone 4

99

15

2

iPhone 4s

199

2

3

iPad

2

699

5

4

AppleTV

99

36

1.
Identify what data we
want to expose


Name it


Define its structure

2.
Expose it through
Triplify


URI Mappings


Configuration file



Products Table (RDBMS)

What do we need to do?

ID

Name

Cost

Qty

1

iPhone 4

99

15

2

iPhone 4s

199

2

3

iPad

2

699

5

4

AppleTV

99

36



Define its structure

2.
Expose it through
Triplify


URI Mappings


Configuration file



Products Table (RDBMS)

RDBMS

ID

Name

Cost

Qty

Semantic

Web

ID

Name

Price

--

What do we need to do?

ID

Name

Cost

Qty

1

iPhone 4

99

15

2

iPhone 4s

199

2

3

iPad

2

699

5

4

AppleTV

99

36

Products Table (RDBMS)

{”products": [


{“id”:1, ”name": ”iPhone 4", ”price": ”99"},


{
“id”:2,

name":

iPhone 4s",

price":

199"} ,


{
“id”:3,

name":

iPad 2",

price":

699

},


{
“id”:4,

name":

AppleTV",

price":

99"}


]

}

1.
Identify what data we
want to expose


Name it

2.
Expose it through
Triplify


URI Mappings


Configuration
file


What do we need to do?

ID

Name

Cost

Qty

1

iPhone 4

99

15

2

iPhone 4s

199

2

3

iPad

2

699

5

4

AppleTV

99

36

Products Table (RDBMS)

1.
Identify what data we
want to expose


Name it


Define its structure


Configuration file



www.apple.com/semantic/…


/product


products

/inventory


inventory

/support


help articles

Triplify Configuration File

What do we need to do?

ID

Name

Cost

Qty

1

iPhone 4

99

15

2

iPhone 4s

199

2

3

iPad

2

699

5

4

AppleTV

99

36

Products Table (RDBMS)

1.
Identify what data we
want to expose


Name it


Define its structure


Configuration file



$triplify['queries']=
array
(




product'=>
array
(



"SELECT p.id AS id,









p.name AS name,







p.cost AS price


FROM product”

);



Triplify Configuration File

Discussion Question

What other features would you want
to see in a product designed to
expose data to the semantic web?

Issues and Concerns


Triplify is

still beta grade software


Possible

issues with exotic encodings, databases, PHP/Apache
configurations


needs more testing


Only available in PHP


Waiting for others to port to new platforms


Performance


Triplify is

currently aimed at

small to

medium Web

applications
(i.e. less than 100MB database content)


Triplify DOES support the

caching of

the triplification results


Privacy


Users must prevent sensitive information from being exposed


Properly hashing emails and passwords


Omit private data from Triplify queries

Discussion Question

What are some of the downsides or
concerns with having the data in your DB
directly exposed to the semantic web?