1 / 81

INF5120 ”Modellbasert Systemutvikling” ”Modelbased System development”

INF5120 ”Modellbasert Systemutvikling” ”Modelbased System development”. Lecture 11 (part 2): 04.04.2011 MDI I, Part II: Semantic Web. Agenda. Semantic Web Intro RDF, RDFS, and SPARQL Tool support for RDF/RDFS Conclusions. World Wide Web ("WWW" or simply the "Web").

Télécharger la présentation

INF5120 ”Modellbasert Systemutvikling” ”Modelbased System development”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INF5120”Modellbasert Systemutvikling””Modelbased System development” Lecture 11 (part 2): 04.04.2011 MDI I, Part II: Semantic Web

  2. Agenda • Semantic Web • Intro • RDF, RDFS, and SPARQL • Tool support for RDF/RDFS • Conclusions

  3. World Wide Web ("WWW" or simply the "Web") • “A system of interlinked, hypertext documents that runs over the Internet. With a Web browser, a user views Web pages that may contain text, images, and other multimedia and navigates between them using hyperlinks” http://en.wikipedia.org/wiki/World_Wide_Web • The success of WWW is based on three simple principles: • A simple and uniform addressing schema to indentify information chunks i.e. Uniform Resource Identifiers (URIs) • A simple and uniform representation formalism to structure information chunks allowing browsers to render them i.e. Hyper Text Markup Language (HTML) • A simple and uniform protocol to access information chunks i.e. Hyper Text Transfer Protocol (HTTP)

  4. Semantic Web (SW) • “An extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation.” (T. Berners-Lee, J. Hendler, O. Lassila, “The Semantic Web”, Scientific American, May 2001) • Semantic Web is about: • Web Data Annotation • connecting (syntactic) Web objects, like text chunks, images, … to their semantic notion (e.g., this image is about Oslo, Arne J. Berre is a professor) • Data Linking on the Web (Web of Data) • global networking of knowledge through URI, RDF, and SPARQL (e.g., connecting my calendar with my rss feeds, my pictures, ...) • Data Integration over the Web • seamless integration of data based on different conceptual models (e.g., integrating data coming from my two favorite book sellers)

  5. Linked Data http://linkeddata.org/ • A term used to describe a recommended best practice for exposing, sharing, and connecting pieces of data, information, and knowledge on the Semantic Web using URIs and RDF

  6. Data linking on the Web principles • Use URIs as names for things • anything, not just documents • you are not your homepage • information resources and non-information resources • Use HTTP URIs • globally unique names, distributed ownership • allows people to look up those names • Provide useful information in RDF • when someone looks up a URI • Include RDF links to other URIs • to enable discovery of related information

  7. Data integration over the Web • Data integration involves combining data residing in different sources and providing user with a unified view of these data • Data integration over the Web can be implemented as follows: • Export the data sets to be integrated as RDF graphs • Merge identical resources (i.e. resources having the same URI) from different data sets • Start making queries on the integrated data, queries that were not possible on the individual data sets.

  8. Data integration over the Web • Export first data set as RDF graph For example the following RDF graph contains information about book “The Glass Palace” by Amitav Ghosh http://www.w3.org/People/Ivan/CorePresentations/SWTutorial/Slides.pdf

  9. Data integration over the Web • Export second data set as RDF graph Information about the same book but in French this time is modeled in RDF graph below http://www.w3.org/People/Ivan/CorePresentations/SWTutorial/Slides.pdf

  10. Data integration over the Web • Merge identical resources (i.e. resources having the same URI) from different data sets Same URI = Same resource http://www.w3.org/People/Ivan/CorePresentations/SWTutorial/Slides.pdf

  11. Data integration over the Web • Merge identical resources (i.e. resources having the same URI) from different data sets http://www.w3.org/People/Ivan/CorePresentations/SWTutorial/Slides.pdf

  12. Data integration over the Web • Start making queries on the integrated data • A user of the second dataset may ask queries like: “give me the title of the original book” • This information is not in the second dataset • This information can be however retrieved from the integrated dataset, in which the second dataset was connected with the the first dataset

  13. Semantic Web Architecture Adapted from http://en.wikipedia.org/wiki/Semantic_Web_Stack

  14. UNICODE, URI and XML • UNICODE is the standard international character set • E.g. used to encode the data in the repository • Uniform Resource Identifiers (URIs) identify things and concepts • E.g. used to indentify resources on the Web and in the repository • eXtensible Markup Language (XML) is a markup language used for data exchange • E.g. format that can be wrapped into RDF and imported into the repository

  15. RDF, RDFS and OWL • Resource Description Framework (RDF) is the HTML of the Semantic Web • Simple way to describe resources on the Web • Based on triples <subject, predicate, object> • Various serializations, including one based on XML • A simple ontology language (RDFS) • E.g. language used to store the data in the repository • Web Ontology Language (OWL) is a more complex ontology language than RDFS • Layered language based on DL • Overcomes some RDF(S) limitations • E.g. ontology language used to define the schemas used in the repository

  16. SPARQL and Rule Languages • SPARQL • Query language for RDF triples • A protocol for querying RDF data over the Web • E.g. language used to query the repository from the user interface • Rule languages (esp. Rule Interchange Format RIF) • Extend ontology languages with proprietary axioms • Based on different types of logics • Description Logic • Logic Programming • E.g. used to enable reasoning over data to infer new knowledge

  17. RDF Basics • RDF is a language that enable to describe making statements on resources • John is father of Bill • Statement (or triple) as a logical formula P(x, y), where the binary predicate P relates the object x to the object y • Triple data model: <subject, predicate, object> • Subject: Resource or blank node • Predicate: Property • Object: Resource (or collection of resources), literal or blank node • Example: <ex:john, ex:father-of, ex:bill> • RDF offers only binary predicates (properties)

  18. Resources • A resource may be: • Web page (e.g. http://www.w3.org) • A person (e.g. http://www.w3.org/People/Berners-Lee/) • A book (e.g. urn:isbn:0-345-33971-1) • Anything denoted with a URI! • A URI is an identifier and not a location on the Web • RDF allows making statements about resources: • http://www.w3.orghas the format text/html • urn:isbn:0-345-33971-1has author Tolkien

  19. Literals • Plain literals • E.g. ”any text” • Optional language tag, e.g. ”Hello, how are you?”@en-GB • Typed literals • E.g. "hello"^^xsd:string, "1"^^xsd:integer • Recommended datatypes: • XML Schema datatypes • Only as object of a triple, e.g.: <http://example.org/#john>, <http://example.org/#hasName>, ”John Smith”ˆˆxsd:string

  20. Datatypes • One pre-defined datatype: rdf:XMLLiteral • Used for embedding XML in RDF • Recommended datatypes are XML Schema datatypes, e.g.: • xsd:string • xsd:integer • xsd:float • xsd:anyURI • xsd:boolean

  21. Blank Nodes I • Blank nodes are nodes without a URI • Unnamed resources • More complex constructs • A blank node can be used to indirectly attach to a resource a consistent set of properties which together represent a complex data • Representation of blank nodes is syntax-dependent • Blank node identifier • For example: <#john>, <#hasName>, _:johnsname _:johnsname, <#firstName>, ”John”ˆˆxsd:string _:johnsname, <#lastName>, ”Smith”ˆˆxsd:string

  22. RDF Containers • Grouping property values:

  23. RDF Containers 2 • Three types of containers: • rdf:Bag - unordered set of items • rdf:Seq-ordered set of items • rdf:Alt - set of alternatives • Every container has a triple declaring the rdf:type • Items in the container are denoted with • rdf:_1, rdf:_2, . . . ,rdf:_n: • Semantics of the container is up to the application • What about closed sets? • How do we know whether Graham and Jeremy are the only editors of [RDF-Concepts]?

  24. RDF Triple Graph Representation • The triple data model can be represented as a graph • Such graph is called in the ArtificialIntelligence community a semantic net • Labeled, directed graphs • Nodes: resources, literals • Labels: properties • Edges: statements

  25. RDF: a Direct Connected Graph based Model • Different interconnected triples lead to a more complex graphic model • Basically a RDF document is a direct connect graph

  26. RDF Containers Graph Representation: Bag “The lecture is attended by John, Mary and Chris”

  27. RDF Containers Graph Representation: Seq “[RDF-Concepts] is edited by Graham and Jeremy (in that order)”

  28. RDF Containers Graph Representation: Alt “The source code for the application may be found at ftp1.example.org, ftp2.example.org, ftp3.example.org”

  29. RDF Collections “[RDF-Concepts] is edited by Graham and Jeremy (in that order) and nobody else” RDF provides support for describing groups containing only the specified members, in the form of RDF collections.

  30. Reification I • Reification: statements about statements Mary claims that John’s name is “John Smith”. <#myStatement>, rdf:type, rdf:Statement <#myStatement>, rdf:subject, <#john> <#myStatement>, rdf:predicate, <#hasName> <#myStatement>, rdf:object, ”John Smith” This kind of statement can be used to describe belief or trust in other statements, which is important in some kinds of applications Necessary because there are only triples in RDF: we cannot add an identifier directly to a triple (then it would be a quadruple)

  31. Reification II • Reification: statements about statements Mary claims that John’s name is “John Smith”. <#myStatement>, rdf:type, rdf:Statement <#myStatement>, rdf:subject, <#john> <#myStatement>, rdf:predicate, <#hasName> <#myStatement>, rdf:object, ”John Smith”  <#john>, <#hasName>, ”John Smith” In such a way we attached a label to the statement.

  32. Reification III • Reification: statements about statements Mary claims that John’s name is “John Smith”. <#myStatement>, rdf:type, rdf:Statement <#myStatement>, rdf:subject, <#john> <#myStatement>, rdf:predicate, <#hasName> <#myStatement>, rdf:object, ”John Smith” <#mary>, <#claims>, <#myStatement> RDF uses only binary properties. This restriction seems quite serious because often we use predicates with more than two arguments. Luckily, such predicates can be simulated by a number of binary predicates.

  33. RDF Vocabulary • RDF defines a number of resources and properties • We have already seen: rdf:XMLLiteral, rdf:type, . . . • RDF vocabulary is defined in the namespace: http://www.w3.org/1999/02/22-rdf-syntax-ns# • Classes: • rdf:Property,rdf:Statement,rdf:XMLLiteral • rdf:Seq,rdf:Bag,rdf:Alt,rdf:List • Properties: • rdf:type,rdf:subject,rdf:predicate, rdf:object, • rdf:first,rdf:rest,rdf:_n • rdf:value • Resources: • rdf:nil

  34. RDF Vocabulary • Typing using rdf:type: <A, rdf:type, B> “A belongs to class B” • All properties belong to class rdf:Property: <P, rdf:type, rdf:Property> “P is a property” <rdf:type, rdf:type, rdf:Property> “rdf:type is a property”

  35. RDF Vocabulary Description Language • Types in RDF: <#john, rdf:type, #Student> • What is a “#Student”? • RFD is not defining a vocabulary about the statements, but only to express statements • We know that “#Student” identifies a category (a concept or a class), but this is only implicitly defined in RDF

  36. RDF Vocabulary Description Language • We need a language for defining RDF types: • Define classes: • “#Studentis a class” • Relationships between classes: • “#Student is a sub-class of #Person” • Properties of classes: • “#Person has a property hasName” • RDF Schema is such a language

  37. RDF Vocabulary Description Language • Classes: <#Student, rdf:type, #rdfs:Class> • Class hierarchies: <#Student, rdfs:subClassOf, #Person> • Properties: <#hasName, rdf:type, rdf:Property> • Property hierarchies: <#hasMother, rdfs:subPropertyOf, #hasParent> • Associating properties with classes (a): • “The property #hasNameonly applies to #Person” <#hasName, rdfs:domain, #Person> • Associating properties with classes (b): • “The type of the property #hasNameis #xsd:string” <#hasName, rdfs:range, xsd:string>

  38. RDFS Extends the RDF Vocabulary RDFS vocabulary is defined in the namespace: http://www.w3.org/2000/01/rdf-schema# RDFS Vocabulary

  39. RDFS Principles • Resource • All resources are implicitly instances of rdfs:Resource • Class • Describe sets of resources • Classes are resources themselves - e.g. Webpages, people, document types • Class hierarchy can be defined throughrdfs:subClassOf • Every class is a member of rdfs:Class • Property • Subset of RDFS Resources that are properties • Domain: class associated with property: rdfs:domain • Range: type of the property values: rdfs:range • Property hierarchy defined through: rdfs:subPropertyOf

  40. RDFS Example ex:Faculty- Staff

  41. RDFS Vocabulary Example

  42. RDFS Metadata Properties • Metadata is “data about data” • Any meta-data can be attached to a resource, using: • rdfs:comment • Human-readable description of the resource, e.g. • <ex:Person>, rdfs:comment, ”A person is any human being” • rdfs:label • Human-readable version of the resource name, e.g. • <ex:Person>, rdfs:label, ”Human being” • rdfs:seeAlso • Indicate additional information about the resource, e.g. • <ex:Person>, rdfs:seeAlso, <http://xmlns.com/wordnet/1.6/Human> • rdfs:isDefinedBy • A special kind of rdfs:seeAlso, e.g. • <ex:Person>,rdfs:isDefinedBy,<http://xmlns.com/wordnet/1.6/Human>

  43. Semantics • RDF(S) vocabulary has built-in “meaning” • RDF(S) Semantics • Makes meaning explicit • Defines what follows from an RDF graph • Semantic notions • Subgraph • Instance • Entailment

  44. RDFS Entailment

  45. RDFS Entailment

  46. RDFS Entailment

  47. Entailment Rules • Semantics defined through entailment rules • Rule: • If S contains <triple pattern>then add <triple> • Executing all entailment rules yields realization of S • S entails E if E is a subgraph of the realization of S • Axiomatic triple are always added

  48. RDF Entailment • if E contains <A, B, C> then add <B, rdf:type, rdf:Property> • if E contains <A, B, l>(l is a valid XML literal) then add <_:X, rdf:type, rdf:XMLLiteral> where _:X identifies to blank node allocated to l

  49. RDFS Entailment 1 • everything in the subject is a resource • if E contains <A,B,C> then add <A, rdf:type, rdfs:Resource> • every non-literal in the object is a resource • if E contains <A,B,C> (C is not a literal) then add <C, rdf:type, rdfs:Resource> • every class is subclass of rdfs:Resource • if E contains <A, rdf:type, rdfs:Class> then add <A, rdfs:subClassOf, rdfs:Resource> • inheritance: • if E contains <A, rdf:type, B>, <B, rdfs:subClassOf, C> then add <A, rdf:type, C> • rdfs:subClassOf is transitive • if E contains <A, rdfs:subClassOf, B>, <B, rdfs:subClassOf, C> then add <A, rdfs:subClassOf, C>

  50. RDFS Entailment 2 • rdfs:subClassOf is reflexive • if E contains <A, rdf:type, rdfs:Class> then add <A, rdfs:subClassOf, A> • rdfs:subPropertyOf is transitive • if E contains <A, rdfs:subPropertyOf, B>, <B, rdfs:subPropertyOf, C>then add <A, rdfs:subPropertyOf, C> • rdfs:subPropertyOf is reflexive • if E contains <P, rdf:type, rdf:Property> then add <P, rdfs:subPropertyOf, P> • domain of properties • if E contains <P, rdfs:domain, C>, <A, P, B>then add <A, rdf:type, C> • range of properties • if E contains <P, rdfs:range, C>, <A, P, B>then add <B, rdf:type, C>

More Related