![Page 1: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/1.jpg)
NONOSQL Architecture Patterns for Semantic Web Applications
Brian Panulla
Penn State Web 2011 Conference
![Page 2: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/2.jpg)
Twitter: @bpanulla
(c)2010 Google, Imagery (c)2010 TerraMetrics, NASA, Map data (c)2010 Europa Technologies, Google, INEGI, AND
![Page 3: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/3.jpg)
Three things the Semantic Web is not(mostly)
![Page 4: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/4.jpg)
1. Semantic HTML
![Page 5: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/5.jpg)
2. Warmed-over AI
http://www.movieprop.com/tvandmovie/terminator/t3endoskeletons1.jpg
![Page 6: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/6.jpg)
3. Magic
http://bostonist.com/attachments/Anna%20Edwards/109-gob-magic2.jpg
![Page 7: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/7.jpg)
Who cares?
![Page 8: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/8.jpg)
http://xkcd.com/773/
SemanticWeb
![Page 9: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/9.jpg)
On NoSQL...
![Page 10: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/10.jpg)
![Page 11: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/11.jpg)
NoSQL: Key/Value and Graphs
![Page 12: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/12.jpg)
On Linked Data...
![Page 13: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/13.jpg)
![Page 14: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/14.jpg)
When things go wrong
![Page 16: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/16.jpg)
Linked Data - 2008
http://richard.cyganiak.de/2007/10/lod/ Last updated: 2010-09-22
![Page 17: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/17.jpg)
Technology Primer
![Page 18: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/18.jpg)
RDF: Framework for knowledge representation
Declares resources
Specifies properties of resources
W3C standard since 1999
http://www.w3.org/RDF/
![Page 19: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/19.jpg)
What is a Resource?
Everything on the web (or not) is a resource.
Uniform
Resource
Locator
![Page 20: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/20.jpg)
RDF is not XML
...but occasionally dresses up like it
XML N-Triples N3 Turtle JSON RDFa
in HTML ...
![Page 21: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/21.jpg)
URIs
Resources are identified by a Uniform Resource Identifier (URI)
Can be found in your XHTML DTD and html tag’s xmlns attribute:
![Page 22: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/22.jpg)
URIs
... Are not necessarily URLs
http://webconference.psu.edu
http://brian.panul.la
http://alumni.psu.edu/brian.panulla
![Page 23: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/23.jpg)
Triples
RDF is expressed as triples of URIs: subject (“Penn State”) - resource predicate (”is a") - property object (”University”) - resource
PennState
University
Is a
![Page 24: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/24.jpg)
Triples
Another example: subject (“Brian Panulla”) predicate (”presented at") object (”psuweb11”)
BrianPanulla psuweb11
presented At
![Page 25: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/25.jpg)
Triples to Graphs
BrianPanulla
PSUWEB11
pres
ente
d At
PennState
University
Is aattended
PortlandState
Is a
Is in
Is located in
Held At
City ofPortland
Is inState ofOregon
UnitedStates ofAmerica
Is in
NorthAmerica
Is in
Canada
Mem
ber
of
Mem
ber
of
NATO
State ofWashington
Is in
borders
borders
State ofCalifornia
Is in
![Page 26: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/26.jpg)
RDF Schemas
RDFS provides limited Set Theory features subClassOf subPropertyOf Domain Range
Think of classes in RDFS as sets rather than OOP classes
![Page 27: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/27.jpg)
Ontologies
Ontology is the study of being or reality.
A Formal Ontology is a specification of a conceptualization (Gruber, 1995)
Aristotle
![Page 28: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/28.jpg)
Defining an ontology
Web Ontology Language (OWL)
Version 2.0(October
2009)
http://www.w3.org/TR/owl2-overview/
Yes, rly.
![Page 29: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/29.jpg)
Some RDFS/OWL Features Classes
Sub-class Equivalent Classes Disjoint Classes Cardinality
constraints (max/min)
Individuals Same Individual
Properties Sub-property Equivalent Inverse Symmetric Transitive
![Page 30: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/30.jpg)
Protégéhttp://protege.stanford.edu/
![Page 31: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/31.jpg)
Triple Stores
Graph database that knows RDF
Quad Stores: triple store that includes provenance
“where did the data come from?”
Various stores provide Transactional / non-Transactional In-Memory / File system / RDBMS storage
![Page 32: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/32.jpg)
Popular Triple Stores
HP/Apache Jena Pellet Reasoner Storage▪ In memory▪ RDBMS (transactions)▪ Filesystem storage (high performance)
Open Source
![Page 33: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/33.jpg)
Popular Triple Stores
Franz AllegroGraph (server)Virtuoso Universal Server (server)Mulgara (RESTful service, OSS)Redland (C, Obj-C)
New Stardog - Integrated reasoning database RDFa API -
https://github.com/webr3/rdf.js
![Page 34: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/34.jpg)
Semantic Web Architecture
![Page 35: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/35.jpg)
Del.icio.us
![Page 36: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/36.jpg)
OMNOMino.us
![Page 37: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/37.jpg)
Basic Requirements
Information People Bookmarks Tags
Functionality Create an account Add a bookmark Delete a bookmark Browse other users’
bookmarks
![Page 38: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/38.jpg)
Logical Schema
![Page 39: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/39.jpg)
Relational DB - Physical Schema
![Page 40: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/40.jpg)
Modeling in RDF
Minimize artificial entitiesRe-use existing schemas or
ontologies
![Page 41: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/41.jpg)
Useful Schemas
DUBLIN CORE METADATA INITIATIVE (DCMI)
FRIEND-OF-A-FRIEND(FOAF)
![Page 42: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/42.jpg)
DMCI
![Page 43: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/43.jpg)
FOAF
Well-defined ontology for people, organizations, and social networks
![Page 44: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/44.jpg)
FOAF
![Page 45: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/45.jpg)
RDF Data Model - Member foaf:Person
foaf:fullname foaf:nickname foaf:mbox
foaf:openid
Literal (“datataype”)properties
Resource (“object”)property
![Page 46: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/46.jpg)
RDF Data Model - Bookmark foaf:Document
dct:title dct:description dct:created dct:modified
foaf:page foaf:topic
Literal (“datataype”)properties
Resource (“object”)properties
![Page 47: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/47.jpg)
Topics from DBPedia
Semantified Wikipedia
![Page 48: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/48.jpg)
Custom properties and classes
omnom:bookmarkedhttp://omnomino.us/ontology/
om.n3#bookmarked
foaf:Person
foaf:Document
omnom:bookmarked
![Page 49: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/49.jpg)
Custom properties and classes
omnom:Member
foaf:Person
rdfs:subClassOf
omnom:Resource
foaf:Document
rdfs:subClassOf
![Page 50: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/50.jpg)
RDF Data Model
![Page 51: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/51.jpg)
SPARQL
Graph query languageRead-only (1.0)
Safe to expose endpoint to Web SPARQL 1.1 adds updates
![Page 52: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/52.jpg)
A Simple SPARQL Example
SELECT ?subj ?pred ?objWHERE {
?subj ?pred ?obj.}
Demo
![Page 53: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/53.jpg)
SPARQL Query Types
SELECT – Returns tuples matching specified pattern
ASK – yes or no (tests for existence)
CONSTRUCT – Returns a graph
DESCRIBE – Returns a graph determined by the query engine
![Page 54: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/54.jpg)
SPARQL Examples: ASK
ASK {?uri foaf:openid <http://brian.panul.la>.
}
![Page 55: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/55.jpg)
SPARQL Examples: Member
SELECT DISTINCT ?uri ?fullname ?nickname ?emailWHERE {
?uri a omnom:Member.OPTIONAL {
?uri foaf:name ?fullname; foaf:nick ?nickname; foaf:mbox ?email.}
FILTER (?uri = <http://omnomino.us/member/24601>)
![Page 56: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/56.jpg)
SPARQL Example: Bookmarks
![Page 57: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/57.jpg)
Updates via API
![Page 58: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/58.jpg)
The Good:
Domains where schemas/models change rapidly or data is sparse
Semantics of relational model inadequate (e.g. inferencing, inheritance)
Domains emphasizing relationships Social networks Taxonomies
![Page 59: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/59.jpg)
The Bad:
WEAKNESSES
Bad for opaque objects with few relationshps
Large sets of homogenous objects
ALTERNATIVES
RDBMS NoSQL
Document DBs Key/Value Stores Graph databases
![Page 60: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/60.jpg)
Linked Data
Publish/Syndicate complete information sets
Embedded explicit semantics, unique identifiers
Have minimal impact to other Web information publishing
May be static or dynamically generated
![Page 61: Architecture Patterns for Semantic Web Applications](https://reader030.vdocuments.us/reader030/viewer/2022012916/555069f8b4c9052d158b4611/html5/thumbnails/61.jpg)
Resources
Semantic Web Programming - John Hebeler, Matthew Fisher, Ryan Blace, and Andrew Perez-Lopez
Semantic Web for the Working Ontologist: Effective Modeling in RDFS and OWL -Dean Allemang and James Hendler
Programming the Semantic Web by Toby Segaran, Colin Evans, and Jamie Taylor