Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:prolog:prolog_lab:prolog_lab_semweb [2009/05/20 02:38]
ikaf semweb lab - part6onto
pl:prolog:prolog_lab:prolog_lab_semweb [2019/06/27 15:50] (aktualna)
Linia 53: Linia 53:
 Uruchom : Uruchom :
 <code prolog> <code prolog>
-?- use_module(library(semweb/​rdf_db)).+?- use_module(library('semweb/​rdf_db')).
 </​code>​ </​code>​
  
Linia 212: Linia 212:
  
 ==== Klasy, role, instancje ==== ==== Klasy, role, instancje ====
-Ontologie typowo składają się z klas, ról/​własności (properties,​ predicates) i instancji (instances, individuals).+Ontologie typowo składają się z //klas////ról/​własności// (properties,​ predicates) i //instancji// (instances, individuals).
  
 W RDFS: W RDFS:
Linia 219: Linia 219:
   * **instancje** klasy C to zasoby, których własność ''​rdf:​type''​ ma wartość C   * **instancje** klasy C to zasoby, których własność ''​rdf:​type''​ ma wartość C
   * zasób może być instancją więcej niż jednej klasy   * zasób może być instancją więcej niż jednej klasy
-  * własności są instancjami klasy ''​rdfs:​Property''​+  ​* **własności** są instancjami klasy ''​rdfs:​Property''​
   * istnieją dwie ważne własności:​ ''​rdfs:​domain''​ do określania dziedziny danej własności,​ oraz ''​rdfs:​range''​ do określania przeciwdziedziny (klasa lub typ danych)   * istnieją dwie ważne własności:​ ''​rdfs:​domain''​ do określania dziedziny danej własności,​ oraz ''​rdfs:​range''​ do określania przeciwdziedziny (klasa lub typ danych)
  
Linia 245: Linia 245:
 **Ćwiczenie** **Ćwiczenie**
 Proszę wyszukać własności typu owl:'​DatatypeProperty'​. Proszę wyszukać własności typu owl:'​DatatypeProperty'​.
 +
 +
 +==== Edytor Triple20 ====
 +Tworzenie i edytowanie ontologii możliwe jest dzięki edytorowi [[http://​www.swi-prolog.org/​web/​Triple20.html|Triple20]].
 +Edytor ten wykorzystuje bibliotekę semweb.
 +
 +Aby uruchomić edytor Triple20 należy wpisać w konsoli:
 +
 +<​code>​
 +triple20
 +</​code>​
 +
 +**Ćwiczenie:​**
 +Proszę uruchomić Triple20.
 +
 +Następnie proszę wczytać uprzednio ściągnięte pliki oraz pliki ontologii bazowych. \\
 +Proszę przeanalizować przykładowe ontologie.
 +
 +Jakie są typowe własności klas (properties)?​\\
 +Jak budowana jest hierarchia?​\\
 +Jaka klasa jest najbardziej ogólna w przestrzeni rdfs?\\
 +A jaka w przestrzeni OWL?\\
 +
 +
 +
 +
 +
 +==== Tworzenie ontologii ====
 +Proszę stworzyć prostą ontologię opartą na [[https://​ai.ia.agh.edu.pl/​wiki/​hekate:​dl_intro#​history_and_background|diagramie]].
 +
 +Uwaga: W węzłach grafu znajdują się nazwy klas i instancji. ​
 +Słowa pisane z welkiej litery (na diagramie) oznaczaja instancje danej klasy, ​
 +słowa pisane z małej litery oznaczają nazwy klas.
 +Na krawędziach grafu znajduja się role (properties).
 +
 +
 +Proszę porównać zbudowaną ontologię z: [[http://​www.cs.man.ac.uk/​~horrocks/​ISWC2003/​Tutorial/​people+pets.owl.rdf|tą tutaj]].
 +
 +
 +W miarę czasu i możliwości proszę poeksperymentować z tworzeniem i edycją ontologii, a także przeglądnąć przykładowe ontologie "​bazowe",​ takie jak FOAF, SKOS itd.
 +
 +
 +==== Wizualizacja grafów RDF ====
 +
 +Na podstawie [[https://​ai.ia.agh.edu.pl/​wiki/​pl:​prolog:​prolog_lab:​prolog_lab_system#​tematgraphviz_i_imagemagick|ćwiczenia z Lab. Metaprogramowanie]] oraz przykładu poniżej, napisz program, który stworzy graf RDF na podstawie wczytanego pliku RDF/XML.
 +
 +Przykład pliku dla graphViza:
 +
 +<​code>​
 +digraph D{
 +Fred -> person [label = "is an instance of" ];
 +Fred -> Tibbs [label = "has pet" ];
 +Tibbs -> cat [label = "is an instance of" ];
 +cat -> animal [label = "is an" ];
 +person -> animal [ label= "is an" ];
 +man -> adult [label = "is an" ];
 +man -> male [label ="is a" ];
 +man -> person [label = "is a" ];
 +cat_liker -> person [label = "is a" ];
 +cat_liker -> cat [label = "​likes"​ ];
 +vegetarian -> animal [label = "is an" ];
 +vegetarian -> animal [label = "​doesn'​t eat"];
 +cow -> vegetarian [label = "is a" ];
 +sheep -> animal [label = "is an" ];
 +sheep -> grass [label = "eats only" ];
 +}
 +</​code>​
  
 ===== Dla Zainteresowanych ===== ===== Dla Zainteresowanych =====
Linia 255: Linia 322:
  --- //​[[gjn@agh.edu.pl|Grzegorz J. Nalepa]] 2009/05/06 09:13//  --- //​[[gjn@agh.edu.pl|Grzegorz J. Nalepa]] 2009/05/06 09:13//
  
 +Za mało przykładów (przydałby się np. do punktu Zaawansowane wyszukiwanie). Nie za bardzo wiadomo jak ma działać obsługa przestrzeni nazw (gdzie to można zastosować).
 +
 + --- //​[[szymek@adres.pl|Szymon Świerkosz]]//​
pl/prolog/prolog_lab/prolog_lab_semweb.1242779920.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (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