Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:dydaktyka:semweb:lab-rdfmodel2 [2017/11/05 21:02]
kkutt [1 Modeling knowledge with RDF triples [20 minutes]]
pl:dydaktyka:semweb:lab-rdfmodel2 [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Modeling and using knowledge in RDF ====== 
  
-^  Last verification:​ | 20171001 | 
-^  Tools required for this lab: | -- | 
- 
-===== Before the lab ===== 
-Reading: 
-  * [[http://​www.w3.org/​TR/​rdf-schema/​|RDF Schema 1.1]] 
-  * [[#​if_you_want_to_know_more|If you want to know more...]] 
- 
-===== Lab instructions ===== 
- 
-<WRAP center round important 100%> 
-During this lab we will use [[http://​any23.org/​|Anything to Triples]] website. If it is down, there is also a possibility to download any23 service and run it on your own computer: 
-  * download **Apache Any23 Service (Standalone server embedded) 1.1** file from https://​any23.apache.org/​download.html (mirror: {{http://​home.agh.edu.pl/​~kkutt/​semweb/​apache-any23-service-1.1-server-embedded.tar.gz|apache-any23-service-1.1-server-embedded.tar.gz}}) and unpack the zip somewhere 
-  * execute command to start server with any23 service: <​code>​[PATH-to-unpacked-archive]/​apache-any23-service-1.1-server-embedded/​bin/​any23server </​code>​ 
-    * Note: use the any23server.bat file if you are using Windows OS 
-    * Change ''<​nowiki>"​$REPO"</​nowiki>''​ into ''​%REPO%''​ twice (line #79 in any23server.bat file) if ''​Error:​ Unable to access jarfile $REPO/​jetty-runner-8.1.4.v20120524.jar.''​ message appears 
-  * after few seconds any23 service will appear on [[http://​localhost:​8080/​apache-any23-service/​]] address :) 
-</​WRAP>​ 
- 
-During this lab, you will serialize (using Turtle syntax) an RDF graph created before (The Bold and the Beautiful vs The Game of Thrones). 
- 
-==== - Modeling knowledge with RDF triples [20 minutes] ==== 
-RDF is a data model for which several syntaxes have been developed. 
-RDF document is an RDF graph (describing some objects) serialized into chosen representation/​syntax. 
-In this task, you will convert the graph representation into so called Turtle syntax. 
- 
-  - Create a new document with a ''​*.ttl''​ extension. 
-  - Create a document describing the graph created during the [[lab-rdfmodel#​modeling_knowledge_with_rdf_graphs_25_minutes|previous lab]]. Use the [[http://​www.w3.org/​TR/​turtle/​|RDF Turtle]] for reference. 
-    - Define namespaces for your document URIs, e.g., a standard RDF namespace and one "your own" for this specific topic: ​ <​code>​@prefix rdf: <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​. 
-@prefix bb: <​http://​yourname/​b-and-b#>​.</​code>​ 
-      * You can also use a base namespace: <​code>​@base ​  <​http://​kkutt/​b-and-b/>​ .</​code>​ 
-    - Write down ~14 selected triples from your graph. Make sure you include each of the following at least once: 
-      - resources, ​ 
-      - datatype values. 
-    - Notes: 
-      * Comments in Turtle begins with ''#''​ symbol. 
-      * In RDF we are describing something (a subject) and giving it a unique ID, e.g.: ''<​nowiki><​http://​kkutt/​b-and-b/​brooke-logan></​nowiki>''​. To make notation more compact, we can use [[http://​www.w3.org/​TR/​turtle/#​prefixed-name|prefixes]] and/or [[http://​www.w3.org/​TR/​turtle/#​relative-iri|base namespace]]. 
-      * 8-) To separate statements we can use dot (.), semicolon (;) and comma (,). What is the difference between them? 
-    - Go to the <wrap caution>​[[http://​any23.org/​|Anything to Triples]]</​wrap>​ webpage: 
-      * Validate your document using this tool (section "​Convert copy&​pasted document"​):​ 
-        * input format: **Turtle (text/​turtle)** 
-        * output format: **turtle** 
-        * validation: **validate** 
-        * report: **checked** 
-        * annotate: **unchecked** 
-        * paste your code and click "​Convert"​ button 
-      * if something is wrong, you can see details in report (in web browser), e.g.: \\ {{:​pl:​dydaktyka:​semweb:​any23_some_problems_web.png?​400|}} 
-      * if code was successfully validated then you get an XML with a lot of empty tags and your Turtle code inside ''<​data><​![CDATA[ ... ]]></​data>''​ (indentation may be changed) 
-    - 8-) Include model (''​.ttl''​ file) in the report archive. 
- 
-==== - RDF: Containers and Collections [10 minutes] ==== 
-In RDF there are two ways to describe set or sequences of objects: //​[[http://​www.w3.org/​TR/​rdf11-mt/#​rdf-containers|Containters]]//​ and //​[[http://​www.w3.org/​TR/​rdf11-mt/#​rdf-collections|Collections]]//​. 
- 
-The container and collection are resources that contain things. The contained things are members. 
-RDF defines three types of containers: 
-    * ''​rdf:​Bag'',​ 
-    * ''​rdf:​Seq'',​ 
-    * ''​rdf:​Alt'',​ 
-and one type of collection: 
-    * ''​rdf:​List''​. 
-While "a //​container//​ only says that certain identified resources are members; it does not say that other members do not exist."​ with a //​Collection//​ we can describe groups containing __only__ the specified members. 
- 
-[[http://​www.w3.org/​TR/​rdf11-mt/#​rdf-containers|Read about them]] and then: 
-  - 8-) Describe shortly what is the difference between different types of containers. 
-  - Create a container in your database. 
-  - In your RDF file create also an //RDF Collection//​. For hint and examples see the [[http://​www.w3.org/​TR/​turtle/#​collections|recommendation]]. 
- 
-==== - RDF: Datatypes [10 minutes] ==== 
-Add the references to [[http://​www.w3.org/​TR/​xmlschema-2/​|XML Schema datatypes]] to chosen information in your RDF file, e.g.: 
-<​code>​ 
-# ... 
-@prefix xsd: <​http://​www.w3.org/​2001/​XMLSchema#>​ . 
-# ... 
- 
-# ... 
-<​brooke-logan>​ <​daughter-of>​ <​beth-logian>;​ 
- <​born>​ "​1900-01-01"​^^xsd:​date;​ 
- <​studied>​ "​Chemistry"​^^xsd:​string;​ 
-# ... 
-</​code>​ 
-Use at least 3 different datatypes! 
- 
-==== - RDF Visualization [3 minutes] ==== 
- 
-We are in the middle, so let's visualize our RDF files. 
- 
-  - There are two ways to do this: 
-    - Using <wrap caution>​[[http://​any23.org/​|Anything to Triples]]</​wrap>​ service convert your file to RDF/XML (''​rdfxml''​) format. Do not analyze resulting code. Simply copy it :) \\ Go to the [[http://​www.w3.org/​RDF/​Validator/​|RDF Validator]] page and simply paste generated code into ''​Check by Direct Input''​ field. Select ''​Graph only''​ from dropdown list and click ''​Parse RDF''​ 
-    - Use the [[http://​loki.ia.agh.edu.pl/​wiki/​docs:​rdfeditor|RDF Editor]] developed at AGH UST (by Artur Smaroń, EIS 2015-2016) 
-  - Analyze the results: 
-    - 8-) How containers are represented in the graph? 
-    - 8-) How collections are represented in the graph? 
- 
-==== - Semantic vocabularies:​ FOAF, Dublin Core and FHKB [10 minutes] ==== 
- 
-Semantic vocabularies are sets of predefined properties for describing some domains. Examples include: 
-  * [[http://​semanticweb.org/​wiki/​Dublin_Core|Dublin Core]] 
-  * [[http://​semanticweb.org/​wiki/​FOAF|FOAF]] 
-  * [[http://​semanticweb.org/​wiki/​SIOC|SIOC]] 
-  * etc. 
- 
-  - Have a look at [[https://​github.com/​blokhin/​genealogical-trees/​blob/​master/​data/​header.ttl|Family History Knowledge Base (FHKB)]] ontology, [[http://​dublincore.org/​documents/​dc-rdf/​|Expressing Dublin Core metadata using the Resource Description Framework]] and [[http://​xmlns.com/​foaf/​spec/​|FOAF Vocabulary Specification]]. 
-  - Modify your RDF file to use the properties from FHKB, Dublin Core and FOAF vocabulary, e.g.: 
-<​code>​ 
-# ... 
-@prefix dc: <​http://​purl.org/​dc/​elements/​1.1/>​. 
-@prefix dcterms: <​http://​purl.org/​dc/​terms/>​ . 
-@prefix foaf: <​http://​xmlns.com/​foaf/​0.1/>​ . 
-@prefix fhkb: <​http://​www.example.com/​genealogy.owl#>​ . 
-# ... 
- 
-# ... 
-<​brooke-logan>​ fhkb:​isDaughterOf <​beth-logian>;​ 
- <​born>​ "​1900-01-01"​^^xsd:​date;​ 
- <​studied>​ "​Chemistry"​^^xsd:​string;​ 
- foaf:name "​Brooke Logan",​ "​Brooke Forrester",​ "​Brooke Chambers",​ "​Brooke Jones",​ "​Brooke Marone",​ "​Brooke Spencer"​. 
-# ... 
-</​code>​ 
-    * Hint: comprehensive list of ''​dcterms:''​ and ''​dc:''​ elements is [[http://​dublincore.org/​documents/​dcmi-terms/​|here]] ("​Section 2: Properties in the /terms/ namespace"​ = ''​dcterms:'',​ "​Properties in the /​elements/​1.1/​ namespace"​ = ''​dc:''​) 
- 
- 
-==== - RDF Schema: classes [10 minutes] ==== 
-RDF Schema allows to organize objects into classes and define simple taxonomies. 
- 
-  - Define classes of items in your database. Consider reusing the classes from dictionaries mentioned before, e.g. 
-<​code>​ 
-@base   <​http://​kkutt/​got/>​ . 
-@prefix rdf: <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​ . 
-@prefix rdfs: <​http://​www.w3.org/​2000/​01/​rdf-schema#>​ . 
- 
-<​Character>​ rdf:type rdfs:Class . 
- 
-<​Dwarf>​ rdf:type rdfs:Class ; 
- rdfs:​subClassOf <​Character>​ . 
- 
-foaf:Person rdfs:​subClassOf <​Character>​ . 
-</​code>​ 
- 
-Add the ''​rdf:​type''​ statements to your RDF file, e.g.: 
-<​code>​ 
-<​brooke-logan>​ a foaf:Person . 
-<​tyrion-lannister>​ rdf:type <​Dwarf>​ . 
-</​code>​ 
- 
-Note that ''​a''​ is an alias for ''​rdf:​type''​ so two statements: <​code><​tyrion-lannister>​ rdf:type <​Dwarf>​ .</​code><​code><​tyrion-lannister>​ a <​Dwarf>​ .</​code>​ are equivalent. 
- 
-==== - RDF Schema: properties [10 minutes] ==== 
- 
-RDF Schema also provides a way to define Properties as well as their domains and ranges. 
- 
-  - In your file identify properties that are not defined in external dictionaries (e.g. Dublin Core), e.g. in this code:<​code>​ 
-<​brooke-logan>​ fhkb:​isDaughterOf <​beth-logian>;​ 
- <​born>​ "​1900-01-01"​^^xsd:​date;​ 
- <​studied>​ "​Chemistry"​^^xsd:​string;​ 
- foaf:name "​Brooke Logan",​ "​Brooke Forrester",​ "​Brooke Chambers",​ "​Brooke Jones",​ "​Brooke Marone",​ "​Brooke Spencer"​. 
-</​code>​ ''<​studied>''​ is not defined in external dictionary -- it is defined in our own namespace. 
-  - Describe each such property using RDF Schema capabilities:<​code>​ 
-@base   <​http://​kkutt/​b-and-b/>​ . 
-@prefix rdf: <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​ . 
-@prefix rdfs: <​http://​www.w3.org/​2000/​01/​rdf-schema#>​ . 
- 
-<​studied>​ rdf:type rdfs:​Property ; 
- rdfs:​domain foaf:person ; 
- rdfs:range rdfs:​Literal. 
-</​code>​ 
- 
-You may find [[http://​www.w3.org/​TR/​rdf-schema/​|RDF Schema 1.1]] recommendation useful. 
- 
-==== - RDF Schema: Non-modeling properties [3 minutes] ==== 
- 
-RDF Schema also provides some handful properties that are not used in inference process. These are: 
-  * ''​rdfs:​label''​ -- used by convention to provide a human-readable name that is displayed by semantic web agents, 
-  * ''​rdfs:​seeAlso''​ -- cross-referencing;​ provide links to supplementary information,​ 
-  * ''​rdfs:​isDefinedBy''​ -- subPropertyOf rdfs:​seeAlso;​ provides a link to the primary source of information,​ 
-  * ''​rdfs:​comment''​ -- for everything you want :) . 
- 
-  - Use each of them in your RDF file. 
-  - 8-) Include final RDF **Turtle** file in the report archive. 
-    * Check if your Turtle file passes validation on <wrap caution>​[[http://​any23.org/​|Anything to Triples]]</​wrap>​! 
-===== Control questions ===== 
-   * What container elements are available in RDF? 
-   * What is RDF Schema? 
-   * What are core RDF Schema Classes and properties? 
-   * How constraints on domain and range of properties are added? 
- 
-===== If you want to know more ===== 
- 
-{{section>​.:​lab-rdfmodel#​if_you_want_to_know_more&​noheader}} 
pl/dydaktyka/semweb/lab-rdfmodel2.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0