SlideShare a Scribd company logo
1 of 41
Alex Genadinik
Shamod Lacoul
Semantic Web Overview
mage Source: http://www.e-clipsblog.co.uk/wp-content/semantic-web.jpg
• What is the Semantic Web?
• Why use the Semantic Web?
• RDF for data representation
• RDFS - data schemas (models)
• SPARQL - RDF query language
• RDFa
• Linked Open Data
• OWL - Web Ontology Language
Outline
Who is this person?
Which Semantic Web?
• Taxonomy
• Linked Data
• Ontology
• Open Web
• Reasoning
• NLP
• Ontologies
• Sem Web for Biz
• Smart Web
• Smarter Applications
• Improved Search
• Machine Learning (A.I)
Web vs. Semantic Web
Web --> links documents to documents
Semantic Web --> links data to data.
Semantic Web Advantages
Universal data representation (using RDF)
Reusable data models (using RDF, RDFS, and OWL)
W3C Standard query language (SPARQL)
Information validation and classification (reasoners)
Use Cases for Semantic Data
Common Data Model
• RDF is a universal data format
• RDF data can be mapped to and from relational, XML and
object models
• Even better, execute SPARQL queries remotely to retrieve
just the subset of data you need
Uses of XML in RDF
• RDF/XML is one type of RDF serialization
• XSD datatypes
• Namespaces
mage Source: http://www.spycomponents.com/images/xml_at_work.gif
Vocabulary: Namespace
Namespace - a concept borrowed from XML
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix -> rdf:
namespace URI -> http://www.w3.org/1999/02/22-rdf-syntax-ns#
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
is the same as
rdf:type
Vocabulary: URI
Universal Resource Identifier - a unique ID
http://www.siliconvalley-codecamp.com/Sessions#SemWeb
Namespace - http://www.siliconvalley-codecamp.com/Sessions#
 
Fragment Identifier - SemWeb
What is RDF?
A Universal Data Model consisting
of statements:
subject - predicate - object
the set of RDF statements form a graph
Informal example:
ns1:myHouse ns2:hasColor pantone:chartreuse
pantone:chartreuse pantone:redComponent "13"^^xsd:int
pantone:chartreuse pantone:greenComponent "214"^^xsd:int
This particular SVCC session (let's call it "SemWeb")
has the title "A Hands-On Introduction to the Semantic Web"
and the description "The Semantic Web is in its infancy ..."
<http://www.siliconvalley-codecamp.com/sessions#SemWeb>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.siliconvalley-codecamp.com/rdfs#Sessions>
has the
<http://purl.org/dc/elements/1.1/title>
of
"A Hands-On Introduction to the Semantic Web"^^xsd:string
and the
<http://purl.org/dc/elements/1.1/description>
of
"The Semantic Web is in its infancy ..."^^xsd:string
An RDF Example
RDF Graph
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:svcc="http://www.siliconvalley-codecamp.com/rdfs#"
xml:base="http://www.siliconvalley-codecamp.com/sesssions">
<rdf:Description
rdf:ID="http://www.siliconvalley-codecamp.com/sesssions#SemWeb">
<rdf:type rdf:resource="svcc:Session" />
<dc:title>A Hands-On Introduction to the Semantic Web</dc:title>
<dc:description>The Semantic Web is in its infancy ...</dc:description>
</rdf:Description>
</rdf:RDF>
RDF/XML
Other forms of RDF Serialization
N3, TURTLE, N-Triple, etc.
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix svcc: <http://www.siliconvalley-codecamp.com/rdfs#> .
<http://www.siliconvalley-codecamp.com/sesssions#SemWeb>
a svcc:Session ;
dc:description "The Semantic Web is in its infancy ..." ;
dc:title "A Hands-On Introduction to the Semantic Web" ;
RDF (Graph-based) != XML (Tree-based).
RDF graphs represent information
XML trees represent data
RDF/XML serializes RDF
RDF vs. XML
• RDF statements are stored in RDF Repositories
o Also called triple stores
• Data can be accessed via:
o SPARQL queries
o API calls
o Text searches
RDF storage
What is RDFS?
a representation for defining schemas for RDF
RDF Schema
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.siliconvalley-codecamp.com/rdfs">
<rdfs:Class rdf:ID="Session" />
<rdfs:Class rdf:ID="Speaker">
<rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Person" />
</rdfs:Class>
<rdf:Property rdf:ID="presenter">
<rdfs:domain rdf:resource="#Session" />
<rdfs:range rdf:resource="#Speaker" />
<rdfs:label>Presenter</rdfs:label>
</rdf:Property>
</rdf:RDF>
RDFS: Classes
and Properties
Property Name
rdf:type
rdfs:subClassOf
rdfs:subPropertyOf
rdfs:domain
rdfs:range
rdfs:label
rdfs:comment
rdfs:member
rdf:first
rdf:rest
rdfs:seeAlso
rdfs:isDefinedBy
rdf:value
rdf:subject
rdf:object
rdf:predicateSource: http://www.w3.org/TR/rdf-schema/
Class Name
rdf:List
rdfs:ContainerMembershipProperty
rdfs:Container
rdf:Alt
rdf:Seq
rdf:Bag
rdf:Statement
rdfs:Datatype
rdf:Property
rdfs:Class
rdf:XMLLiteral
rdfs:Resource
SPARQL
• a W3C standard query language to fetch data from
distributed Semantic Web data models (mainly, RDF and
OWL)
• a concept similar to SQL for Database
• can query a triple-store (local RDF repository) or data on the
Web (at a URL)
SPARQL - a query language for RDF
PREFIX svcc:<http://www.siliconvalley-codecamp.com/rdfs#>
PREFIX dc:<http://purl.org/dc/elements/1.1/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?title ?presenter ?description
WHERE
{
?session rdf:type svcc:Session .
?session dc:title ?title .
?session svcc:presenter ?presenter .
?session dc:description ?description .
}
SPARQL - a query language for RDF
PREFIX svcc:<http://www.siliconvalley-codecamp.com/rdfs#>
PREFIX dc:<http://purl.org/dc/elements/1.1/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
SELECT ?title ?presenter ?description
WHERE
{
?session dc:title ?title .
?session svcc:presenter ?presenter .
?session dc:description ?description .
FILTER (fn:string-length(?description) < 100)
}
SPARQL - a query language for RDF
PREFIX svcc:<http://www.siliconvalley-codecamp.com/rdfs#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
CONSTRUCT { ?session svcc:abstract ?description }
WHERE
{
?session dc:description ?description .
}
LIMIT 2
SPARQL - a query language for RDF
PREFIX svcc: <http://www.siliconvalley-codecamp.com/rdfs#>
PREFIX speaker: <http://www.siliconvalley-
codecamp.com/speakers#>
ASK
{
?x svcc:presenter speaker:Shamod_Lacoul
}
Other SPARQL operations
Operation
DESCRIBE
SPARQL/UPDATE - a query language to fulfill CRUD operations
INSERT & DELETE
WHERE operations
OPTIONAL
UNION
ORDER BY
DISTINCT
REDUCED
OFFSET
LIMIT
Reference Clause
FROM
FROM NAMED
Linking Open Data (RDF)
• 4.7 billion RDF triples
• 142 million RDF links (as of May 2009)
• LOD examples
o DBPedia, Freebase
o BBC, MusicBrainz, Flickr
o SIOC, FOAF
Copyright © 2009 Hewett Research, LLC
Copyright © 2009 Hewett Research, LLC
Questions about SPARQL or RDFa?
See http://www.hewettresearch.com/svcc2009/
for related materials.
Coming next:
• OWL - Web Ontology Language
• SWRL - Semantic Web Rule Language
Web Ontology Language (OWL)
An extension to RDF/RDFS to enable complex
knowledge representations
a language for defining and instantiating
ontologies
An OWL ontology may include descriptions of
classes, properties and their instances.
Based on Open-World Assumption - what is not
known is not "untrue", just "unknown".
Flavors of OWL ontologies
OWL Lite - supports classification in hierarchies and simple
constraints
OWL DL - correspondence with Description Logics
OWL Full - maximum expressiveness
OWL 2 - (W3C Candidate Recommendation, June 2009)
• OWL 2 EL - has computational guarantees
• OWL 2 QL - maps to database technologies
• OWL 2 RL - computationally efficient
OWL: Classes
and Properties
Classes
owl:Class
rdfs:subClassOf
Properties
owl:ObjectProperty
owl:DatatypeProperty
rdfs:subPropertyOf
rdfs:domain
rdfs:range
Property Charactersitic
owl:TransitiveProperty
owl:FunctionalProperty
owl:inverseOf
owl:InverseFunctionalPropertyProperty Restrictions
owl:allValuesFrom
owl:someValuesFrom
owl:cardinality
owl:hasValue
Equivalence
owl:equivalentClass
owl:equivalentProperty
owl:sameAs
Complex Classes
owl:intersectionOf
owl:unionOf
owl:complementOf
NOTE: A subset of OWL Classes and Properties
Source: http://www.w3.org/TR/owl-guide/
Compare other models to SemWeb Models
Database XML RDF OWL
Expressiveness medium low medium high
Accessibility low medium high high
Inferencing low low medium high
Flexibility low medium medium medium
Advantages of RDF and OWL
Expressiveness (explicit metadata)
Inherently Distributed
Easier data interchange
Reasoning and Inferencing capabilities.
Reasoning / Inferencing
Both refer to ways of inferring more information than is in the
asserted data model
• Reasoning does two things:
o Validates information:
 domain & range of properties
 valid subclasses & instances
o Classifies instances based on their properties
o Uses logic - usually first-order predicate logic
• Inferencing uses explicit rules
o typically domain-specific rules
o SWRL and RIF are the W3C standard rule languages
OWL example / demo
See http://www.hewettresearch.com/svcc2009/
for related materials.
Coming next:
• SWRL - Semantic Web Rule Language
• Useful tools, companies and links
Semantic Web Tools
Jena (O)
Sesame (O)
AllegroGraph (OC)
Virtuoso (C)
Protege (O)
TopQuadrant (OC)
Java libraries for RDF/OWL
RDF Repositories (Triplestores)
Semantic Web Editor
O - Open Source
C - Closed Source
OC - Open & Closed
OWLIM (OC)
Popular Public Ontologies
FOAF NCBO
Dublin Core
GoodRelations
MusicBrainz
Prominent SemWeb Companies
Helpful References and Books
• http://www.w3.org/2001/sw/BestPractices/Tutorials
• http://www.w3.org/TR/rdfa-syntax/
• http://jena.sourceforge.net/documentation.html
• http://protege.stanford.edu/publications/ontology_developmen
• http://www.devx.com/semantic/Door/34578
• http://semanticweb.com
• http://semanticuniverse.com/
• http://www.mkbergman.com/
The END – Thank You!

More Related Content

What's hot

Introduction to RDFa
Introduction to RDFaIntroduction to RDFa
Introduction to RDFaIvan Herman
 
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
 
Publishing Data Using Semantic Web Technologies
Publishing Data Using Semantic Web TechnologiesPublishing Data Using Semantic Web Technologies
Publishing Data Using Semantic Web TechnologiesNikolaos Konstantinou
 
Enhancing Domain Specific Language Implementations Through Ontology
Enhancing Domain Specific Language Implementations Through OntologyEnhancing Domain Specific Language Implementations Through Ontology
Enhancing Domain Specific Language Implementations Through OntologyChunhua Liao
 
Semantic Web: From Representations to Applications
Semantic Web: From Representations to ApplicationsSemantic Web: From Representations to Applications
Semantic Web: From Representations to ApplicationsGuus Schreiber
 
Semantic Integration with Apache Jena and Stanbol
Semantic Integration with Apache Jena and StanbolSemantic Integration with Apache Jena and Stanbol
Semantic Integration with Apache Jena and StanbolAll Things Open
 
OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?Aidan Hogan
 
Scala Programming for Semantic Web Developers ESWC Semdev2015
Scala Programming for Semantic Web Developers ESWC Semdev2015Scala Programming for Semantic Web Developers ESWC Semdev2015
Scala Programming for Semantic Web Developers ESWC Semdev2015Jean-Paul Calbimonte
 
Apache Jena Elephas and Friends
Apache Jena Elephas and FriendsApache Jena Elephas and Friends
Apache Jena Elephas and FriendsRob Vesse
 
EDF2012 Irini Fundulaki - Abstract Access Control Models for Dynamic RDF Da...
EDF2012   Irini Fundulaki - Abstract Access Control Models for Dynamic RDF Da...EDF2012   Irini Fundulaki - Abstract Access Control Models for Dynamic RDF Da...
EDF2012 Irini Fundulaki - Abstract Access Control Models for Dynamic RDF Da...European Data Forum
 

What's hot (20)

Introduction to RDFa
Introduction to RDFaIntroduction to RDFa
Introduction to RDFa
 
Triple Stores
Triple StoresTriple Stores
Triple Stores
 
ShEx vs SHACL
ShEx vs SHACLShEx vs SHACL
ShEx vs SHACL
 
SHACL Specification Draft
SHACL Specification DraftSHACL Specification Draft
SHACL Specification Draft
 
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 (...
 
Jena Programming
Jena ProgrammingJena Programming
Jena Programming
 
Globe seminar
Globe seminarGlobe seminar
Globe seminar
 
Publishing Data Using Semantic Web Technologies
Publishing Data Using Semantic Web TechnologiesPublishing Data Using Semantic Web Technologies
Publishing Data Using Semantic Web Technologies
 
Enhancing Domain Specific Language Implementations Through Ontology
Enhancing Domain Specific Language Implementations Through OntologyEnhancing Domain Specific Language Implementations Through Ontology
Enhancing Domain Specific Language Implementations Through Ontology
 
KIT Graduiertenkolloquium 11.05.2016
KIT Graduiertenkolloquium 11.05.2016KIT Graduiertenkolloquium 11.05.2016
KIT Graduiertenkolloquium 11.05.2016
 
Scala Days NYC 2016
Scala Days NYC 2016Scala Days NYC 2016
Scala Days NYC 2016
 
Semantic Web - RDF
Semantic Web - RDFSemantic Web - RDF
Semantic Web - RDF
 
SPARQL Cheat Sheet
SPARQL Cheat SheetSPARQL Cheat Sheet
SPARQL Cheat Sheet
 
Semantic Web: From Representations to Applications
Semantic Web: From Representations to ApplicationsSemantic Web: From Representations to Applications
Semantic Web: From Representations to Applications
 
Semantic Integration with Apache Jena and Stanbol
Semantic Integration with Apache Jena and StanbolSemantic Integration with Apache Jena and Stanbol
Semantic Integration with Apache Jena and Stanbol
 
OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?
 
Scala Programming for Semantic Web Developers ESWC Semdev2015
Scala Programming for Semantic Web Developers ESWC Semdev2015Scala Programming for Semantic Web Developers ESWC Semdev2015
Scala Programming for Semantic Web Developers ESWC Semdev2015
 
Apache Jena Elephas and Friends
Apache Jena Elephas and FriendsApache Jena Elephas and Friends
Apache Jena Elephas and Friends
 
Abstract Access Control Model for Dynamic RDF Datasets
Abstract Access Control Model for Dynamic RDF DatasetsAbstract Access Control Model for Dynamic RDF Datasets
Abstract Access Control Model for Dynamic RDF Datasets
 
EDF2012 Irini Fundulaki - Abstract Access Control Models for Dynamic RDF Da...
EDF2012   Irini Fundulaki - Abstract Access Control Models for Dynamic RDF Da...EDF2012   Irini Fundulaki - Abstract Access Control Models for Dynamic RDF Da...
EDF2012 Irini Fundulaki - Abstract Access Control Models for Dynamic RDF Da...
 

Similar to A hands on overview of the semantic web

The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)Myungjin Lee
 
Usage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application ScenariosUsage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application ScenariosEUCLID project
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsRinke Hoekstra
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeAdriel Café
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And VisualizationIvan Ermilov
 
A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsDr. Neil Brittliff
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLMyungjin Lee
 
Web 3.0 & IoT (English)
Web 3.0 & IoT (English)Web 3.0 & IoT (English)
Web 3.0 & IoT (English)Peter Waher
 
Web 3.0 & io t (en)
Web 3.0 & io t (en)Web 3.0 & io t (en)
Web 3.0 & io t (en)Rikard Strid
 
The Semantic Web #5 - RDF (2)
The Semantic Web #5 - RDF (2)The Semantic Web #5 - RDF (2)
The Semantic Web #5 - RDF (2)Myungjin Lee
 

Similar to A hands on overview of the semantic web (20)

The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)
 
RDFauthor (EKAW)
RDFauthor (EKAW)RDFauthor (EKAW)
RDFauthor (EKAW)
 
Linked services
Linked servicesLinked services
Linked services
 
Usage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application ScenariosUsage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application Scenarios
 
Semantic web
Semantic web Semantic web
Semantic web
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n Bolts
 
Data in RDF
Data in RDFData in RDF
Data in RDF
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & Practice
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And Visualization
 
A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your Analytics
 
Web Spa
Web SpaWeb Spa
Web Spa
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQL
 
Technical Background
Technical BackgroundTechnical Background
Technical Background
 
Web 3.0 & IoT (English)
Web 3.0 & IoT (English)Web 3.0 & IoT (English)
Web 3.0 & IoT (English)
 
Web 3.0 & io t (en)
Web 3.0 & io t (en)Web 3.0 & io t (en)
Web 3.0 & io t (en)
 
eureka09
eureka09eureka09
eureka09
 
eureka09
eureka09eureka09
eureka09
 
The Semantic Web #5 - RDF (2)
The Semantic Web #5 - RDF (2)The Semantic Web #5 - RDF (2)
The Semantic Web #5 - RDF (2)
 
Metadata is back!
Metadata is back!Metadata is back!
Metadata is back!
 
Linked data and voyager
Linked data and voyagerLinked data and voyager
Linked data and voyager
 

More from Marakana Inc.

Android Services Black Magic by Aleksandar Gargenta
Android Services Black Magic by Aleksandar GargentaAndroid Services Black Magic by Aleksandar Gargenta
Android Services Black Magic by Aleksandar GargentaMarakana Inc.
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentMarakana Inc.
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMarakana Inc.
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical DataMarakana Inc.
 
Deep Dive Into Android Security
Deep Dive Into Android SecurityDeep Dive Into Android Security
Deep Dive Into Android SecurityMarakana Inc.
 
Pictures from "Learn about RenderScript" meetup at SF Android User Group
Pictures from "Learn about RenderScript" meetup at SF Android User GroupPictures from "Learn about RenderScript" meetup at SF Android User Group
Pictures from "Learn about RenderScript" meetup at SF Android User GroupMarakana Inc.
 
Android UI Tips, Tricks and Techniques
Android UI Tips, Tricks and TechniquesAndroid UI Tips, Tricks and Techniques
Android UI Tips, Tricks and TechniquesMarakana Inc.
 
2010 07-18.wa.rails tdd-6
2010 07-18.wa.rails tdd-62010 07-18.wa.rails tdd-6
2010 07-18.wa.rails tdd-6Marakana Inc.
 
Efficient Rails Test-Driven Development - Week 6
Efficient Rails Test-Driven Development - Week 6Efficient Rails Test-Driven Development - Week 6
Efficient Rails Test-Driven Development - Week 6Marakana Inc.
 
Graphicsand animations devoxx2010 (1)
Graphicsand animations devoxx2010 (1)Graphicsand animations devoxx2010 (1)
Graphicsand animations devoxx2010 (1)Marakana Inc.
 
What's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovationWhat's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovationMarakana Inc.
 
jQuery State of the Union - Yehuda Katz
jQuery State of the Union - Yehuda KatzjQuery State of the Union - Yehuda Katz
jQuery State of the Union - Yehuda KatzMarakana Inc.
 
Pics from: "James Gosling on Apple, Apache, Google, Oracle and the Future of ...
Pics from: "James Gosling on Apple, Apache, Google, Oracle and the Future of ...Pics from: "James Gosling on Apple, Apache, Google, Oracle and the Future of ...
Pics from: "James Gosling on Apple, Apache, Google, Oracle and the Future of ...Marakana Inc.
 
Efficient Rails Test Driven Development (class 4) by Wolfram Arnold
Efficient Rails Test Driven Development (class 4) by Wolfram ArnoldEfficient Rails Test Driven Development (class 4) by Wolfram Arnold
Efficient Rails Test Driven Development (class 4) by Wolfram ArnoldMarakana Inc.
 
Efficient Rails Test Driven Development (class 3) by Wolfram Arnold
Efficient Rails Test Driven Development (class 3) by Wolfram ArnoldEfficient Rails Test Driven Development (class 3) by Wolfram Arnold
Efficient Rails Test Driven Development (class 3) by Wolfram ArnoldMarakana Inc.
 
Learn about JRuby Internals from one of the JRuby Lead Developers, Thomas Enebo
Learn about JRuby Internals from one of the JRuby Lead Developers, Thomas EneboLearn about JRuby Internals from one of the JRuby Lead Developers, Thomas Enebo
Learn about JRuby Internals from one of the JRuby Lead Developers, Thomas EneboMarakana Inc.
 
Replacing Java Incrementally
Replacing Java IncrementallyReplacing Java Incrementally
Replacing Java IncrementallyMarakana Inc.
 
Learn to Build like you Code with Apache Buildr
Learn to Build like you Code with Apache BuildrLearn to Build like you Code with Apache Buildr
Learn to Build like you Code with Apache BuildrMarakana Inc.
 

More from Marakana Inc. (20)

Android Services Black Magic by Aleksandar Gargenta
Android Services Black Magic by Aleksandar GargentaAndroid Services Black Magic by Aleksandar Gargenta
Android Services Black Magic by Aleksandar Gargenta
 
JRuby at Square
JRuby at SquareJRuby at Square
JRuby at Square
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical Data
 
Deep Dive Into Android Security
Deep Dive Into Android SecurityDeep Dive Into Android Security
Deep Dive Into Android Security
 
Securing Android
Securing AndroidSecuring Android
Securing Android
 
Pictures from "Learn about RenderScript" meetup at SF Android User Group
Pictures from "Learn about RenderScript" meetup at SF Android User GroupPictures from "Learn about RenderScript" meetup at SF Android User Group
Pictures from "Learn about RenderScript" meetup at SF Android User Group
 
Android UI Tips, Tricks and Techniques
Android UI Tips, Tricks and TechniquesAndroid UI Tips, Tricks and Techniques
Android UI Tips, Tricks and Techniques
 
2010 07-18.wa.rails tdd-6
2010 07-18.wa.rails tdd-62010 07-18.wa.rails tdd-6
2010 07-18.wa.rails tdd-6
 
Efficient Rails Test-Driven Development - Week 6
Efficient Rails Test-Driven Development - Week 6Efficient Rails Test-Driven Development - Week 6
Efficient Rails Test-Driven Development - Week 6
 
Graphicsand animations devoxx2010 (1)
Graphicsand animations devoxx2010 (1)Graphicsand animations devoxx2010 (1)
Graphicsand animations devoxx2010 (1)
 
What's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovationWhat's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovation
 
jQuery State of the Union - Yehuda Katz
jQuery State of the Union - Yehuda KatzjQuery State of the Union - Yehuda Katz
jQuery State of the Union - Yehuda Katz
 
Pics from: "James Gosling on Apple, Apache, Google, Oracle and the Future of ...
Pics from: "James Gosling on Apple, Apache, Google, Oracle and the Future of ...Pics from: "James Gosling on Apple, Apache, Google, Oracle and the Future of ...
Pics from: "James Gosling on Apple, Apache, Google, Oracle and the Future of ...
 
Efficient Rails Test Driven Development (class 4) by Wolfram Arnold
Efficient Rails Test Driven Development (class 4) by Wolfram ArnoldEfficient Rails Test Driven Development (class 4) by Wolfram Arnold
Efficient Rails Test Driven Development (class 4) by Wolfram Arnold
 
Efficient Rails Test Driven Development (class 3) by Wolfram Arnold
Efficient Rails Test Driven Development (class 3) by Wolfram ArnoldEfficient Rails Test Driven Development (class 3) by Wolfram Arnold
Efficient Rails Test Driven Development (class 3) by Wolfram Arnold
 
Learn about JRuby Internals from one of the JRuby Lead Developers, Thomas Enebo
Learn about JRuby Internals from one of the JRuby Lead Developers, Thomas EneboLearn about JRuby Internals from one of the JRuby Lead Developers, Thomas Enebo
Learn about JRuby Internals from one of the JRuby Lead Developers, Thomas Enebo
 
Replacing Java Incrementally
Replacing Java IncrementallyReplacing Java Incrementally
Replacing Java Incrementally
 
Learn to Build like you Code with Apache Buildr
Learn to Build like you Code with Apache BuildrLearn to Build like you Code with Apache Buildr
Learn to Build like you Code with Apache Buildr
 

A hands on overview of the semantic web

  • 1. Alex Genadinik Shamod Lacoul Semantic Web Overview mage Source: http://www.e-clipsblog.co.uk/wp-content/semantic-web.jpg
  • 2. • What is the Semantic Web? • Why use the Semantic Web? • RDF for data representation • RDFS - data schemas (models) • SPARQL - RDF query language • RDFa • Linked Open Data • OWL - Web Ontology Language Outline
  • 3. Who is this person?
  • 4. Which Semantic Web? • Taxonomy • Linked Data • Ontology • Open Web • Reasoning • NLP • Ontologies • Sem Web for Biz • Smart Web • Smarter Applications • Improved Search • Machine Learning (A.I)
  • 5. Web vs. Semantic Web Web --> links documents to documents Semantic Web --> links data to data.
  • 6. Semantic Web Advantages Universal data representation (using RDF) Reusable data models (using RDF, RDFS, and OWL) W3C Standard query language (SPARQL) Information validation and classification (reasoners)
  • 7. Use Cases for Semantic Data Common Data Model • RDF is a universal data format • RDF data can be mapped to and from relational, XML and object models • Even better, execute SPARQL queries remotely to retrieve just the subset of data you need
  • 8. Uses of XML in RDF • RDF/XML is one type of RDF serialization • XSD datatypes • Namespaces mage Source: http://www.spycomponents.com/images/xml_at_work.gif
  • 9. Vocabulary: Namespace Namespace - a concept borrowed from XML PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> prefix -> rdf: namespace URI -> http://www.w3.org/1999/02/22-rdf-syntax-ns# <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> is the same as rdf:type
  • 10. Vocabulary: URI Universal Resource Identifier - a unique ID http://www.siliconvalley-codecamp.com/Sessions#SemWeb Namespace - http://www.siliconvalley-codecamp.com/Sessions#   Fragment Identifier - SemWeb
  • 11. What is RDF? A Universal Data Model consisting of statements: subject - predicate - object the set of RDF statements form a graph Informal example: ns1:myHouse ns2:hasColor pantone:chartreuse pantone:chartreuse pantone:redComponent "13"^^xsd:int pantone:chartreuse pantone:greenComponent "214"^^xsd:int
  • 12. This particular SVCC session (let's call it "SemWeb") has the title "A Hands-On Introduction to the Semantic Web" and the description "The Semantic Web is in its infancy ..." <http://www.siliconvalley-codecamp.com/sessions#SemWeb> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.siliconvalley-codecamp.com/rdfs#Sessions> has the <http://purl.org/dc/elements/1.1/title> of "A Hands-On Introduction to the Semantic Web"^^xsd:string and the <http://purl.org/dc/elements/1.1/description> of "The Semantic Web is in its infancy ..."^^xsd:string An RDF Example
  • 15. Other forms of RDF Serialization N3, TURTLE, N-Triple, etc. @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix svcc: <http://www.siliconvalley-codecamp.com/rdfs#> . <http://www.siliconvalley-codecamp.com/sesssions#SemWeb> a svcc:Session ; dc:description "The Semantic Web is in its infancy ..." ; dc:title "A Hands-On Introduction to the Semantic Web" ;
  • 16. RDF (Graph-based) != XML (Tree-based). RDF graphs represent information XML trees represent data RDF/XML serializes RDF RDF vs. XML
  • 17. • RDF statements are stored in RDF Repositories o Also called triple stores • Data can be accessed via: o SPARQL queries o API calls o Text searches RDF storage
  • 18. What is RDFS? a representation for defining schemas for RDF
  • 19. RDF Schema <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.siliconvalley-codecamp.com/rdfs"> <rdfs:Class rdf:ID="Session" /> <rdfs:Class rdf:ID="Speaker"> <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Person" /> </rdfs:Class> <rdf:Property rdf:ID="presenter"> <rdfs:domain rdf:resource="#Session" /> <rdfs:range rdf:resource="#Speaker" /> <rdfs:label>Presenter</rdfs:label> </rdf:Property> </rdf:RDF>
  • 20. RDFS: Classes and Properties Property Name rdf:type rdfs:subClassOf rdfs:subPropertyOf rdfs:domain rdfs:range rdfs:label rdfs:comment rdfs:member rdf:first rdf:rest rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdf:object rdf:predicateSource: http://www.w3.org/TR/rdf-schema/ Class Name rdf:List rdfs:ContainerMembershipProperty rdfs:Container rdf:Alt rdf:Seq rdf:Bag rdf:Statement rdfs:Datatype rdf:Property rdfs:Class rdf:XMLLiteral rdfs:Resource
  • 21. SPARQL • a W3C standard query language to fetch data from distributed Semantic Web data models (mainly, RDF and OWL) • a concept similar to SQL for Database • can query a triple-store (local RDF repository) or data on the Web (at a URL)
  • 22. SPARQL - a query language for RDF PREFIX svcc:<http://www.siliconvalley-codecamp.com/rdfs#> PREFIX dc:<http://purl.org/dc/elements/1.1/> PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT DISTINCT ?title ?presenter ?description WHERE { ?session rdf:type svcc:Session . ?session dc:title ?title . ?session svcc:presenter ?presenter . ?session dc:description ?description . }
  • 23. SPARQL - a query language for RDF PREFIX svcc:<http://www.siliconvalley-codecamp.com/rdfs#> PREFIX dc:<http://purl.org/dc/elements/1.1/> PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX fn: <http://www.w3.org/2005/xpath-functions#> SELECT ?title ?presenter ?description WHERE { ?session dc:title ?title . ?session svcc:presenter ?presenter . ?session dc:description ?description . FILTER (fn:string-length(?description) < 100) }
  • 24. SPARQL - a query language for RDF PREFIX svcc:<http://www.siliconvalley-codecamp.com/rdfs#> PREFIX dc: <http://purl.org/dc/elements/1.1/> CONSTRUCT { ?session svcc:abstract ?description } WHERE { ?session dc:description ?description . } LIMIT 2
  • 25. SPARQL - a query language for RDF PREFIX svcc: <http://www.siliconvalley-codecamp.com/rdfs#> PREFIX speaker: <http://www.siliconvalley- codecamp.com/speakers#> ASK { ?x svcc:presenter speaker:Shamod_Lacoul }
  • 26. Other SPARQL operations Operation DESCRIBE SPARQL/UPDATE - a query language to fulfill CRUD operations INSERT & DELETE WHERE operations OPTIONAL UNION ORDER BY DISTINCT REDUCED OFFSET LIMIT Reference Clause FROM FROM NAMED
  • 27. Linking Open Data (RDF) • 4.7 billion RDF triples • 142 million RDF links (as of May 2009) • LOD examples o DBPedia, Freebase o BBC, MusicBrainz, Flickr o SIOC, FOAF Copyright © 2009 Hewett Research, LLC
  • 28. Copyright © 2009 Hewett Research, LLC
  • 29. Questions about SPARQL or RDFa? See http://www.hewettresearch.com/svcc2009/ for related materials. Coming next: • OWL - Web Ontology Language • SWRL - Semantic Web Rule Language
  • 30. Web Ontology Language (OWL) An extension to RDF/RDFS to enable complex knowledge representations a language for defining and instantiating ontologies An OWL ontology may include descriptions of classes, properties and their instances. Based on Open-World Assumption - what is not known is not "untrue", just "unknown".
  • 31. Flavors of OWL ontologies OWL Lite - supports classification in hierarchies and simple constraints OWL DL - correspondence with Description Logics OWL Full - maximum expressiveness OWL 2 - (W3C Candidate Recommendation, June 2009) • OWL 2 EL - has computational guarantees • OWL 2 QL - maps to database technologies • OWL 2 RL - computationally efficient
  • 32. OWL: Classes and Properties Classes owl:Class rdfs:subClassOf Properties owl:ObjectProperty owl:DatatypeProperty rdfs:subPropertyOf rdfs:domain rdfs:range Property Charactersitic owl:TransitiveProperty owl:FunctionalProperty owl:inverseOf owl:InverseFunctionalPropertyProperty Restrictions owl:allValuesFrom owl:someValuesFrom owl:cardinality owl:hasValue Equivalence owl:equivalentClass owl:equivalentProperty owl:sameAs Complex Classes owl:intersectionOf owl:unionOf owl:complementOf NOTE: A subset of OWL Classes and Properties Source: http://www.w3.org/TR/owl-guide/
  • 33. Compare other models to SemWeb Models Database XML RDF OWL Expressiveness medium low medium high Accessibility low medium high high Inferencing low low medium high Flexibility low medium medium medium
  • 34. Advantages of RDF and OWL Expressiveness (explicit metadata) Inherently Distributed Easier data interchange Reasoning and Inferencing capabilities.
  • 35. Reasoning / Inferencing Both refer to ways of inferring more information than is in the asserted data model • Reasoning does two things: o Validates information:  domain & range of properties  valid subclasses & instances o Classifies instances based on their properties o Uses logic - usually first-order predicate logic • Inferencing uses explicit rules o typically domain-specific rules o SWRL and RIF are the W3C standard rule languages
  • 36. OWL example / demo See http://www.hewettresearch.com/svcc2009/ for related materials. Coming next: • SWRL - Semantic Web Rule Language • Useful tools, companies and links
  • 37. Semantic Web Tools Jena (O) Sesame (O) AllegroGraph (OC) Virtuoso (C) Protege (O) TopQuadrant (OC) Java libraries for RDF/OWL RDF Repositories (Triplestores) Semantic Web Editor O - Open Source C - Closed Source OC - Open & Closed OWLIM (OC)
  • 38. Popular Public Ontologies FOAF NCBO Dublin Core GoodRelations MusicBrainz
  • 40. Helpful References and Books • http://www.w3.org/2001/sw/BestPractices/Tutorials • http://www.w3.org/TR/rdfa-syntax/ • http://jena.sourceforge.net/documentation.html • http://protege.stanford.edu/publications/ontology_developmen • http://www.devx.com/semantic/Door/34578 • http://semanticweb.com • http://semanticuniverse.com/ • http://www.mkbergman.com/
  • 41. The END – Thank You!