RDF Schema (schematy RDF)



Podobne dokumenty
Internet Semantyczny. Schematy RDF i wnioskowanie

Internet Semantyczny. Wstęp do OWL 2

Semantic Web. dr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji Konsultacje: czw , pokój 3.211

Dodatkowe możliwości RDF. Seminarium magisterskie Paweł Chrząszczewski

Semantic Web. Grzegorz Olędzki. prezentacja w ramach seminarium Protokoły komunikacyjne. luty 2005

Marcin Skulimowski - RDF

rdf:type ex:homepage ex:createdwith /amaya rdf:type ex:htmleditor

Internet Semantyczny. Podstawy SPARQL

3 grudnia Sieć Semantyczna

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Klasy abstrakcyjne i interfejsy

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Paweł Kurzawa, Delfina Kongo

Standardy semantyczne

Język RDF. Mikołaj Morzy Agnieszka Ławrynowicz. Instytut Informatyki Poznań, rok akademicki 2013/2014

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

1 Projektowanie systemu informatycznego

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009

RDF (Resource Description Framework)

Sprawozdanie z laboratorium 2: Modeling knowledge with Resource Description Framework (RDF)

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Rozdział 4 KLASY, OBIEKTY, METODY

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Krzysztof Kutt Sprawozdanie 2: Modeling knowledge with Resource Description Framework (RDF)

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Semantic Web Internet Semantyczny

Internet Semantyczny. Linked Open Data

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Klasy abstrakcyjne, interfejsy i polimorfizm

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Technologie Sieci Semantycznych

Bazy danych TERMINOLOGIA

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Programowanie obiektowe

Programowanie obiektowe

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro

Od metadanych do map wiedzy

Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

zaznaczymy na osi liczbowej w ten sposób:

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Reprezentacja wiedzy ontologie, logiki deskrypcyjne

Programowanie obiektowe

Ontologia, wypożyczalnia wideo stworzona na podstawie relacyjnej bazy danych

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Języki modelowania ontologii: RDFs, OWL

Zastosowanie ontologii do organizacji informacji pozyskiwanych z Internetu

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

Tworzenie warstwy zasobów projektowanie metodą strukturalną

Zajęcia nr. 3 notatki

Interfejsy i klasy wewnętrzne

Na podstawie artykułu:

Język UML w modelowaniu systemów informatycznych

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

SYSTEM DO GENEROWANIA ONTOLOGII NA PODSTAWIE DIAGRAMÓW UML SYSTEM TO ONTOLOGY GENERATION FROM UML DIAGRAMS

Tabela wewnętrzna - definicja

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

Programowanie obiektowe - 1.

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

1. Mapowanie diagramu klas na model relacyjny.

Dokumentacja do API Javy.

Logika dla socjologów Część 4: Elementy semiotyki O pojęciach, nazwach i znakach

Rola języka XML narzędziem

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Katalog książek cz. 2

Modelowanie danych, projektowanie systemu informatycznego

Zadanie 1. Suma silni (11 pkt)

Podejście obiektowe wprowadzenie

29. Poprawność składniowa i strukturalna dokumentu XML

Rysunek 1: Przykłady graficznej prezentacji klas.

Modelowanie konceptualne model EER

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

Aplikacje w środowisku Java

DTD - encje ogólne i parametryczne, przestrzenie nazw

Języki modelowania ontologii: RDFs, OWL

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Wprowadzenie do technologii XML

Pakiety i interfejsy. Tomasz Borzyszkowski

Podejście obiektowe - podstawowe pojęcia

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

The Binder Consulting

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

problem w określonym kontekście siły istotę jego rozwiązania

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Przykładowy dokument XML

10. Programowanie obiektowe w PHP5

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Transkrypt:

RDF Schema (schematy RDF)

Schemat RDF nie dostarcza słownictwa dla aplikacji klasy jak np.: Namiot, Książka, lub Osoba; i właściwości, takich jak np.: waga w kg, autor lub jobtitle Schemat RDF zapewnia wyposażenie potrzebne do opisania tych klas i właściwości, oraz wskazania które klasy i właściwości mają być stosowane razem (np.: własność waga w kg będzie stosowana przy opisywaniu klasy Namiot). Innymi słowy, RDF Schema stanowi system RDF. Schemat RDF jest podobny pod pewnymi względami do obiektowych języków programowania takich jak Java.

Cechy RDF Schema przypominające języki programowania: - RDF Schema pozwala określić zasoby jako instancje jednej lub więcej klas. - określa hierarchie klas np.: klasa Pies może być zdefiniowana jako podklasa klasy Ssak, która jest podklasą klasy Zwierze

KLASY

Podstawowym krokiem w jakimkolwiek procesie opisu jest określenie różnych rodzajów rzeczy do opisania. RDF Schema odnosi się do tych "wielu rzeczy" jako klasy. Klasy RDF mogą być używane do reprezentowania prawie każdej kategorii, np. strony www, ludzie, typy dokumentów, bazy danych czy też pojęć abstrakcyjnych. Klasy są opisane za pomocą zasobów rdfs: Class i rdfs: Resource i właściwości rdf: type i rdfs: subclassof.

Załóżmy, że serwis example.org chce przekazywać informacje o różnych pojazdach mechanicznych. Najpierw potrzebujemy klasę do reprezentowania przedmiotów którymi są pojazdy mechaniczne. W RDF Schema, klasa jest dowolnym zasobem posiadającym właściwość rdf:type, której wartść jest zasobem rdfs:class. Więc klasa ex:motorvehicle będzie opisywana przez przypisanie URI: http://www.example.org/schemas/vehicles

A tak wygląda instrukcja RDF: ex:motorvehicle rdf:type rdfs:class. Jeżeli użyjemy zasobu klasy MotorVehicle który będzie miał nazwę commpanycar instrukcja RDF będzie miała postać: exthings:companycar rdf:type ex:motorvehicle. Wielkość liter nie ma znaczenia.

Można opisać dodatkowe klasy, reprezentujące różne wyspecjalizowane rodzaje pojazdów silnikowych, np. samochody osobowe, dostawcze, minivany, i tak dalej. Robimy to analogicznie jak wcześniej: ex:van rdf:type rdfs:class. ex:truck rdf:type rdfs:class. Można teraz uznać ze klasy te są wyspecjalizownaym rodzajem pojazdu mechanicznego co zapiszemy: ex:van rdfs:subclassof ex:motorvehicle. Mamy tu powiązanie dwóch klas za pomocą relacji rdfs:subclassof.

Dzieki temu jeżeli mamy pojazd companyvan należący do ex:van to należy też do ex:motorvehicle. ex:van rdfs:subclassof ex:motorvehicle. ex:companyvan rdfs:subclassof ex:van. Klasy mogą być podklasą więcej niż jednej klasy np.: klasa ex:minivan może być równocześnie podklasą klasy ex:van jak i ex:passengervehicle.

Schemat hierarchia klas pojazdów:

Schemat ten można zapisać w postaci: ex:motorvehicle rdf:type rdfs:class. ex:passengervehicle rdf:type rdfs:class. ex:van rdf:type rdfs:class. ex:truck rdf:type rdfs:class. ex:minivan rdf:type rdfs:class. ex:passengervehicle rdfs:subclassof ex:motorvehicle. ex:van rdfs:subclassof ex:motorvehicle. ex:truck rdfs:subclassof ex:motorvehicle. ex:minivan rdfs:subclassof ex:van. ex:minivan rdfs:subclassof ex:passengervehicle.

A także w RDF/XML

<?xml version="1.0"?> <!DOCTYPE rdf:rdf [<!ENTITY xsd "http://www.w3.org/2001/xmlschema#">]> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://example.org/schemas/vehicles"> <rdf:description rdf:id="motorvehicle"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> </rdf:description> <rdf:description rdf:id="passengervehicle"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdf:description> <rdf:description rdf:id="truck"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdf:description> <rdf:description rdf:id="van"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdf:description> <rdf:description rdf:id="minivan"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#van"/> <rdfs:subclassof rdf:resource="#passengervehicle"/> </rdf:description> </rdf:rdf>

Jak wiadomo z poprzednich zajęć RDF/XML stanowi skrót opisu zasobów własności rdf:type. Ponieważ klasy schematów RDF są zasobami RDF, ten skrót może być stosowany do opisu klas. Zastosowanie tego skrótu wygląda następująco:

<?xml version="1.0"?> <!DOCTYPE rdf:rdf [<!ENTITY xsd "http://www.w3.org/2001/xmlschema#">]> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://example.org/schemas/vehicles"> <rdfs:class rdf:id="motorvehicle"/> <rdfs:class rdf:id="passengervehicle"> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdfs:class> <rdfs:class rdf:id="truck"> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdfs:class> <rdfs:class rdf:id="van"> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdfs:class> <rdfs:class rdf:id="minivan"> <rdfs:subclassof rdf:resource="#van"/> <rdfs:subclassof rdf:resource="#passengervehicle"/> </rdfs:class> </rdf:rdf>

WŁAŚCIWOŚCI

Oprócz opisu konkretnych klas z rzeczy, które chcą opisać, społeczności użytkowników muszą także być w stanie opisać specyficzne właściwości, które charakteryzują te grupy. W RDF Schema, właściwości są opisane za pomocą klasy rdf:property i właściwości rdfs:domain, rdfs:range i rdfs:subpropertyof. Wszystkie własności w RDF są opisane jako instancje klasy rdf: Property. Tak więc, nowa własność, taka jak exterms: weightinkg, jest opisana przez przypisanie URI i opisywanie tego zasobu z właściwości rdf:type, którego wartość jest zasobem rdf:property, na przykład, pisząc instrukcję: exterms:weightinkg rdf:type rdf:property.

RDF Schema również zapewnia słownictwo do opisu właściwości i klas, które są przeznaczone do używania razem w danych RDF. Wartość rdf:range jest używana do wskazania, że wartościami poszczególnych własności są przypadki wyznaczonej klasy. Na przykład, jeśli example.org chciał wskazać, że autor miał własności, które są wystąpieniami klasy Osoba, to trzeba napisać: ex:person rdf:type rdfs:class. ex:author rdf:type rdf:property. ex:author rdfs:range ex:person.

Niech dana będzie klasa ex:hasmother. Może mieć ona zero, jeden lub więcej zakresów wartości. Jeśli ex:hasmother nie posiada żadnych wartości to nic o nich nie mówimy. Jeśli ex:hasmother ma jeden zakres wartości, powiedzmy określenie w klasie ex.person, to mówimy że wartościami ex:hasmother są przypadki klasy ex:person. Jeżeli posiada więcej niż jede zakres wartości np. dwa ex:person i ex:female, to mówimy że wartościami ex:hasmother są przypadki wszystkich klas będących w jej zakresie. W tym przypadku klasy ex:person i ex:female.

Biorąc pod uwagę, że ex:hasmother ma dwa zakresy wartości ex:person i ex:female wiążą się z tym dwie oddzielne instrukcje: ex:hasmother rdfs:range ex:female. ex:hasmother rdfs:range ex:person.

Rdfs:range może być również używany do wskazania, że wartość właściwości podaje się o określonym typie literału. Na przykład, jeśli example.org chciał wskazać, że ex:age miał wartości z XML Schema typu danych xsd:integer, to należy napisać: ex:age rdf:type rdf:property. ex:age rdfs:range xsd:integer. Typ danych xsd:integer jest identyfikowany przez URI. Może być używany bez wyraźnego stwierdzenia że identyfikuje typ danych. Jednakże często jest to przydatne. Można to zrobić za pomocą klasy rdfs:datatype. Aby sprawdzić, że xsd:integer to typ danych, należy napisać instrukcję: xsd:integer rdf:type rdfs:datatype.

Takie oświadczenie nie stanowi definicji typu danych, np. w tym sensie, że jest określenie nowego typu danych. Nie ma sposobu określenia typów danych w schemacie RDF. Typy danych są zdefiniowane na zewnątrz RDF. To oświadczenie służy wyłącznie do dokumentacji istnienia typu danych, i wyraźnie wskazują, że jest on używany w tym schemacie.

Rdfs:domain jest używany do wskazania, że dana właściwość ma zastosowanie do wyznaczonej klasy. Na przykład, jeśli chciałby się wskazać, że ex:author odnosi się do instancji klasy ex:book, to należy napisać: ex:book rdf:type rdfs:class. ex:author rdf:type rdf:property. ex:author rdfs:domain ex:book.

Niech dana będzie wartość exterms: weight. Może mieć ona zero, jeden lub więcej dziedzin wartości. Analogicznie jak dla zakresów wartości. Jeżeli ma zero to nic o nich nie mówimy, jeżeli jedną np. ex:book to wartość wagi odnosi się do instancji klasy ex:book. Itd. Stwierdzając że wartość exterms: weight może mieć dwie domeny np. ex:book i ex:motorvehicle powoduje stworzenie dwóch odrębnych instrukcji: exterms:weight rdfs:domain ex:book. exterms:weight rdfs:domain ex:motorvehicle.

Korzystając z tej własności mamy: exthings:companycar exterms:weight "2500"^^xsd:integer. Aby rdfs.domain było prawidłowe exthings:companycar musi być zarówno instancją klasy ex:book i ex:motorvehicle.

Część opisów własności na schemacie pojazdów <rdf:property rdf:id="registeredto"> <rdfs:domain rdf:resource="#motorvehicle"/> <rdfs:range rdf:resource="#person"/> </rdf:property> <rdf:property rdf:id="rearseatlegroom"> <rdfs:domain rdf:resource="#passengervehicle"/> <rdfs:range rdf:resource="&xsd;integer"/> </rdf:property> <rdfs:class rdf:id="person"/> <rdfs:datatype rdf:about="&xsd;integer"/>

Rozbudowany schemat pojazdu w postaci RDF/XML

<rdfs:class rdf:id="minivan"> <rdfs:subclassof rdf:resource="#van"/> <rdfs:subclassof rdf:resource="#passengervehicle"/> </rdfs:class> <?xml version="1.0"?> <!DOCTYPE rdf:rdf [<!ENTITY xsd "http://www.w3.org/2001/xmlschema#">]> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntaxns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://example.org/schemas/vehicles"> <rdfs:class rdf:id="motorvehicle"/> <rdfs:class rdf:id="passengervehicle"> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdfs:class> <rdfs:class rdf:id="truck"> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdfs:class> <rdfs:class rdf:id="van"> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdfs:class>

<rdfs:class rdf:id="person"/> <rdfs:datatype rdf:about="&xsd;integer"/> <rdf:property rdf:id="registeredto"> <rdfs:domain rdf:resource="#motorvehicle"/> <rdfs:range rdf:resource="#person"/> </rdf:property> <rdf:property rdf:id="rearseatlegroom"> <rdfs:domain rdf:resource="#passengervehicle"/> <rdfs:range rdf:resource="&xsd;integer"/> </rdf:property> <rdf:property rdf:id="driver"> <rdfs:domain rdf:resource="#motorvehicle"/> </rdf:property> <rdf:property rdf:id="primarydriver"> <rdfs:subpropertyof rdf:resource="#driver"/> </rdf:property> </rdf:rdf>

Jak wspomniano wcześniej, schemat RDF jest podobny pod pewnymi względami do systemów obiektowych języków programowania takich jak Java. Jednakże, RDF różni się od większości języków pod wieloma ważnymi względami.

Różnice: - jedną z istotnych różnic jest to, że zamiast opisywać klasy jako zbiór specyficznych właściwości, RDF Schema opisuje właściwości mające zastosowanie do konkretnych klas, za pomocą domeny i zakresu właściwości. Zakres opisu atrybutu w większości języków programowania jest ograniczony do klasy, w której jest zdefiniowany. W RDF, opisy właściwości są domyślne, niezależne od definicji klasy, i standardowo mają zakres globalny.

- opisy RDF Schema niekoniecznie są normatywne, w przeciwieństwie do języków programowania. Na przykład, jeśli język programowania deklaruje klasę Book z atrybutem autora o wartości Person, zazwyczaj jest to interpretowane jako grupa ograniczeń. Język nie pozwoli na stworzenie instancji Book bez atrybutu autora i nie pozwoli na instancje Book z atrybutem autora, gdzie nie ma jego wartość Person.

RDF Schema stanowi podstawowe funkcje opisujące słowniki RDF, ale są również dodatkowe możliwości, które mogą być użyteczne. Funkcje te mogą być świadczone przez dalszy rozwój RDF Schema, lub w innych językach opartych na RDF. Inne możliwości schematu, które mogą być przydatne (ale nie są dostarczane przez RDF Schema) obejmują:

- ograniczenia właściwości, np., że człowiek ma dokładnie jednego biologicznego ojca, - określona właściwość jest przechodnia (np.: jeżeli C jest przodkiem B, a A potomkiem B, to C jest tez przodkiem A), - dana właściwość może być identyfikatorem (kluczem) dla instancji danej klasy, - dwie różne klasy (o różnych URI) reprezentują jedną klasę, - dwa różne przypadki (o różnych URI) reprezentują tą samą jednostkę, - określenie ograniczeń w zakresie lub liczności własności, które zależą od klasy, do których właściwość jest stosowana, np. dla drużyny piłkarskiej ex:hasplayers ma 11 wartości, a dla drużyny koszykówki tylko 5 wartości, - zdolność do opisania nowych klas w zakresie kombinacji (np. związków i przecięć) z innymi klasami, czy też rozłączności (tzn., że nie jest instancją obu klasach).

Koniec