Your SlideShare is downloading. ×

An Introduction to the Semantic Web

3,464

Published on

Published in: Technology, Education
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,464
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
127
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. An Introduction to the Semantic Web Dr. Harry Chen CMSC 491S/691S
  • 2. Agenda
    • What’s the Semantic Web?
    • Why is it important to the current Web?
    • Key technologies that underpin the Semantic Web research
    • Relating XML, RDF/RDFS, and OWL
  • 3. Revisiting Our Previous Discussion Slides from our class on Feb 6, 2008
  • 4. Who is reading your profile?
    • Both humans and machines
    Got it! Contact, school, favorites… HTML detected. But, what’s in the page? In order to help computer programs to better understand our profiles and social relationships, we need to express information in an explicit representation.
  • 5. A More Dramatic Example Adopted from Frank van Harmelen and Jim Hendler
  • 6. A typical HTML web page
  • 7. What it looks like to a machine
  • 8. Okay, so HTML is not helpful Maybe we can tell the machine what the different parts of the text represent? title time speaker location abstract biosketch host
  • 9. XML to rescue? XML fans propose creating a XML tag set to use for each application. For talks, we can choose <title>, <speaker>, etc. <title> <time> <speaker> <location> <abstract> <biosketch> <host> </host> </biosketch> </abstract> </location> </time> </speaker> </title>
  • 10. XML  machine accessible meaning But, to your machine, the tags still look like this…. The tag names carry no meaning. XML DTDs and Schemas have little or no semantics.              
  • 11. XML Schema helps
    • XML Schemas provide a simple mechanism to define shared vocabularies.
    <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;> <xs:element name=&quot;book&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;title&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;author&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;character&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;name&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;friend-of&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element name=&quot;since&quot; type=&quot;xs:date&quot;/> <xs:element name=&quot;qualification&quot; type=&quot;xs:string&quot;/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=&quot;isbn&quot; type=&quot;xs:string&quot;/> </xs:complexType> </xs:element> </xs:schema> XML Schema file                            
  • 12. But there are many schemas <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;> <xs:element name=&quot;book&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;title&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;author&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;character&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;name&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;friend-of&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element name=&quot;since&quot; type=&quot;xs:date&quot;/> <xs:element name=&quot;qualification&quot; type=&quot;xs:string&quot;/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=&quot;isbn&quot; type=&quot;xs:string&quot;/> </xs:complexType> </xs:element> </xs:schema> XML Schema file 42 <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;> <xs:element name=&quot;book&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;title&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;author&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;character&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;name&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;friend-of&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element name=&quot;since&quot; type=&quot;xs:date&quot;/> <xs:element name=&quot;qualification&quot; type=&quot;xs:string&quot;/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=&quot;isbn&quot; type=&quot;xs:string&quot;/> </xs:complexType> </xs:element> </xs:schema> XML Schema file 1               <title> <time> <speaker> <location> <abstract> <biosketch> <host> </host> </biosketch> </abstract> </location> </time> </speaker> </title>
  • 13. There’s no way to relate schema <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;> <xs:element name=&quot;book&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;title&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;author&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;character&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;name&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;friend-of&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element name=&quot;since&quot; type=&quot;xs:date&quot;/> <xs:element name=&quot;qualification&quot; type=&quot;xs:string&quot;/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=&quot;isbn&quot; type=&quot;xs:string&quot;/> </xs:complexType> </xs:element> </xs:schema> <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;> <xs:element name=&quot;book&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;title&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;author&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;character&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;name&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;friend-of&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element name=&quot;since&quot; type=&quot;xs:date&quot;/> <xs:element name=&quot;qualification&quot; type=&quot;xs:string&quot;/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=&quot;isbn&quot; type=&quot;xs:string&quot;/> </xs:complexType> </xs:element> </xs:schema> Either manually or automatically. XML Schema is weak on semantics. XML Schema file 42 XML Schema file 1               <title> <time> <speaker> <location> <abstract> <biosketch> <host> </host> </biosketch> </abstract> </location> </time> </speaker> </title>
  • 14. An Ontology level is needed We need a way to define ontologies in XML So we can relate them So machines can understand (to some degree) their meaning <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;> <xs:element name=&quot;book&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;title&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;author&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;character&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;name&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;friend-of&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element name=&quot;since&quot; type=&quot;xs:date&quot;/> <xs:element name=&quot;qualification&quot; type=&quot;xs:string&quot;/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=&quot;isbn&quot; type=&quot;xs:string&quot;/> </xs:complexType> </xs:element> </xs:schema> XML Ontology 256 imports imports = <>
    • Ontologies add
      • Structure
      • Constraints
      • mappings
    <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;> <xs:element name=&quot;book&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;title&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;author&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;character&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;name&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;friend-of&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element name=&quot;since&quot; type=&quot;xs:date&quot;/> <xs:element name=&quot;qualification&quot; type=&quot;xs:string&quot;/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=&quot;isbn&quot; type=&quot;xs:string&quot;/> </xs:complexType> </xs:element> </xs:schema> XML Ontology 1 <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;> <xs:element name=&quot;book&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;title&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;author&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;character&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;> <xs:complexType> <xs:sequence> <xs:element name=&quot;name&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;friend-of&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element name=&quot;since&quot; type=&quot;xs:date&quot;/> <xs:element name=&quot;qualification&quot; type=&quot;xs:string&quot;/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=&quot;isbn&quot; type=&quot;xs:string&quot;/> </xs:complexType> </xs:element> </xs:schema> XML Ontology 42
  • 15. What did we learn from the example?
    • In order for machines (intelligent Web applications) to understand the current Web, we need to provide an explicit representation of the content that is suitable for knowledge sharing and knowledge integration .
    • Ontology is something goes beyond XML and XML Schema
  • 16. The Semantic Web, a Brief History
  • 17. Origins
    • Tim Berners-Lee’s original 1989 WWW proposal described a web of relationships among named objects unifying many info. management tasks.
    • Capsule history
    • Guha’s MCF (~94)
    • XML+MCF  RDF (~96)
    • RDF+OO  RDFS (~99)
    • RDFS+KR  DAML+OIL (00)
    • W3C’s SW activity (01)
    • W3C’s OWL (03 -- present)
    http://www.w3.org/History/1989/proposal.html
  • 18. W3C’s Semantic Web Goals
    • Focus on machine consumption:
      • &quot;The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation.&quot;
      • -- Berners-Lee, Hendler and Lassila, The Semantic Web, Scientific American, 2001
  • 19. The Semantic Web Layer Cake Do you think this view is still valid in today’s Web?
  • 20. Some history up till 2003
  • 21. Latest in the Semantic Web
    • A recent article on the development of the Semantic Web since 2001.
    Online: http://www.docstoc.com/docs/document-preview.aspx?doc_id=271645 The Semantic Web in Action ; December 2007; Scientific American Magazine; by Lee Feigenbaum, Ivan Herman, Tonya Hongsermeier, Eric Neumann and Susie Stephens; 8 Page(s)
  • 22. Potentials in the Semantic Web Vision
    • Why some people are excited about the Semantic Web vision? IMHO…
      • A framework for sharing knowledge on the Web
      • Opens application data to the public Web
      • Allow hidden relationships to be described and inferred (think FOAF and XFN)
      • Data described using rich markup languages allows light-weight implementations of mashups
      • Focus on how to use the data, and not how data is stored.
  • 23. Ontology
  • 24. Ontology in Organized Societies
    • A dictionary is an ontology of sorts.
    • But, ordinary people seldom need or use a dictionary in everyday life.
    • Human organizations, like the EPA, do need to develop standards for terms and phrases
    • These typically give a specialized meaning that is unambiguous, different from and/or narrower than the ordinary interpretation.
    • These are usually given as a glossary or thesaurus of specialized terms
  • 25. Why is this Funny?
    • In “The analytical language of John Wilkins”*, Jorge Borges writes about a “certain Chinese encyclopaedia” that has the following categorization of animals:
    (i) frenzied, (j) innumerable, (k) drawn with a very fine camelhair brush, (l) et cetera, (m) having just broken the water pitcher, (n) that from a long way off look like flies. (a) belonging to the emperor, (b) embalmed, (c) tame, (d) sucking pigs, (e) sirens, (f) fabulous, (g) stray dogs, (h) included in the present classification, * http://agents.umbc.edu/misc/johnWilkins.html
  • 26. Ontology in Philosophy
    • Branch of metaphysics dealing with the nature of being
    • “ Ontology” is from the Greek ontos for being and logos for word
    • An ontology is a theory of what exists
    • It lets us experience, operate in, and talk about the world
    • As Plato put it, we need to “carve nature at its joints”
    • Successful communication requires a shared ontology
    Aristotle described an ontology of basic categories of predicates to des-cribe the world (Sowa, after Brentano)
  • 27. EPA’s “Terms of Environment”
  • 28. Ontology in Information Systems
    • An explicit formal specification of how to represent the objects, concepts and other domain entities and relationships among them.
    • Common examples: UML diagrams, Data dictionaries, DB schema, Conceptual Schemas, API descriptions, Knowledge Bases, etc.  
    • Ontologies provide an abstract conceptualization of information to be represented and a vocabulary of terms to use in the representation.
    • Interoperability between two systems requires them to share a common ontology.
  • 29. UML diagrams as Ontologies
  • 30. DB schemas as Ontologies
  • 31. Our Focus
    • We’re technologists, rather than philosophers or bureaucrats, so our focus is on IT and ontologies.
    • Making machine understandable ontologies
      • Exploring how they can be used
      • Exploring what “machine understandable” means
    • Supporting other uses of ontologies with IT
  • 32. Importance of Ontologies
    • An example of the importance of ontologies is the fate of NASA’s Mars Climate Orbiter
    • It crashed into Mars on 9/23/1999
    • JPL used metric units in the program controlling thrusters & Lockheed-Martin used imperial units.
    • Instead of establishing an orbit at an altitude of 140km, it did so at 60km, causing it to burn up in the Martian atmosphere.
    • A richer representation would have avoided this.
  • 33. Teach Ontology to Machines
  • 34. Let’s start with XML “ XML is Lisp's bastard nephew, with uglier syntax and no semantics. Yet XML is poised to enable the creation of a Web of data that dwarfs anything since the Library at Alexandria.” -- Philip Wadler, Et tu XML? The fall of the relational empire , VLDB, Rome, September 2001.
  • 35. Semantic Web Languages
    • RDF (Resource Description Framework)
    • OWL (Web Ontology Language)
  • 36. URIs are a foundation
    • URI ( Uniform Resource Identifier)
      • &quot;The generic set of all names/addresses that are short strings that refer to resources&quot;
      • URLs (Uniform Resource Locators) are a subset of URIs, used for resources that can be accessed on the web
    • URIs look like “normal” URLs, often with fragment identifiers to point to a document part:
      • http://foo.com/bar/mumble.html#pitch
    • URIs are unambiguous, unlike natural language terms
      • the web provides a global namespace
      • We assume references to the same URI are to the same thing
  • 37. 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://harry.hchen1.com/foaf.rdf
    • Properties themselves are also resources (URIs)
  • 38. The RDF Graphs
  • 39. RDF is the first SW language <rdf:RDF ……..> <….> <….> </rdf:RDF> XML Encoding Graph stmt(docInst, rdf_type, Document) stmt(personInst, rdf_type, Person) stmt(inroomInst, rdf_type, InRoom) stmt(personInst, holding, docInst) stmt(inroomInst, person, personInst) Triples RDF Data Model Good for Machine Processing Good For Human Viewing Good For Reasoning RDF is a simple language for building graph based representations
  • 40. RDF Schema (RDFS)
    • RDF Schema adds taxonomies for classes & properties
      • subClass and subProperty
    • and some metadata.
      • domain and range constraints on properties
  • 41.
    • Terms for classes
      • rdfs:Class
      • rdfs:subClassOf
    • Terms for properties
      • rdfs:domain
      • rdfs:range
      • rdfs:subPropertyOf
    • Special classes
      • rdfs:Resource
      • rdfs:Literal
      • rdfs:Datatype
    RDFS Vocabulary
    • Terms for collections
      • rdfs:member
      • rdfs:Container
      • rdfs:ContainerMembershipProperty
    • Special properties
      • rdfs:comment
      • rdfs:seeAlso
      • rdfs:isDefinedBy
      • rdfs:label
  • 42. RDF and RDF Schema <rdf:RDF xmlns:g=“http://schema.org/gen” xmlns:u=“http://schema.org/univ”> <u:Chair rdf:ID=“john”> <g:name>John Smith</g:name> </u:Chair> </rdf:RDF> <rdfs:Property rdf:ID=“name”> <rdfs:domain rdf:resource=“Person”> </rdfs:Property> <rdfs:Class rdf:ID=“Chair”> <rdfs:subclassOf rdf:resource= “ http://schema.org/gen#Person”> </rdfs:Class> u:Chair John Smith rdf:type g:name g:Person g:name rdfs:Class rdfs:Property rdf:type rdf:type rdf:type rdfs:subclassOf rdfs:domain
  • 43. RDFS supports simple inferences
    • An RDF ontology plus some RDF statements may imply additional RDF statements. This is not true of XML.
    • Note that this is part of the data model and not of the accessing or processing code.
    • @prefix rdfs: <http://www.....>.
    • @prefix : <genesis.n3>.
      • parent rdfs:domain person;
      • rdfs:range person.
      • mother rdfs:subProperty parent;
      • rdfs:domain woman;
      • rdfs:range person.
      • eve mother cain.
    parent a property. person a class. woman subClass person. mother a property. eve a person; a woman; parent cain. cain a person. New and Improved! 100% Better than XML!!
  • 44.
    • OWL released as W3C recommendation in 2004
      • http://www.w3.org/2001/sw/
    Web Ontology Language (OWL) OWL
  • 45. OWL  RDF
    • An OWL ontology is a set of RDF statements
    • Adds capabilities common to description logics
    • More support for ontologies
      • Ontology imports ontology, versioning, …
    • A complete OWL reasoning is significantly more complex than a complete RDFS reasoner.
  • 46. OWL Class Constructors borrowed from Ian Horrocks
  • 47. OWL Axioms borrowed from Ian Horrocks
  • 48. Summary
    • The Semantic Web vision is about making easier for machines to consume the “meanings” of the Web content.
      • Syntax and Semantic are two different thing!
    • Ontology and Artificial Intelligence underpins the existing Semantic Web research
    • RDF and OWL are latest SW languages for describing knowledge on the Web
  • 49. What we haven’t touched …
    • Building the Semantic Web: Where will the data come from? Who publishes the Semantic Web data?
    • How do we reason about the Web?
    • How do we query the Semantic Web?
    • How does the Semantic Web relate to the Social Web, mashups, tagging and Web development principles?
  • 50. Homework
    • Post one or more blogs that relate the Semantic Web to the Social Web
      • Topics include, but not limited to
        • Social Networks
        • Folksonomy and tagging
        • Mashups
        • Geospatial Web
        • Web Search
        • Data integration
        • Reasoning over the Semantic Web data

×