Internet Semantyczny Schematy RDF i wnioskowanie
Ewolucja Internetu Internet dzisiaj Internet Semantyczny Jorge Cardoso, The Syntactic and the Semantic Web, in Semantic Web Services: Theory, Tools, and Applications, IGI Global, 2007.
Schematy RDF Język RDFS (RDF schema) dostarcza nam sposób mówienia o słownictwie wykorzystywanym w grafach RDF Można powiedzieć RDFS pozwala nam definiować słownictwo wykorzystywane w grafach RDF. Jaka jest różnica między XML schema i RDF schema? Schematy XML pozwalają określić strukturę dokumentu XML. SYNTAKTYKA Schematy RDF pozwalają określić znaczenie danych zapisanych w RDF. SEMANTYKA
Schematy RDF Przypisanie znaczenia do danych odbywa się dzięki mechanizmowi wnioskowania. Przez wnioskowanie rozumiemy sytuację w której możliwe jest posiadanie większej informacji na temat pewnego zbioru danych niż wprost (explicite) zapisano w tych danych. Można powiedzieć, że ujawnienie tej dodatkowej informacji (nie zapisanej wprost) oznacza eksplikację (objaśnienie) znaczenia (chociaż tylko w niewielkim stopniu) oryginalnego zbioru danych.
Schematy RDF Rozważmy następujące zdanie: A9 ghyty ertyfvgjh. Jakie jest znaczenie poszczególnych elementów np. A9? Znaczenie to może być objaśnione za pomocą dodatkowych stwierdzeń np.: A9 jest miastem. A9 leży nad Wisłą. W A9 znajduje się jeden most. Im więcej takich dodatkowych zdań tym lepiej określone znaczenie.
Schematy RDF W języku RDF dowolny zbiór danych będzie miał postać zbioru stwierdzeń RDF. Znaczenie tych stwierdzeń będzie częściowo określone za pomocą nowych (wywnioskowanych) stwierdzeń. WNIOSKOWANIE ZNACZENIE Wnioskowanie będzie możliwe dzięki schematom RDF, które są także zbiorami stwierdzeń RDF.
Schematy RDF RDFS rozszerza RDF przez wprowadzenie pewnych wyróżnionych zasobów RDF nie wyróżnia żadnych zasobów! Znaczenie każdego z tych zasobów określone jest przez wnioskowanie jakie może być przeprowadzone jeżeli zasób jest użyty w pewien szczególny sposób. W dalszym ciągu omówimy podstawowe zasoby wprowadzone w RDFS. Określimy także warunki po spełnieniu których możliwe jest uzyskanie nowych (wywnioskowanych) stwierdzeń.
Schematy RDF Podstawowymi elementami które określamy w RDFS są klasy (ang. class) zasobów i właściwości (ang. property) zasobów charakterystyczne dla interesującego nas fragmentu rzeczywistości. prefix rdf: namespace URI: http://www.w3.org/1999/02/22-rdf-syntax-ns# prefix rdfs: namespace URI: http://www.w3.org/2000/01/rdf-schema#
RDFS - klasy Definicja klasy (Turtle): URIklasa rdf:type rdfs:class. gdzie rdfs:class jest klasą wszystkich klas. Przykład Klasy Publikacja, Ksiazka, PublikcjaInternet definiujemy następująco: :Publikacja rdf:type rdfs:class. :Ksiazka rdf:type rdfs:class. :PublikacjaInternet rdf:type rdfs:class. Co to znaczy być elementem klasy?
Bycie elementem klasy oznacza bycie elementem jej superklasy. RDFS - podklasy Schematy RDF pozwalają zapisywać relację zawierania jednej klasy (podklasa) w drugiej (superklasa). Definicja podklasy (Turtle): URIklasa1 rdfs:subclassof URIklasa2. Jakie jest znaczenie rdfs:subclassof? Schemat wnioskowanie: A rdfs:subclassof B. r rdf:type A. r rdf:type B.
Interpretacja: każda książka jest publikacją, każda publikacja internetowa jest publikacją. RDFS - klasy Przykład :Ksiazka rdfs:subclassof :Publikacja. :PublikacjaInternet rdfs:subclassof :Publikacja. is-a Publikacja is-a Ksiazka PublikacjaInternet
RDFS - klasy Przykład Pracownik Pracownik administracyjny Członek kadry akademicka Pracownik techniczny Profesor Wykładowca
RDFS - klasy Przykład @prefix rdf: <http://www.w3.org/1999/02/22-rdfsyntax-ns#>. @prefix rdfs: <http://www.w3.org/2000/01/rdfschema#>. @base <http://makolab.com/onto/uco>. <#motorvehicle> rdf:type rdfs:class. <#van> rdf:type rdfs:class. <#van> rdfs:subclassof <#motorvehicle>. <#truck> rdf:type rdfs:class. <#truck> rdfs:subclassof <#motorvehicle>. <#passengervehicle> rdf:type rdfs:class. <#passengervehicle> rdfs:subclassof <#motorvehicle>. <#minivan> rdf:type rdfs:class. <#minivan> rdfs:subclassof <#passengervehicle>. <#minivan> rdfs:subclassof <#van>.
RDFS - klasy Przykład (cd)
RDFS - klasy Właściwość rdfs:subclassof jest przechodnia. Schemat wnioskowania: A rdfs:subclassof B. B rdfs:subclassof C. A rdfs:subclassof C. Przykład :Reprezentant rdfs:subclassof :ZawodnikKlubu. :ZawodnikKlubu rdfs:subclassof :Sportowiec. :Reprezentant rdfs:subclassof :Sportowiec.
RDFS właściwości Definicja właściwości (Turtle): URIwłaściwość rdf:type rdf:property. gdzie rdf:property jest klasą wszystkich właściwości. Przykład Właściwości tytuł, numerisbn, autor definiujemy następująco: :tytul rdf:type rdf:property. :numerisbn rdf:type rdf:property. :autor rdf:type rdf:property.
RDFS - podwłaściwości Schematy RDF pozwalają zapisywać relację zawierania jednej właściwości w drugiej: Definicja podwłaściwości (Turtle): URIwłaściwość1 rdfs:subpropertyof URIwłaściwość2. Jakie jest znaczenie rdfs:subpropertyof? Schemat wnioskowania: P rdfs:subpropertyof R. x P y. x R y.
RDFS - podwłaściwości Przykład :tytulksiazki rdfs:subpropertyof :tytul. :jestmama rdfs:subpropertyof :jestrodzicem. Wnioskowanie: :jestmama rdfs:subpropertyof :jestrodzicem. aaa:x1 :jestmama aaa:x2. aaa:x1 :jestrodzicem aaa:x2.
RDFS - podwłaściwości Przykład Wnioskowanie: :jestzatrudnionyprzez rdfs:subpropertyof :pracujedla. :makontaktmailowy rdfs:subpropertyof :makontakt. a:marek :jestzatrudnionyprzez b:234. a:marek :makontaktmailowy b:112. a:marek :pracujedla b:234. a:marek :makontakt b:112.
RDFS - podwłaściwości Właściwość rdfs:subpropertyof jest przechodnia. Schemat wnioskowania: A rdfs:subpropertyof B. B rdfs:subpropertyof C. A rdfs:subpropertyof C. Przykład :jesttata rdfs:subpropertyof :jestrodzicem. :jesrrodzicem rdfs:subpropertyof :jestopiekunem. :jesttata rdfs:subpropertyof :jestopiekunem.
RDFS dziedzina Schematy RDF pozwalają określić dziedzinę (domain) właściwości: Definicja dziedziny (Turtle): URIwłaściwość rdfs:domain URIzasobu. Jakie jest znaczenie rdfs:domain? Schemat wnioskowania: P rdfs:domain R. x P y. x rdf:type R.
RDFS dziedzina rdfs:domain - określa dziedzinę właściwości P tzn. klasę zasobów, które mogą się pojawić jako zasób z właściwością P. Jeżeli dziedzina nie jest określona może nią być dowolna klasa. Przykład Wnioskowanie: :tytul rdfs:domain :Publikacja. aaa:x1 :tytul aaa:x2. aaa:x1 rdf:type :Publikacja.
RDFS zakres Schematy RDF pozwalają określić zakres (range) właściwości: Definicja dziedziny (Turtle): URIwłaściwość rdfs:range URIzasobu. Jakie jest znaczenie rdfs:range? Schemat wnioskowania: P rdfs:range R. x P y. y rdf:type R.
RDFS zakres rdfs:range - określa zakres właściwości P tzn. klasę zasobów, które mogą się pojawić jako wartość właściwości P. Przykład Wnioskowanie: :autor rdfs:range :Osoba. aaa:x1 :autor aaa:x2. aaa:x2 rdf:type :Osoba.
RDF i RDFS
RDFS właściwości bez semantyki Oprócz właściwości poznanych do tej pory w RDFS określone są właściwości nie związane z wnioskowaniem, właściwości bez semantyki. W właściwościami takimi nie są związane żadne reguły wnioskowania. Mogą być one wykorzystywane np. wtedy gdy schemat RDF jest wyświetlany w formie zrozumiałej dla ludzi.
RDFS rdfs:label Zasoby w Internecie Semantycznym są globalnie identyfikowane za pomocą identyfikatorów URI. Identyfikatory te mogą być niezrozumiałe dla ludzi: <http://merlin.phys.uni.lodz.pl/quontom/state> rdf:type rdfs.class. W języku RDFS istnieje właściwość rdfs:label służąca do określenia zasobu w sposób zrozumiały dla ludzi: <http://merlin.phys.uni.lodz.pl/quontom/state> rdfs:label "Quantum state".
RDFS rdfs:seealso Jeżeli istnieje potrzeba dostarczenia dodatkowych informacji o zasobie możemy wykorzystać właściwość rdfs:seealso. Wartością tej właściwości powinien być identyfikator URI. <http://merlin.phys.uni.lodz.pl/quontom/state> rdfs:label "Quantum state"; rdfs:seealso <http://en.wikipedia.org/wiki/quantum_state>. <http://www.w3.org/2000/01/rdf-schema#> rdfs:seealso <http://www.w3.org/2000/01/rdf-schema-more#>
RDFS rdfs:isdefinedby Właściwość rdfs:seealso pozwala wskazać dodatkowe informacje o zasobie. Właściwość rdfs:isdefinedby służy do wskazania podstawowego źródła informacji o zasobie. Wartością tej właściwości powinien być identyfikator URI. Zależność między obiema właściwościami: rdfs:isdefinedby rdfs:subproperty rdfs:seealso.
RDFS rdfs:comment Komentarze (oczywiście skierowane do osób) dotyczące zasobów możemy dodawać za pomocą właściwości rdfs:comment. <http://merlin.phys.uni.lodz.pl/quontom/state> rdfs:label "Quantum state"; rdfs:isdefinedby rdfs:seealso rdfs:subproperty rdfs:seealso. <http://en.wikipedia.org/wiki/quantum_state>; rdfs:comment "A quantum state is a mathematical object that fully describes a quantum system".
RDFS ograniczenia
.rozwiązanie? W celu bardziej precyzyjnego opisywania fragmentów rzeczywistości potrzebujemy rozszerzyć możliwości języka RDFS. Rozszerzeniem takim jest język OWL (ang. Ontology Web Language) służący do opisu ontologii. Definicja (Gruber) Ontologia to formalna specyfikacja konceptualizacji pewnego obszaru wiedzy czy opisu elementów rzeczywistości.
www.semanticweb.org