Introduction to Semantic Web
Outline
What is semantic web?
Semantic Web Concepts
SPARQL examples
Data Modeling using Ontologies
What is Semantic Web?
Web 3.0, Linked Data, Web of Data..
More of meaning, less structure
Representing Knowledge
What type of knowledge
Novels and short stories are books
A book is a document
Every book has an author
A document has a title
A title is a String
What challenges can be solved?
How to extract meaningful information from large
amounts of data
How to connect pieces of information to other
pieces
How to visualize complex information structures
How to represent this using:
Conceptual Graphs
Database Model
RDF(S)
Conceptual Graphs - Databases
BoyId
GirlId
BoyId
Name
John
8
GirlId Nam
e
2
Eva
RDF
Flexible and extensible way to represent
information about WWW resources
RDF
10
RDF
The "http://en.wikipedia.org/wiki/Tony_Benn",
published by Wikipedia, has for title 'Tony
Benn
<http://en.wikipedia.org/wiki/Tony_Benn>
<http://purl.org/dc/elements/1.1/publisher> "Wikipedia .
<http://en.wikipedia.org/wiki/Tony_Benn>
<http://purl.org/dc/elements/1.1/title> "Tony Benn" .
11
RDF
The "http://en.wikipedia.org/wiki/Tony_Benn", published
by Wikipedia,
has for title 'Tony Benn.
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://en.wikipedia.org/wiki/Tony_Benn">
<dc:title>Tony Benn</dc:title>
<dc:publisher>Wikipedia</dc:publisher>
</rdf:Description>
</rdf:RDF>
12
SPARQL
Query language for getting information from RDF
graphs. It provides facilities to:
- extract information in the form of URIs, blank
nodes, plain and typed literals.
- extract RDF subgraphs.
- construct new RDF graphs based on
information in the queried graphs
13
SPARQL
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?email
WHERE {
?person
rdf:type
foaf:Person.
?person
foaf:name
?name.
?person
foaf:mbox
?email.
}
14
SPARQL Example 1
Data:
<http://example.org/book/book1>
<http://purl.org/dc/elements/1.1/title>
"SPARQL Tutorial" .
Query:
SELECT ?title
WHERE
{
<http://example.org/book/book1>
<http://purl.org/dc/elements/1.1/title>
?title .
}
15
SPARQL Example 2
Data:
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a
_:a
_:b
_:b
_:c
foaf:name
foaf:mbox
foaf:name
foaf:mbox
foaf:mbox
"Johnny Lee Outlaw" .
<mailto:jlow@example.com> .
"Peter Goodguy" .
<mailto:peter@example.org> .
<mailto:carol@example.org> .
16
SPARQL Example 2
Query:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE
{
?x foaf:name ?name .
?x foaf:mbox ?mbox
}
name
mbox
"Johnny Lee Outlaw
<mailto:jlow@example.com>
"Peter Goodguy"
<mailto:peter@example.org>
17
Ontology
An ontology is an explicit specification of a
conceptualization
An ontology is a logical theory accounting for the
indented meaning of a formal vocabulary
.
. in a bit simpler way
.
An ontology is a formal definition of a body of
knowledge
18
Ontology
A given field of domain of interest
Within the boundaries of which things are
assumed to exist
In a formalized, explicit, and semantically
consistent way
19
OWL
Ontology web language
An OWL ontology is a set of axioms
- Class Axioms: C D, C D
- Role Axioms: R S, Func(R), Trans(S)
- Individual Axioms: a:C, <a,b>:R
20
Ontology Engineering
determine
scope
consider
reuse
enumerate
terms
define
classes
define
properties
Let us build a simple pizza Ontology.
Its like the hello world program of Ontology
21
Ontology - Scope
Which Pizza characteristics should I consider
when choosing a Pizza?
Is Veg or Non Veg?
Does Pizza go well with Ice Cream?
Which is the best choice among Veg pizza .
What kind of Pizza bases available?
Pizzas from which countries are available?
Which Pizza is the least spicy?
22
Ontology - Reuse
Why reuse other ontologies?
to save the effort
to interact with the tools that use other
ontologies
to use ontologies that have been validated
through use in applications
23
Ontology Enumerate Terms
What are the properties of these terms?
What do we want to say about the terms?
Pizza, Cheese , Toppings , Mexican , Sauce , Pizza
Base,
Crispy
24
Ontology - Classes
A class is a concept in the domain
- a class of Pizza
- a class of PizzaBase
- a class of Country
Classes can have hierarchy
- Pizza is a subclass of Food
- VegetarianPizza is a subclass of Pizza
25
Ontology - Properties
Slots in a class definition describe attributes of
instances of the class and relations to other
instances
Each pizza will have hasBase, hasTopping,
hasCountryOfOrigin
26
Tools
Protg
Apache Jena
27
Questions?
28