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) |
Uruchom : | Uruchom : |
<code prolog> | <code prolog> |
?- use_module(library(semweb/rdf_db)). | ?- use_module(library('semweb/rdf_db')). |
</code> | </code> |
| |
| |
==== 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: |
* **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) |
| |
**Ć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 ===== |
--- //[[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]]// |