1 / 36

ARIN – KR Practical 1, Part 2

RDF. ARIN – KR Practical 1, Part 2. Suresh Manandhar , Dimitar Kazakov. Some of these slides are based on tutorial by Ivan Herman ( W3C ) reproduced here with kind permission. All changes and errors are mine. Lecture Overview. Overview RDF RDF examples RDF tools.

vaughan
Download Presentation

ARIN – KR Practical 1, Part 2

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. RDF ARIN – KR Practical 1, Part 2 Suresh Manandhar, Dimitar Kazakov Some of these slides are based on tutorial by Ivan Herman (W3C) reproduced here with kind permission. All changes and errors are mine.

  2. Lecture Overview • Overview RDF • RDF examples • RDF tools

  3. Need a language to describe graphs a:title The Glass Palace http://…isbn/000651409X a:year 2000 Le palais des miroirs f:original f:titre a:publisher a:city London a:author http://…isbn/2020386682 Harper Collins a:p_name f:auteur r:type f:traducteur a:name r:type http://…foaf/Person a:homepage f:nom f:nom r:type w:isbn Besse, Christianne Ghosh, Amitav http://www.amitavghosh.com http://dbpedia.org/../The_Glass_Palace foaf:name w:reference w:author_of http://dbpedia.org/../Amitav_Ghosh w:born_in http://dbpedia.org/../Kolkata w:author_of http://dbpedia.org/../The_Hungry_Tide w:lat w:long w:author_of http://dbpedia.org/../The_Calcutta_Chromosome

  4. RDF provides this • RDF stands for Resource Description Framework • RDF is a language for describing labelledgraphs • nodes are URIs (all web applications understand these) • edges can have labels which are also URIs • allows namespaces • + additional datatypes: • Containers • Strings, Decimals, Floats etc from XML Schema

  5. RDF triples • An RDF Triple (subject,predicate,object) is such that: • “s”, “p” are URI-s, ie, resources on the Web; “o” is a URI or a literal • “s”, “p”, and “o” stand for “subject”, “property” or “predicate”, and “object” • here is the complete triple: • RDF is a general model for such triples (with machine readable formats like RDF/XML, Turtle, N3, RDFa, Json, …) (<http://…isbn…6682>, <http://…/original>, <http://…isbn…409X>)

  6. RDF triples (cont.) • Resources can use any URI • http://www.mysite.com • http://www.example.org/file.html#home • http://www.example.org/form?a=b&c=d • RDF triples form a directed, labelledgraph (the best way to think about them!)

  7. A simple RDF example (in Turtle) http://…isbn/2020386682 @prefix my: <http://mysite.com/> @prefix dc: <http://dublincore.org/documents/dces/> . <http://…/isbn/2020386682> dc:title "Le palais des mirroirs"@fr ; my:original <http://…/isbn/000651409X> . my:original dc:title http://…isbn/000651409X Le palais des miroirs

  8. Note: Turtle @prefix my: <http://mysite.com/> @prefix dc: <http://dublincore.org/documents/dces/> . <http://…/isbn/2020386682> dc:title "Le palais des mirroirs"@fr ; my:original <http://…/isbn/000651409X> . is expanded as: <rdf:Description rdf:about="http://…/isbn/2020386682"> <dc:title xml:lang="fr">Le palais des mirroirs</dc:title> <my:original rdf:resource="http://…/isbn/000651409X"/> </rdf:Description>

  9. = Same RDF example (in RDF/XML) http://…isbn/2020386682 <rdf:Description rdf:about="http://…/isbn/2020386682"> <dc:title xml:lang="fr">Le palais des mirroirs</dc:title> <my:original rdf:resource="http://…/isbn/000651409X"/> </rdf:Description> my:original dc:title http://…isbn/000651409X Le palais des miroirs

  10. = Same RDF example (in RDFa) http://…isbn/2020386682 <p about="http://…/isbn/2020386682">The book entitled “<span property=“dc:title" lang="fr">Le palais des mirroirs</span>” is the French translation of the “<span rel=“my:original" resource="http://…/isbn/000651409X">Glass Palace</span>”</p> . RDFa is a mechanism to allow embedding RDF meta-data within a HTML page dc:title my:original http://…isbn/000651409X Le palais des miroirs

  11. URIs play a fundamental role • URIs made the merge possible • URIs ground RDF semantics • information can be retrieved using existing tools • this makes the “Semantic Web”, well… “Semantic Web”

  12. RDF principles • Every node is a URI or a literal • Every edge is a URI i.e. ground all data without exception

  13. Namespaces • Namespaces are URIs that publish a vocabulary of terms • For example, the Dublin Core is a well known namespace for common meta-data items such as author, title etc.

  14. Some common namespaces • foaf: http://xmlns.com/foaf/spec/ • dc: http://dublincore.org/documents/dces/ • rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# • rdfs: http://www.w3.org/2000/01/rdf-schema# • owl: http://www.w3.org/2002/07/owl# • geonames: http://www.geonames.org/ontology# • dbpedia: http://dbpedia.org/resource/ (http://mappings.dbpedia.org/server/ontology/classes/ http://dbpedia.org/Datasets/Properties/)

  15. Title Author/creator Subject/keywords Description Publisher Other Contributor Date Resource type Format Resource Identifier Source Language Relation Coverage Rights management Dublin Core Elements http://dublincore.org/documents/dces/

  16. Syntax names rdf:RDF, rdf:Description, rdf:ID, rdf:about, rdf:parseType, rdf:resource, rdf:li, rdf:nodeID, rdf:datatype Class names rdf:Seq, rdf:Bag, rdf:Alt, rdf:Statement, rdf:Property, rdf:XMLLiteral, rdf:List Property names rdf:subject, rdf:predicate, rdf:object, rdf:type, rdf:value, rdf:first, rdf:rest_n RDF Elements http://www.w3.org/1999/02/22-rdf-syntax-ns#

  17. For new concepts • Create your own namespace

  18. “Internal” nodes • Consider the following statement: • “the publisher is a «thing» that has a name and an address” • Until now, nodes were identified with a URI. But… • …what is the URI of «thing»? London a:city a:publisher http://…isbn/000651409X a:p_name Harper Collins

  19. One solution: create an extra URI • The resource will be “visible” on the Web • care should be taken to define unique URI-s <rdf:Description rdf:about="http://…/isbn/000651409X"> <a:publisher rdf:resource="urn:uuid:f60ffb40-307d-…"/> </rdf:Description> <rdf:Description rdf:about="urn:uuid:f60ffb40-307d-…"> <a:p_name>HarpersCollins</a:p_name> <a:city>HarpersCollins</a:city> </rdf:Description>

  20. Or Internal identifier (“blank nodes”) <rdf:Descriptionrdf:about="http://…/isbn/000651409X"> <a:publisherrdf:nodeID="A234"/> </rdf:Description> <rdf:Descriptionrdf:nodeID="A234"> <a:p_name>HarpersCollins</a:p_name> <a:city>HarpersCollins</a:city> </rdf:Description> <http://…/isbn/2020386682> a:publisher_:A234. _:A234a:p_name "HarpersCollins". • Internal = these resources are not visible outside London a:city a:publisher http://…isbn/000651409X a:p_name Harper Collins

  21. More on blank nodes • Blank nodes require attention when merging • blanks nodes with identical nodeID-s in different graphs are different • implementations must be careful… • Many applications prefer not to use blank nodes and define new URI-s “on-the-fly” • From a logic point of view, blank nodes represent an “existential” statement • “there is a resource such that…”

  22. Closer look – An example • Task – to build a knowledge base for an online camera shop using RDF

  23. Closer look – An example • Task – to build a knowledge base for an online camera shop using RDF @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix : <http://www.shop.com/camera#> . @prefix dbpedia: <http://www.dbpedia.org/resource/> . :Nikon_D300 rdf:type :DSLR. :Nikon_D300 :manufactured_bydbpedia:Nikon. :Nikon_D300 :model "D300". :Nikon_D300 :weight "0.6_kg".

  24. Closer look – An example • Blank node – to add reviewer “John Smith” @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix : <http://www.shop.com/camera#> . @prefix dbpedia: <http://www.dbpedia.org/resource/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . :Nikon_D300 rdf:type :DSLR. :Nikon_D300 :manufactured_bydbpedia:Nikon. :Nikon_D300 :model "D300". :Nikon_D300 :weight "0.6_kg". :Nikon_D300 :reviewed_by _:x1. _:x1 foaf:givenname "John". _:x1 foaf:family_name "Smith”.

  25. Closer look – An example • Co-reference – Buyer and reviewer are the same @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix : <http://www.shop.com/camera#> . @prefix dbpedia: <http://www.dbpedia.org/resource/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . :Nikon_D300 rdf:type :DSLR. :Nikon_D300 :manufactured_bydbpedia:Nikon. :Nikon_D300 :model "D300". :Nikon_D300 :weight "0.6_kg". :Nikon_D300 :reviewed_by _:x1. _:x1 foaf:givenname "John". _:x1 foaf:family_name "Smith". :Nikon_D300 :bought_by _:x1.

  26. Closer look – An example

  27. Closer look – An example • Use separate ids – for buyer and reviewer • Public info vs Private info ### This info can visible to all customers @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix : <http://www.shop.com/camera#> . @prefix dbpedia: <http://www.dbpedia.org/resource/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . :Nikon_D300 rdf:type :DSLR. :Nikon_D300 :manufactured_bydbpedia:Nikon. :Nikon_D300 :model "D300". :Nikon_D300 :weight "0.6_kg". :Nikon_D300 :reviewed_by :Reviewer_1. :Reviewer_1 foaf:givenname "John". :Reviewer_1 foaf:family_name "Smith”.

  28. Closer look – An example ### This info is stored in private internal db :Nikon_D300 :bought_by :Cust_5636. :Cust_5636 foaf:givenname ”Sally". :Cust_5636 foaf:family_name ”Douglas”. :Cust_5636 :address_line1 ”Heslington Lane”.

  29. Converting Turtle to RDF/XML • Use Python script cwm (available on your machine, and also from: http://www.w3.org/2000/10/swap/doc/cwm.html) • Use Notation3 (N3) to rdfconversion • Notation3 is very similar to Turtle format though not identicalUse http://www-module.cs.york.ac.uk/arin/camera.rdf.turtle - right click on the link, then select Save linked file as cwm --n3 camera.rdf.turtle--rdf > camera.rdf.rdf

  30. Using RDF/XML validator

  31. Using RDF/XML validator

  32. Visualising RDF graph • Use RDF to dot converter from CPAN (Perl Repository): RDF-Trine-Exporter-GraphViz • Comes with command-line tool: rdfdot(you’ve got it) • Use Graphvizvisualiser to view the graph rdfdot -ttlcamera.rdf.turtle> camera.rdf.dot

  33. Visualising RDF graph • Use Graphvizvisualiser to view the graph

  34. Turtle shortcuts • Use of semicolon; • The following two are equivalent: :Nikon_D300 rdf:type :DSLR. :Nikon_D300 :manufactured_bydbpedia:Nikon. :Nikon_D300 :model "D300". :Nikon_D300 :weight "0.6_kg". :Nikon_D300 :reviewed_by :Reviewer_1. :Nikon_D300 rdf:type :DSLR; :manufactured_bydbpedia:Nikon; :model "D300”; :weight "0.6_kg”; :reviewed_by :Reviewer_1.

  35. Using shared vocabularies/ontologies • “Knowledge Engineering” is the task of maintaining and designing reusable knowledge bases • Using shared vocabularies allows applications/databases to be more resilient to future changes • In our example, we could be more careful with the using any vocabulary that is specific to only site specific, e.g.: :Nikon_D300 :manufactured_by :model :weight :reviewed_by

More Related