Semantic Web

advertisement
The Semantic Web
Schedule for this evening
• Review of the survey
– Summary. Discussion if wanted
• Some other ways to move content from
place to place
– FTP
– OAI – PMH
• Then, the Semantic Web
– An introduction to things to come
Survey
• Summary on Word document
• Responses and any comments
Other ways to move materials in
the Internet
• FTP – File Transfer Protocol
– One of the oldest of the Internet protocols
– Originally, command line interface
– Now, many GUI versions
• Host must run a server version that
listens on port 20 (default)
• Client requests a session, user logs in,
issues a sequence of commands
including get and put.
Brief demonstration
Open Archives Intiative
• Generally oriented toward sharing
information about resources in
collections accessible on the Internet
• There is a protocol for sharing
– Based on XML so we will look at that first
Semantic Web
• Semantics refers to meaning.
• The semantic web aims to have enough
information about a resource available that
a program can use resources as if the
program could understand what the
resources are.
– Of course, the program does not really
“understand” in the human sense.
– However, if it has enough information, it can
follow rules and behave in ways that are
consistent with understanding what it is
working with.
Markup
• HTML is a markup language
– not the first, by any means
• Tags in HTML give clues to the reader
(browser or other program) about what to
do in displaying or presenting the marked
text.
– emphasize, make stand out (like a title or
section head), break
– Some allowance for meta tags
• HTML has been stretched beyond its
original design
XML
• Simplified version of SGML
– Language for defining languages (markup
languages)
– HTML is now XHTML and is an XML
language
– XML allows you to make up your own
descriptive language
Metadata
• Critical part of the description of content
and resources
• What does metadata look like?
• Metadata is data about data
– Information about a resource, encoded in
the resource or associated with the
resource.
• The language of metadata: XML
– eXtensible Markup Language
XML
•
•
•
•
•
XML is a markup language
XML describes features
There is no standard XML
Use XML to create a resource type
Separately develop software to interact
with the data described by the XML
codes.
Source: tutorial at w3school.com
XML rules
• Easy rules, but very strict
• First line is the version and character set
used:
– <?xml version="1.0" encoding="ISO-8859-1"?>
• The rest is user defined tags
• Every tag has an opening and a closing
Element naming
• XML elements must follow these naming
rules:
– Names can contain letters, numbers, and other
characters
– Names must not start with a number or
punctuation character
– Names must not start with the letters xml (or XML
or Xml ..)
– Names cannot contain spaces
Elements and attributes
• Use elements to describe data
• Use attributes to present information
that is not part of the data
– For example, the file type or some other
information that would be useful in
processing the data, but is not part of the
data.
Repeating elements
• Naming an element means it appears
exactly once.
• Name+ means it appears one or more
times
• Name* means it appears 0 or more
times.
• Name? Means it appears 0 or one time.
Parts of an XML document
• Elements
The HTML
– The components of an XML document
examples are
– Some contain other parts, some are empty
familiar; the
• Ex in HTML: “br” or “table” in XML “ingredient” XML examples
• Attributes
are made up –
– Information about elements, not data
dependent on
• Ex in HTML “src=” in XML “scale=”
the specific XML
• Entities
scheme used
– Special characters or strings with pre-assigned meaning
• Ex in HTML &nbsp for non-breaking space
• PCDATA
– Parsed Character data: text that will be parsed and interpreted by
the reader. Tags and entities will be expanded and used in
presentation.
• CDATA
– Character data: text that will not be parsed and interpreted. It
will be displayed exactly as provided.
Using XML - an example
Define the fields of a recipe collection:
<?xml version="1.0" encoding="ISO-8859-1"?>
<recipe>
<recipe-title> </recipe-title>
<ingredient-list>
<ingredient>
<ingredient-amount> </ingredient-amount>
<ingredient-name> </ingredient-name>
</ingredient>
</ingredient-list>
<directions>
</directions>
</recipe>
ISO 8859 is a character set.
See http://www.bbsinc.com/iso8859.html
Processing the XML data
• How do we know what to do with the
information in an XML file?
– Document Type Definition (DTD)
• Put in the same file as the data -- immediate
reference
• Put a reference to an external description
• Provides the definition of the legitimate content
for each element
Document Type Definition
•
•
•
•
•
•
•
•
•
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE recipe [
<!ELEMENT recipe (recipe-title, ingredient-list, directions)>
Repeat 0 or
<!ELEMENT recipe-title (#PCDATA)>
more times
<!ELEMENT ingredient-list (ingredient)>
<!ELEMENT ingredient (ingredient-amount, ingredient-name)*>
<!ELEMENT ingredient-amount (#PCDATA)>
<!ELEMENT ingredient-name (#PCDATA)>
<!ELEMENT directions (#PCDATA)> ]>
<?xml version="1.0" encoding="ISO-8859-1"?>
External reference to DTD
<!DOCTYPE recipe SYSTEM “recipe.dtd”>
<recipe>
<recipe-title> Meringue cookies</recipe-title>
Not the way that I
<ingredient-list>
want to see a recipe in
<ingredient>
a magazine!
<ingredient-amount>3 </ingredient-amount>
<ingredient-name> egg whites</ingredient-name>
What could we
</ingredient> <ingredient>
do with a large
<ingredient-amount> 1 cup</ingredient-amount>
collection of
<ingredient-name> sugar</ingredient-name>
such entries?
</ingredient> <ingredient>
<ingredient-amount>1 teaspoon </ingredient-amount>
<ingredient-name> vanilla</ingredient-name>
How would we
</ingredient> <ingredient>
get the
<ingredient-amount>2 cups </ingredient-amount>
information
<ingredient-name>mini chocolate chips </ingredient-name>
entered into a
</ingredient>
collection?
</ingredient-list>
<directions>Beat the egg whites until stiff. Stir in sugar, then vanilla. Gently fold in
chocolate chips. Place in warm oven at 200 degrees for an hour. Alternatively, place in
an oven at 350 degrees. Turn oven off and leave overnight.
</directions>
</recipe>
Spot Check
• Design an XML schema for an
application of your choice. Keep it
simple.
• Examples -- address book, TV program
listing, DVD collection, …
• Work in pairs and discuss your choice
and your solution
• A paper with content encoded with XML:
Another example
http://tecfaseed.unige.ch/staf18/modules/ePBL/uploads/proj3/paper81.xml
• First few lines:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="ePBLpaper11.css" type="text/css"?>
<?xml-stylesheet href="ePBLpaper11.xsl" type="text/xsl"?>
<!DOCTYPE paper SYSTEM "ePBLpaper11.dtd">
<paper id="proj3">
<info>
<title>Standards E-learning and their possible support for a rich
pedagogic approach in a 'Integrated Learning' context</title>
<authors>
<author>
<firstname>Rodolophe</firstname>
<familyname>Borer</familyname>
<homepageurl>http://tecfa.unige.ch/perso/staf/borer/</homepageurl>
<email/>
</author>
</authors>
"ePBLpaper11.dtd” shown on next slide
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- _________ _____________________ -->
<!-- ePBL-project DTD for student project management
& specification -->
<!-- Copyright: (2004)
Paraskevi.Synteta@tecfa.unige.ch -->
<!-- http://tecfa.unige.ch/~paraskev/
-->
<!-- Daniel K. Schneider
-->
<!-- http://tecfa.unige.ch/tecfa-people/schneider.html-->
<!-- Created: 13/11/2002 (based on EVA_pm grammar) -->
<!-- Updated: 07/05/2004
-->
<!-- VERSIONS
-->
<!-- v1.1 Adaptations to use with Morphon xml editor
and addition of IDs-->
<!-- ____________________ -->
<!-- _ ENTITY DECLARATIONS ______ -->
<!ENTITY % foreign-dtd SYSTEM "ibtwsh6_ePBL.dtd">
%foreign-dtd;
<!ENTITY % id "id ID #IMPLIED">
<!-- ______ MAIN ELEMENT _________ -->
<!ELEMENT project (name, authors, date, updated,
goal, state-of-the-art, research-developmentquestions, methodology, workpackages ) >
<!ELEMENT name (#PCDATA )>
<!ELEMENT date (#PCDATA )>
<!ELEMENT authors (#PCDATA )>
<!ELEMENT updated (#PCDATA )>
<!ELEMENT goal (title, description )>
<!ELEMENT state-of-the-art %vert.model;>
<!ATTLIST state-of-the-art %id;>
<!ELEMENT research-development-questions (question
)+>
<!ELEMENT question (title, description )>
<!ELEMENT methodology %vert.model;>
<!ATTLIST methodology %id;>
<!ELEMENT workpackages (workpackage )+>
<!ELEMENT workpackage (planning, objectives,
deliverables )>
<!ATTLIST workpackage %id;>
<!ELEMENT objectives (objective )+>
<!ELEMENT objective (title, description )>
<!ELEMENT deliverables (deliverable )+>
<!ELEMENT deliverable (url, title, description )>
<!ELEMENT url (#PCDATA )>
<!ELEMENT planning (from, to, progress )>
<!ELEMENT from (#PCDATA )>
<!ELEMENT to (#PCDATA )>
<!ELEMENT progress (#PCDATA )>
<!-- ________________________ -->
<!ELEMENT title (#PCDATA )>
<!ATTLIST title %id;>
<!ELEMENT description %vert.model;>
<!-- _______________________ -->
Source: http://tecfa.unige.ch/staf/staf-j/vuilleum/staf18/p6/
No longer there
Resource sharing
• On your projects, you had to go looking for
the materials that you need
• You look at the site, see what is there,
consider how it could be used in your
project.
• On a large scale, that does not work so
well.
• It would be nice to query a site and ask
what is there that might be of interest to
us.
Distributed Resources
Multiple Services
One service provider gathers
Data provider
information about data and uses
it to provide services
Data provider
Data provider
Service provider -search, browse,
compare, etc.
Data provider
Data provider
Open Archives Initiative (OAI)
• Web-based
– Uses HTTP to communicate between sites
• Centralized server
– Services provided from a site that has
already gathered the information it needs
for those services from a distributed
collection of sites.
OAI PMH
• Interoperability through Metadata Exchange
• The Open Archives Initiative Protocol for
Metadata Harvesting (OAI-PMH) is a low-barrier
mechanism for repository interoperability. Data
Providers are repositories that expose structured
metadata via OAI-PMH. Service Providers then
make OAI-PMH service requests to harvest that
metadata. OAI-PMH is a set of six verbs or
services that are invoked within HTTP.
http://www.openarchives.org/pmh/
OAI PMH verbs
•
•
•
•
•
•
Identify
ListMetadataformats
ListSets
Listidentifiers
Listrecords
Getrecord
Open Archives Initiative Protocol for
Metadata Harvesting -- OAI-PMH
Implemented as CGI, ASP,
PHP, or other
OAI PMH defines an
interface between the
Harvester and any
number of
Repositories
OAI
OAI
HTTP resp
(XML)
Metadata
Provider
Any system may serve as a harvester, repository, or both
Harvester
Repository
HTTP req
(OAI verb)
Service
Provider
OAI - PMH components
Service
Providers and
Data Providers
Requests
and
Responses
http://www.oaforum.org/tutorial/english/page3.htm#section3
Records
• Metadata of a resource.
• Three parts
– Header (required)
•
•
•
•
Identifier (required: 1 only)
Datestamp (required: 1 only)
setSpec elements (optional: 0, 1, or more)
Status attribute for deleted item
– Metadata (required)
• XML encoded metadata with root tag, namespace
• Repositories must support Dublin Core, other formats
optional
– “About” statement (optional)
• Right statements
• Provenance statements
Dublin Core elements
see: http://dublincore.org/documents/dces/
•
•
•
•
•
•
•
•
Title
Entity primarily responsible for
Creator making content of the resource
Subject - C
Description
Entity making the resource
Publisher available
to content of
Contributor Contributor
the resource
Date YYYY-MM-DD, ex.
Ex: collection, dataset,
Type - C event, image
•
•
•
•
•
•
What is needed to
display or operate the
resource.
Format - C
Identifier Unambiguous ID
Source
Language Standards RFC 3066, ISO639
Relation Ref. to related resource
Coverage - C
Space, time, jurisdiction.
• Rights
Rights Management information
C = controlled vocabulary recommended.
Identifiers
• Globally unique identifier
• Valid URI
– Examples
• oai:<archiveId>:<recordId>
• oai:etd.vt.edu:etd-1234567890
– Must resolve to one item
• No duplicates
• No reuse of previously used identifiers
Datestamps
• Date of last modification of a record
– Used only for harvesting (meta metadata?)
• Mandatory for each item in the repository
• Two levels of granularity possible
– YYYY-MM-DD
– YYYY-MM-DDThh:mm:ssZ
• T … Z = Time zone -- must be GMT
• Allows harvesting incrementally -- get only
what is new since last visit
– Accessed by arguments from and until
The OAI-PMH verbs
• Each requests a specific response from a
data repository
•
•
•
•
Identify
Function: Description of the archive
Example: http://www.language-archives.org/cgi-bin/olaca3.pl?verb=Identify
Parameters: none
Errors/exceptions:
– badArgument (there should not be any)
• Response format:
Element
Example
Ordinality ‡
repositoryName
My Archive
1
baseURL
http://archive.org/oai
1
protocolVersion
2.0
1
earliestDatestamp
1999-01-01
1
deleteRecords
no, transient, persistent
1
granularity
YYYY-MM-DD, YYYY-MM-DDThh:mm:ssZ
1
adminEmail
oai-admin@archive.org
+
compression
deflate, compress
*
description
oai-identifier, eprints, friends, …
*
‡ Ordinality: 1 = mandatory, 1 only; + = mandatory, 1 only; * = optional, 0 or more
Actual response from
http://www.language-archives.org/cgi-bin/olaca3.pl?verb=Identify
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2011-11-13T02:01:52Z</responseDate>
<request verb="Identify">http://www.language-archives.org/cgi-bin/olaca3.pl</request>
<Identify>
<repositoryName>OLAC Aggregator</repositoryName>
<baseURL>http://www.language-archives.org/cgi-bin/olaca3.pl</baseURL>
<protocolVersion>2.0</protocolVersion>
<adminEmail>haejoong@ldc.upenn.edu</adminEmail>
<earliestDatestamp>1900-01-01</earliestDatestamp>
<deletedRecord>no</deletedRecord>
<granularity>YYYY-MM-DD</granularity>
<!-- maybe later <compression>identity</compression> -->
<description>
<oai-identifier xmlns="http://www.openarchives.org/OAI/2.0/oai-identifier"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai-identifier
http://www.openarchives.org/OAI/2.0/oai-identifier.xsd">
Continued
<scheme>oai</scheme>
<repositoryIdentifier>OLACA.language-archives.org</repositoryIdentifier>
<delimiter>:</delimiter>
<sampleIdentifier>oai:ethnologue.com:aaa</sampleIdentifier>
</oai-identifier>
</description>
<description>
<olac-archive xmlns="http://www.language-archives.org/OLAC/1.1/olac-archive"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" type="institutional"
xsi:schemaLocation="http://www.language-archives.org/OLAC/1.1/olac-archive
http://www.language-archives.org/OLAC/1.1/olac-archive.xsd" currentAsOf="2011-10-31">
<archiveURL>http://www.language-archives.org/archive_records/</archiveURL>
<participant name="Steven Bird" role="Curator" email="sb@csse.unimelb.edu.au"/>
<participant name="Gary Simons" role="Curator" email="Gary_Simons@sil.org"/>
<participant name="Haejoong Lee" role="Administrator"
email="haejoong@ldc.upenn.edu"/>
<institution>Open Language Archives Community</institution>
<institutionURL>http://www.language-archives.org/</institutionURL>
<shortLocation>Philadelphia, U.S.A.</shortLocation>
<location/>
Continued
<synopsis>
This repository contains all records from OLAC-registered archives. It is intended to be
used by services which do not want to harvest individual OLAC archives.
</synopsis>
<access>
Metadata may be used only subject to the access permissions given by the individual
archives.
</access>
</olac-archive>
</description>
</Identify>
</OAI-PMH>
ListMetadataFormats
• Function: retrieve available metadata formats
from archive
• Example: archive.org/oai-script?verb=ListMetadataFormats&
•
identifier=oai:HUBerlin.de:3000218
• Parameters: identifier (optional)
• Errors/exceptions:
– badArgument
– idDoesNotExist
– noMetadataFormats
Response to http://www.language-archives.org/cgi-bin/
olaca3.pl?verb=ListMetadataFormats
− <OAI-PMH xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2006-10-17T01:58:06Z</responseDate>
<request verb="ListMetadataFormats">http://www.language-archives.org/cgibin/olaca3.pl</request>
− <ListMetadataFormats>
− <metadataFormat>
<metadataPrefix>olac</metadataPrefix>
<schema>http://www.language-archives.org/OLAC/1.0/olac.xsd</schema>
<metadataNamespace>http://www.languagearchives.org/OLAC/1.0/</metadataNamespace>
</metadataFormat>
− <metadataFormat>
<metadataPrefix>olac_display</metadataPrefix>
<schema>http://www.language-archives.org/OLAC/1.0/olac.xsd</schema>
<metadataNamespace>http://www.languagearchives.org/OLAC/1.0/</metadataNamespace>
</metadataFormat>
− <metadataFormat>
<metadataPrefix>oai_dc</metadataPrefix>
<schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
<metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNa
mespace>
</metadataFormat>
</ListMetadataFormats>
</OAI-PMH>
ListSets
• Function: retrieve set structure of a repository
• Example: archive.org/oai-script?verb=ListSets
• Parameters: resumptionToken (exclusive)
• Errors/exceptions:
– badArgument
– badResumptionToken
– noSetHierarchy
Sets are optional and are used to divide a
repository into separate units that will be of
interest to different harvesters.
ListIdentifiers
• Function: abbieviated form of ListRecords, retrieve only
headers
• Example: archive.org/oai-script?verb=ListIdentifiers&metadataPrefix=
oai_dc&from=2002-12-01
• Parameters:
–
–
–
–
–
from (optional)
until (optional)
metadataPrefix (required)
set (optional)
resumptionToken (exclusive)
• Errors/exceptions:
–
–
–
–
–
badArgument
badResumptionToken
cannotDisseminateFormat
noRecordsMatch
noSetHierarchy
ListRecords
• Function: harvest records from a repository
• Example: archive.org/oai-script?verb=ListRecords&
metadataPrefix=oai_dc&set=biology
• Parameters:
– from (optional)
– until (optional)
– metadataPrefix (required)
– set (optional)
– resumptionToken (exclusive)
• Errors/exceptions:
–
–
–
–
–
badArgument
badResumptionToken
cannotDisseminateFormat
noRecordsMatch
noSetHierarchy
GetRecord
• Function: retrieve an individual metadata record
from a repository
• Example:
archive.org/oai-script?verb=GetRecord&identifier=oai:HUBerlin.de:
3000218 &metadataPrefix=oai_dc
• Parameters:
– Identifier (required)
– metadataPrefix (required)
• Errors/exceptions:
– badArgument
– cannotDisseminateFormat
– idDoesNotExist
Interoperability
• The goal: communication, without human
intervention, between information sources
– Books that “talk to each other”
• Live links for references
• Knowledge of how to find relevant resources
when needed
• Ability to query other information locations
Protocols
• Precise rules for interactions between
independent processes
– Format of the messages
• Both structure and content
– Specified behavior in response to specific messages
• Many ways to accomplish the same result, but
both sides must have the same understanding
of the rules of engagement.
Spot Check
• Make up a protocol
• Suppose we wanted a kind of command and
control protocol so that a master site could
cause a satellite site to clear the screen that is
displayed to the web.
• We want the response to be prompt
• We want the satellite site to confirm receipt of
the command and to notify the master when
the site screen has been cleared.
• It should be possible to accomplish this with
messages between the two sites and an action
at the satellite site.
The Semantic Web
• Some of these slides come from Lee
Giles
– Who, in turn, credits Jim Hendler, Carl
Lagoze, Jayavel Shanmugasundaram, Sara
Cohen, Jonathan Mamou, Yaron Kanza,
Mark Sapossnek, Yehoshua Sagiv, Frank van
Harmelen
Beyond XML
• Building with XML, new languages have
emerged to
– Describe content, and things in general
– Relationships between things
– Attributes (characteristics) of things
• The semantic web requires that things
be described in sufficient detail that
autonomous processes can discover
useful things and use them properly
Motivation for the Semantic Web
• Search engines
• concepts, not keywords
• semantic narrowing/widening of queries
• Shopbots
• semantic interchange, not screenscraping
• E-commerce
– Negotiation, catalogue mapping, personalization
• Web Services
– Need semantic characterizations to find them
• Navigation
• by semantic proximity, not hardwired links
• .....
Example
• Try these queries with Google:
– Distance between Paris and Madrid Google returns:
Distance between Madrid spain and Paris france
www.mapcrow.info/Distance_between_Madrid_SP_and_Paris_FR.html
COORDINATES +. TOTAL DISTANCE. Madrid, SP, -3.6833 40.4000. Paris, FR, 2.3333
48.8667. Miles: 654.57. Kilometers: 1053.40. Bearing: NE. Madrid, SPAIN ...
– (The) Largest city of France
• Google returns: France – Largest City: Paris
– (The) Largest city of Spain
• Google returns: Spain – Largest City: Madrid
• Now, try these with Google:
– Distance between largest city of France and largest city of Spain
– Distance between “largest city of France” and “largest city of
Spain”
– And worst, Distance between “the largest city of France” and
“the largest city of Spain” – No result returned by Google!
• Actually now shows a link to several versions of these slides!
Semantic Web Stack
http://www.w3.org/DesignIssues/diagrams/sw-stack-2005.png
RDF and OWL
• Resource Description Framework (RDF)
• Web Ontology Language (OWL)
So why not just use XML?
• No agreement on:
– structure
• is country a:
– object?
– class?
– attribute?
– relation?
– something
else?
• what does
nesting mean?
– vocabulary
• is country the
same as
nation?
<country name=”Netherlands”>
<capital name=”Amsterdam”>
<areacode>020</areacode>
</capital>
</country>
<nation>
<name>Netherlands</name>
<capital>Amsterdam</capital>
<capital_areacode>
020
</capital_areacode>
</nation>
Are the above XML documents the same?
● Do they convey the same information?
● Is that information machine-accessible?
●
“2nd aim of Semantic Web”:
Data integration
– Unstructured and sensors, programs,
services semi-structured sources (document
collections, message traffic, web pages, ...)
– Structured data without an explicit data
schema (non-local databases, data tables,
charts and reports, ...)
– Non-Text collections (image, video, sound, ...)
– Streams of data
Must specify the structure of data resources..
2nd aim of Semantic Web:
Data integration
... so a processor can tell how the
"attributes" and "values" are related
– What is required vs. optional?
– How many values for a particular attribute?
– What attributes are keys for other
attributes?
– Which attributes are necessarily related to
other attributes and in what way??
– How do the attributes (and values) in one
data source map to attributes and values
describing another source?
Stack of languages
• XML:
– Surface syntax, no semantics
• XML Schema:
– Describes structure of XML documents
• RDF:
– Datamodel for “relations” between “things”
• RDF Schema (RDFS):
– RDF Vocabulary Definition Language
• OWL:
– A more expressive
Vocabulary Definition Language
Semantic web languages today
• Today there are three semantic web
languages
– RDF – Resource Description Framework
http://www.w3.org/RDF/
– DAML+OIL – Darpa Agent Markup Language
http://www.daml.org/ (deprecated)
– OWL – Ontology Web Language
http://www.w3.org/2001/sw/
• OWL lit
• OWL DL
• OWL Full
RDF is the first Semantic Web
language
Graph
XML Encoding
<rdf:RDF ……..>
<….>
<….>
</rdf:RDF>
Good for
Machine
Processing
RDF
Data Model
Good For
Human
Viewing
Triples
stmt(docInst, rdf_type, Document)
stmt(personInst, rdf_type, Person)
stmt(inroomInst, rdf_type, InRoom)
stmt(personInst, holding, docInst)
stmt(inroomInst, person, personInst)
Good For
Reasoning
RDF is a simple
language for building
graph based
representations
The RDF Data Model
• An RDF document is an unordered collection of
statements, each with a subject, predicate and object (aka
triples)
• A triple can be thought of as a labelled arc in a graph
• Statements describe properties of web resources
• A resource is any object that can be pointed to by a URI:
–
–
–
–
–
a document, a picture, a paragraph on the Web, …
E.g., http://umbc.edu/~ypeng/F07671.html
a book in the library, a real person (?)
isbn://5031-4444-3333
…
• Properties themselves are also resources (URIs)
RDF without a Schema
• Object ->Attribute-> Value triples
pers05
Author-of
ISBN...
• objects are web-resources
• Value is again an Object:
• triples can be linked
• data-model = graph
pers05
Author-of
ISBN...
ISBN...
Publby
MIT
What does RDF Schema add?
• Defines vocabulary for RDF
• Organizes this vocabulary in a
typed hierarchy
• Class, subClassOf, type
• Property, subPropertyOf
• domain, range
Person
subClassOf
Author
domain
communicatesTo
type
Frank
subClassOf
range
Reader
type
communicatesTo
Lynda
Which Semantic Web?
• Version 1:
"Semantic Web as Web of Data" (TBL)
• recipe:
expose databases on the web,
use XML, RDF, integrate
• metadata from:
– expressing DB schema semantics
in machine interpretable ways
• enable integration and unexpected re-use
Which Semantic Web?
• Version 2:
“Enrichment of the current Web”
• recipe:
Annotate, classify, index
• metadata from:
– automatically producing markup:
named-entity recognition,
concept extraction, tagging, etc.
• enable personalization, search, browse,..
Which Semantic Web?
• Version 1:
“Semantic Web as Web of Data”
• Version 2:
“Enrichment of the current Web”
 Different use-cases
 Different techniques
 Different users
The Evolving Web
Web of
Knowledge
DATA/PROGRAMS
Proof, Logic and
Ontology Languages
Shared terms/terminology
Machine-Machine communication
2010
Resource Description Framework
eXtensible Markup Language
HyperText Markup Language
HyperText Transfer Protocol
Self-Describing Documents
2000
DOCUMENTS
Foundation of the Current Web
1990
Berners-Lee, Hendler; Nature, 2001
Download