To jest stara wersja strony!


Integracja z Semantic Web

Celem laboratorium jest przetestowanie wykorzystania Prologu w aplikacjach związanych z Semantic Web.

Wprowadzenie

Semantic Web

Podstawowymi standardami Semantic Web są:

    • umożliwia opis relacji pomiędzy zasobami w postaci trójek: (subject predicate object)
    • każdy element trójki RDF identyfikowany jest przez URI
    • składnia oparta na XML
    • zobacz przykład trójek RDF zapisanych w postaci tabeli, w składni RDF/XML oraz w postaci graficznej
    • istnieje szereg słowników dla RDF, np. zbiór relacji opisujących zależności między ludźmi (FOAF (przykład)), zbiór relacji do opisu metadanych zbiorów informacyjnych (DublinCore) i inne.
  • RDFS
    • pozwala na tworzenie prostych taksonomii, czyli hierarchii pojęć
    • rozszerza RDF o predykaty typu Class, subClassOf, Property, subPropertyOf, Resource itd.
    • daje więcej możliwości niż RDFS, umożliwia tworzenie ontologii, czyli pewnego rodzaju modelu dziedziny w postaci pojęć (classes/concepts) oraz relacji między nimi (properties/roles).
    • OWL jest oparty na wariancie Logiki Opisowej (Description Logic) i posiada formalną semantykę (znaczenie pojęć i relacji jest ściśle określone i pozwala na automatyczne wnioskowanie dot. np. hierarchii pojęć, instancji klas itd.)
    • ontologie można tworzyć w Protege'u, przeglądać online w OWL Sight, a silnik wnioskujący to np. Pellet

Dokumenty Semantic Web mogą znajdować się w sieci w postaci plików z rozszerzeniem *.rdf, *.owl, do ich wyszukiwania służy wyszukiwarka Swoogle

Adnotacje semantyczne mogą też być dodawane do istniejących stron, za pomocą odpowiedznich standardów, np.RDFa ( zobacz przykład (aby zobaczyć adnotacje pokaż źródło strony i wyszukaj „rdf”)).

SWI-Prolog

SWI-Prolog udostępnia kilka pakietów pozwalających na pracę z Semantic Web.

Podstawowy pakiet do przetwarzania dokumentów RDF, umożliwia wczytywanie, wykonywanie zapytań oraz przechowywanie dokumentów Semantic Web oraz zawiera biblioteki XPCE do wizualizacji i edycji tych dokumentów.

Dodatkowe pakiety to:

Podstawowe moduły:

  • library(semweb/rdf_db.pl) - przechowywanie i zapytania do RDF
  • library(rdf.pl) - parser RDF
  • library(semweb/rdfs.pl) - zapytania RDFS
  • library(semweb/rdf_edit.pl) - edytowanie dokumentów Semantic Web
  • library(semweb/owl.pl) - zapytania OWL

Aktualna wersja biblioteki SWI-Prolog nie zawiera modułu owl.pl. Podstawowe wsparcie dla OWL jest częścią edytora Triple20.

Ćwiczenie:

Uruchom :

?- use_module(library(semweb/rdf_db)).

Praca z dokumentami RDF

W tym ćwiczeniu pokazana zostanie (część) funkcjonalności podstawowej biblioteki swi-prolog semweb.

Prosze pobrać przykładowe pliki:

SemWeb Prolog Lab

Wprowadzenie

Semantic Web

Podstawowymi standardami Semantic Web są:

    • umożliwia opis relacji pomiędzy zasobami w postaci trójek: (subject predicate object)
    • każdy element trójki RDF identyfikowany jest przez URI
    • składnia oparta na XML
    • zobacz przykład trójek RDF zapisanych w postaci tabeli, w składni RDF/XML oraz w postaci graficznej
    • istnieje szereg słowników dla RDF, np. zbiór relacji opisujących zależności między ludźmi (FOAF (przykład)), zbiór relacji do opisu metadanych zbiorów informacyjnych (DublinCore) i inne.
  • RDFS
    • pozwala na tworzenie prostych taksonomii, czyli hierarchii pojęć
    • rozszerza RDF o predykaty typu Class, subClassOf, Property, subPropertyOf, Resource itd.
    • daje więcej możliwości niż RDFS, umożliwia tworzenie ontologii, czyli pewnego rodzaju modelu dziedziny w postaci pojęć (classes/concepts) oraz relacji między nimi (properties/roles).
    • OWL jest oparty na wariancie Logiki Opisowej (Description Logic) i posiada formalną semantykę (znaczenie pojęć i relacji jest ściśle określone i pozwala na automatyczne wnioskowanie dot. np. hierarchii pojęć, instancji klas itd.)
    • ontologie można tworzyć w Protege'u, przeglądać online w OWL Sight, a silnik wnioskujący to np. Pellet

Dokumenty Semantic Web mogą znajdować się w sieci w postaci plików z rozszerzeniem *.rdf, *.owl, do ich wyszukiwania służy wyszukiwarka Swoogle

Adnotacje semantyczne mogą też być dodawane do istniejących stron, za pomocą odpowiedznich standardów, np.RDFa ( zobacz przykład (aby zobaczyć adnotacje pokaż źródło strony i wyszukaj „rdf”))

SWI-Prolog

SWI-Prolog udostępnia kilka pakietów pozwalających na pracę z Semantic Web.

Podstawowy pakiet do przetwarzania dokumentów RDF, umożliwia wczytywanie, wykonywanie zapytań oraz przechowywanie dokumentów Semantic Web oraz zawiera biblioteki XPCE do wizualizacji i edycji tych dokumentów.

Dodatkowe pakiety to:

Podstawowe moduły:

  • library(semweb/rdf_db.pl) - przechowywanie i zapytania do RDF
  • library(rdf.pl) - parser RDF
  • library(semweb/rdfs.pl) - zapytania RDFS
  • library(semweb/rdf_edit.pl) - edytowanie dokumentów Semantic Web
  • library(semweb/owl.pl) - zapytania OWL

Aktualna wersja biblioteki SWI-Prolog nie zawiera modułu owl.pl. Podstawowe wsparcie dla OWL jest częścią edytora Triple20.

Ćwiczenie:

Uruchom :

?- use_module(library(semweb/rdf_db)).

Praca z dokumentami RDF

W tym ćwiczeniu pokazana zostanie (część) funkcjonalności podstawowej biblioteki swi-prolog semweb.

Prosze pobrać przykładowe pliki:

Wczytywanie i zapisywanie plików

  • rdf_load(+InOrList) - wczytanie trójek z podanego źródła
  • rdf_unload(+Spec) - usunięcie trójek z podanego źródła
  • rdf_save(+File) - zapis do pliku

Ćwiczenie: Wczytaj plik RDF/XML:

 ?- rdf_load('sciezka_do_pliku').

Np.

 ?- rdf_load('wine.rdf').
 ?- rdf_load(['moviedatabase.rdf','earthrealm.rdf']).
 ?- rdf_unload('moviedatabase.rdf').

Zapytania do bazy RDF

Podstawowy predykat - rdf/3

Podstawowy predykat: rdf(?Subject, ?Predicate, ?Object)) (rdf/3).

  • Subject i Predicate są atomami reprezentującymi identyfikator URI zasobu.
  • Object - może być URI lub tzw. literałem, czyli konkretną wartością. Literał może być typu:
    • Atom - jeżeli Object jest prostym tekstem, bez specyfikowania typu danych
    • lang(LangID, Atom) - Atom reprezentuje tekst w podanym języku langID
    • type(TypeID, Value) - atrybuty o określonym typie danych (według rdf:datatype) TypeID.

Ćwiczenie

Pobierz i wczytaj plik wine.rdf Przetestuj działanie predykatu rdf/3:

?- rdf(A,S,D).
 
?- rdf(A,S,literal(lang(fr,D))), write(D), nl.
 
?- rdf(_,_,literal(Literal)).

Jakie są możliwe typy danych? Z jakiej przestrzeni nazw pochodzą?

Wybieranie elementów z trójki

rdf_subject(?Subject) służy do pobierania pierwszych elementów trójek. W przeciwieństwie do zapytania :-rdf(Subject, _, _). nie zwraca duplikatów.

Przeglądu wszystkich literałów można dokonać przez:

?- rdf(_,_,literal(Literal)).

Ćwiczenie: Proszę przetestować:

?- rdf_current_literal(D).
 
?- rdf_subject(Subject).
 
?- rdf(Subject, _, _).

Dla Zainteresowanych

Uwagi, komentarze, propozycje

Tu studenci mogą wpisywać swoje uwagi.

Grzegorz J. Nalepa 2009/05/06 09:13

pl/prolog/prolog_lab/prolog_lab_semweb.1242778010.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