Próbuję uchwycić koncepcję Semantic Web. Trudno mi zrozumieć, jaka dokładnie jest różnica między RDF a OWL. Czy OWL jest rozszerzeniem RDF, czy te dwie są zupełnie różnymi technologiami?
rdf
semantic-web
owl
użytkownik32262
źródło
źródło
Odpowiedzi:
Sieć semantyczna jest podzielona na warstwy. To jest krótkie podsumowanie tych, które moim zdaniem są zainteresowane.
Aktualizacja : Należy pamiętać, że RDFS służy do definiowania struktury danych, a nie OWL. OWL opisuje relacje semantyczne, o których normalne programowanie, takie jak struktura C, nie jest rozrzucone i jest bliższe badaniom AI i teorii mnogości.
Trójki i URI
Opisują one jeden fakt. Zasadniczo identyfikatory URI są używane dla podmiotu i predykatu. Obiekt to albo inny identyfikator URI, albo literał, taki jak liczba lub ciąg znaków. Literały mogą mieć typ (który jest również URI), a także mogą mieć język. Tak, oznacza to, że trójki mogą mieć do 5 bitów danych!
Na przykład potrójny może opisać fakt, że Charles jest ojcem Harry'ego.
Trójki są normalizacją baz danych, doprowadzoną do logicznego ekstremum. Mają tę zaletę, że można ładować trzykrotnie z wielu źródeł do jednej bazy danych bez rekonfiguracji.
RDF i RDFS
Kolejną warstwą jest RDF - struktura opisu zasobów. RDF definiuje dodatkową strukturę dla potrójnych. Najważniejszą definicją RDF jest predykat o nazwie „rdf: type”. Jest to używane do stwierdzenia, że rzeczy są pewnego rodzaju. Każdy używa rdf: type, co czyni go bardzo przydatnym.
RDFS (schemat RDF) definiuje niektóre klasy, które reprezentują pojęcie podmiotów, obiektów, predykatów itp. Oznacza to, że możesz zacząć składać oświadczenia o klasach rzeczy i typach relacji. Na najprostszym poziomie możesz powiedzieć takie rzeczy, jak http://familyontology.net/1.0#hasFather to związek między osobą a osobą. Pozwala również opisać w tekście czytelnym dla człowieka znaczenie relacji lub klasy. To jest schemat. Informuje o legalnym wykorzystaniu różnych klas i relacji. Służy również do wskazania, że klasa lub właściwość jest podtypem bardziej ogólnego typu. Na przykład „HumanParent” jest podklasą „Person”. „Loves” to podklasa „Knows”.
Serializacje RDF
RDF można eksportować w wielu formatach plików. Najczęściej jest to RDF + XML, ale ma to pewne słabości.
N3 jest formatem innym niż XML, który jest łatwiejszy do odczytania, a niektóre podzbiory (Turtle i N-Triples) są bardziej rygorystyczne.
Ważne jest, aby wiedzieć, że RDF jest sposobem pracy z potrójnymi, a NIE formatami plików.
XSD
XSD to przestrzeń nazw używana głównie do opisywania typów właściwości, takich jak daty, liczby całkowite i tak dalej. Zazwyczaj jest to widoczne w danych RDF identyfikujących konkretny rodzaj literału. Jest również używany w schematach XML, który jest nieco innym kotłem ryb.
SOWA
OWL dodaje semantykę do schematu. Pozwala określić znacznie więcej na temat właściwości i klas. Wyraża się to także trzykrotnie. Na przykład może to oznaczać, że „Jeśli A jest zamężny do B”, oznacza to, że „B jest zamężny do A”. Lub, że jeśli „ C jestAncestorOf D ” i „ D jestAncestorOf E ”, wówczas „ C jestAncestorOf E ". Kolejną przydatną rzeczą, którą dodaje sowa, jest możliwość powiedzenia, że dwie rzeczy są takie same, co jest bardzo pomocne w łączeniu danych wyrażonych w różnych schematach. Można powiedzieć, że relacja„ sired ”w jednym schemacie to sowa: sameAs jakiś inny schemat. Można go również użyć, aby powiedzieć, że dwie rzeczy są takie same, na przykład „Elvis Presley” na wikipedii jest taki sam na BBC. Jest to bardzo ekscytujące, ponieważ oznacza, że możesz zacząć łączyć dane z wielu witryn (jest to „Połączone dane”).
Możesz także użyć OWL, aby wywnioskować domniemane fakty, takie jak „ C isAncestorOf E ”.
źródło
W skrócie:
Jak napisał poprzedni plakat, RDF jest specyfikacją, która mówi, jak zdefiniować potrójne.
Problem polega na tym, że RDF pozwala ci zdefiniować wszystko, więc możesz napisać taką deklarację:
Te trójki tworzą ważne dokumenty RDF.
Ale semantycznie rozumiesz, że te stwierdzenia są niepoprawne i RDF nie może ci pomóc zweryfikować tego, co napisałeś.
To nie jest poprawna ontologia.
Specyfikacja OWL definiuje dokładnie to , co możesz napisać za pomocą RDF, aby mieć prawidłową ontologię.
Ontologie mogą mieć kilka właściwości.
Właśnie dlatego OWL (wer. 1) definiuje kilka wersji, takich jak OWL DL, OWL Lite, OWL Full.
źródło
RDF, RDFS i OWL są środkami do wyrażania coraz bardziej złożonych informacji lub wiedzy. Wszystkie z nich mogą być serializowane w składni RDF / XML (lub w dowolnej innej składni serializacji RDF, na przykład Turtle lub N3).
Technologie te są powiązane i powinny być interoperacyjne, ale mają różne pochodzenie, być może dlatego relacja między nimi jest trudna do zrozumienia. Wybór jednego lub drugiego zależy od stopnia złożoności, jakiej wymaga modelowana sytuacja.
Podsumowanie ekspresji
RDF : Prosta reprezentacja, skoncentrowana na instancjach i mapowaniu na ich typy (
rdf:type
). Możliwe jest zdefiniowanie niestandardowych właściwości do łączenia danych i tworzenia potrójnych. Dane RDF są sprawdzane za pomocą SPARQL. Przykład serializacji RDF w Turtle:RDFS: Niektóre sytuacje nie są łatwo modelowane przez sam RDF, czasami interesujące jest reprezentowanie bardziej złożonych relacji, takich jak na przykład podklasy ( typ typu ). RDFS zapewnia specjalne środki do reprezentowania tych przypadków, z konstruktami podoba
rdfs:subClassOf
,rdfs:range
albordfs:domain
. Idealnie, rozumujący może zrozumieć semantykę RDFS i rozszerzyć liczbę potrójnych na podstawie relacji: Na przykład, jeśli masz potrójne,John a Man
aMan rdfs:subClassOf
Human
następnie powinieneś wygenerować potrójneJohn a Human
. Pamiętaj, że nie jest to możliwe w przypadku samego RDF. Dane RDFS są sprawdzane za pomocą SPARQL. Przykład serializacji RDFS w programie Turtle:SOWA: najwyższy poziom ekspresji. Relacje między klasami można formalnie modelować w oparciu o logikę opisu (teorię matematyczną). OWL w dużej mierze opiera się na rozumowaniu, możliwe jest wyrażanie złożonych konstrukcji, takich jak na przykład właściwości łańcuchowe lub ograniczenie między klasami. OWL służy do budowania ontologii lub schematów na zestawach danych RDF. Ponieważ OWL może być szeregowany jako RDF / XML, teoretycznie możliwe jest zapytanie go za pomocą SPARQL, ale o wiele bardziej intuicyjne jest zapytanie ontologii OWL za pomocą zapytania DL (które jest zwykle standardowym wyrażeniem klasy OWL). Przykład konstrukcji OWL serializowanych w Turtle.
źródło
Po pierwsze, jak już wspomniano, sowa może być serializowana w RDF.
Po drugie, OWL dodaje RDF możliwości ontologiczne (które same w sobie zapewniają jedynie bardzo ograniczone możliwości formalnej reprezentacji wiedzy), dostarczając urządzenie do definiowania elementów twojego potrójnego za pomocą formalnej logicznej opisowej logiki opisu pierwszego rzędu. Tak właśnie rozumieją plakaty, kiedy mówią o „bogactwie semantycznym”.
Po trzecie, ważne jest, aby zdać sobie sprawę, że w OWL-Full (dla OWL 1) rdfs: class i owl: class są równoważne, aw OWL-DL owl: class jest podklasą rdfs: class. W efekcie oznacza to, że możesz użyć ontologii OWL jako schematu dla RDF (który formalnie nie wymaga schematów).
Mam nadzieję, że to pomoże w dalszym wyjaśnieniu.
źródło
Kiedy używasz terminu RDF, musisz rozróżnić dwie rzeczy:
Możesz odwołać się do RDF jako pojęcia :
Sposób opisywania rzeczy / logiki / czegokolwiek przy użyciu zbiorów potrójnych.
Przykład:
„Anna ma jabłka”. „Jabłka są zdrowe”.
Powyżej masz dwie tróje opisujące dwa zasoby: „Anna” i „jabłka”. Koncepcja RDF (Resource Description Framework) polega na tym, że możesz opisywać zasoby (cokolwiek) za pomocą zestawów tylko 3 słów (terminów). Na tym poziomie nie obchodzi Cię, jak przechowujesz informacje, czy masz ciąg 3 słów, obraz na ścianie, czy stół z 3 kolumnami itp.
Na tym poziomie koncepcyjnym jedyną ważną rzeczą jest to, że możesz reprezentować wszystko, co chcesz, używając potrójnych instrukcji.
Możesz odwoływać się do RDF jako słownictwa
Słownictwo to tylko zbiór definicji terminów przechowywanych w pliku lub gdzieś. Te zdefiniowane terminy mają na celu ponowne użycie w innych opisach, aby ludzie mogli łatwiej i w standardowy sposób opisywać dane (zasoby).
W Internecie można znaleźć standardowe słowniki, takie jak:
RDF ( https://www.w3.org/1999/02/22-rdf-syntax-ns )
RDFS ( https://www.w3.org/2000/01/rdf-schema# )
OWL ( https://www.w3.org/2002/07/owl )
Słownictwo RDF definiuje terminy, które pomagają opisać (na możliwie najbardziej podstawowym poziomie) osoby / wystąpienia klas. Przykład: rdf: typ, rdf: Właściwość.
Za pomocą rdf: type możesz opisać, że jakiś zasób jest instancją klasy:
Tak więc słownictwo RDF zawiera terminy, które dotyczą podstawowych opisów instancji klas i niektórych innych opisów (takich jak definicja potrójnej instrukcji lub definicja predykatu ... ogólnie rzecz biorąc, które są powiązane z koncepcją RDF).
Słownictwo RDFS zawiera definicje terminów, które pomagają opisać klasy i relacje między nimi. Słownictwo RDFS nie obchodzi instancji klas (osób) takich jak słownictwo RDF. Przykład: właściwość rdfs: subClassOf, której można użyć do opisania, że klasa A jest podklasą klasy B.
Słowniki RDF i RDFS są od siebie zależne. RDF definiuje swoje terminy przy użyciu RDFS, a RDFS używa RDF do definiowania własnych terminów.
Słowniki RDF / RDFS zawierają terminy, których można użyć do stworzenia bardzo podstawowych opisów zasobów. Jeśli chcesz mieć bardziej złożone i dokładne opisy, musisz użyć słownictwa OWL.
Słownictwo OWL zawiera zestaw nowych terminów ukierunkowanych na bardziej szczegółowe opisy. Te terminy są zdefiniowane przy użyciu terminów ze słowników RDF / RDFS.
Jak widać powyżej, słownictwo OWL rozszerza koncepcję rdf: Property, tworząc nowe typy właściwości, które są mniej abstrakcyjne i mogą zapewnić dokładniejsze opisy zasobów.
Wnioski:
źródło
RDF to sposób na zdefiniowanie potrójnego „podmiotu”, „predykatu”, „wartości” . Na przykład, jeśli chcę powiedzieć
Napisałbym
Widzisz
<foaf:name>
? jest częścią ontologii FOAF . Ontologia to formalny sposób opisu właściwości, klas danego przedmiotu, a OWL to (RDF) sposób definiowania ontologii.Używasz C ++, Java itp. ... do zdefiniowania klasy, podklasy, pola itp.
RDF używa OWL do definiowania tego rodzaju instrukcji.
Kolejne miejsce do zadawania tego rodzaju pytań: http://www.semanticoverflow.com/
źródło
Krótko mówiąc, tak, można powiedzieć, że OWL jest rozszerzeniem RDF.
Bardziej szczegółowo, za pomocą RDF można opisać ukierunkowany wykres, definiując trzykrotnie predykat podmiot-obiekt. Podmiot i obiekt są węzłami, predykat jest krawędzią, lub innymi słowy, predykat opisuje relację między podmiotem a obiektem. Na przykład
:Tolkien :wrote :LordOfTheRings
lub:LordOfTheRings :author :Tolkien
, itp ... Połączone systemy danych wykorzystują te trzy tryby do opisywania grafów wiedzy i zapewniają sposoby ich przechowywania, przeszukiwania. Teraz są to ogromne systemy, ale możesz używać RDF w mniejszych projektach. Każda aplikacja ma język specyficzny dla domeny (lub według terminów DDD wszechobecny język). Możesz opisać ten język w swojej ontologii / słownictwie, dzięki czemu możesz opisać model domeny aplikacji za pomocą wykresu, który możesz wizualizować, pokazać go ppl biznesowi, porozmawiać o decyzjach biznesowych na podstawie modelu i zbudować aplikację na górze tego. Możesz powiązać słownictwo aplikacji z danymi, które zwraca, oraz słownictwem znanym z wyszukiwarek, np. Mikrodanymi(na przykład możesz użyć HTML z RDFA, aby to zrobić), dzięki czemu wyszukiwarki mogą łatwo znaleźć twoje aplikacje, ponieważ wiedza na temat tego, co robi, będzie przetwarzana maszynowo. Tak działa sieć semantyczna. (Przynajmniej tak to sobie wyobrażam.)Teraz, aby opisać aplikacje zorientowane obiektowo, potrzebujesz typów, klas, właściwości, instancji itp. Dzięki RDF możesz opisywać tylko obiekty. RDFS (schemat RDF) pomaga opisywać klasy, dziedziczenie (na podstawie obiektów ofc.), Ale jest zbyt szeroki. Aby zdefiniować ograniczenia (na przykład jedno dziecko na chińską rodzinę), potrzebujesz innego słownictwa. OWL (język ontologii internetowej) wykonuje tę pracę. OWL to ontologia, za pomocą której można opisywać aplikacje internetowe. Integruje proste typy XSD.
Podobnie
RDF -> RDFS -> OWL -> MyWebApp
jest z kolejnością opisywania aplikacji internetowej w coraz bardziej szczegółowy sposób.źródło
personA friendsWith personB
), co (2) RDFS rozszerza to, zapewniając możliwość określenia relacji międzyobject classes
- tjclass Person <has 'friendsWith' relationship> Person
. Który pozwala na ówczesnego frazy RDF poprzez klasy:A:typeof:person friendsWith B:<typeof:person>
. I (3), OWL pozwala następnie określić ograniczenia relacji?RDFS pozwala wyrazić relacje między rzeczami poprzez standaryzację na elastycznym, potrójnym formacie, a następnie zapewnienie słownictwa („słów kluczowych”, takich jak
rdf:type
lubrdfs:subClassOf
), których można użyć do powiedzenia rzeczy.OWL jest podobny, ale większy, lepszy i gorszy. OWL pozwala powiedzieć o wiele więcej na temat modelu danych, pokazuje, jak efektywnie pracować z zapytaniami do baz danych i automatycznymi wnioskami oraz zapewnia przydatne adnotacje do wprowadzenia modeli danych w rzeczywisty świat.
1. różnica: słownictwo
Spośród różnic między RDFS i OWL najważniejsze jest to, że OWL zapewnia znacznie szersze słownictwo, którego można używać do wypowiadania się .
Na przykład, OWL zawiera wszystkich starych przyjaciół z RDFS takich jak
rdfs:type
,rdfs:domain
irdfs:subPropertyOf
. Jednak OWL daje ci także nowych i lepszych przyjaciół! Na przykład OWL pozwala opisywać dane w kategoriach ustawionych operacji:Umożliwia definiowanie równoważności w bazach danych:
Pozwala ograniczyć wartości właściwości:
w rzeczywistości OWL zapewnia tak wiele nowego, wyrafinowanego słownictwa, które można wykorzystać w modelowaniu danych i wnioskach, które ma swoją własną lekcję!
2. różnica: sztywność
Kolejną istotną różnicą jest to, że w przeciwieństwie do pieców OPB OWL nie tylko mówi, w jaki sposób można korzystać z pewnego słownictwa, to rzeczywiście mówi, jak nie można z niego korzystać. Z drugiej strony, RDFS daje ci świat, w którym możesz dodać praktycznie dowolną potrójną wartość.
Na przykład w RDFS wszystko, na co masz ochotę, może być instancją
rdfs:Class
. Możesz zdecydować, że Beagle jest,rdfs:Class
a następnie powiedzieć, że Fido jest przykładem Beagle :Następnie możesz zdecydować, że chciałbyś powiedzieć coś o psach, być może chcesz powiedzieć, że Beagle jest przykładem psów hodowanych w Anglii :
Interesującą rzeczą w tym przykładzie jest to, że
Example:Beagle
jest używana zarówno jako klasa, jak i instancja . Beagle to klasa, do której należy Fido , ale sama Beagle jest członkiem innej klasy: Things Bred in England.W RDFS wszystko to jest całkowicie legalne, ponieważ RDFS tak naprawdę nie ogranicza, które instrukcje można, a których nie można wstawić. Natomiast w OWL, a przynajmniej w niektórych odmianach OWL, powyższe stwierdzenia są w rzeczywistości nielegalne: po prostu nie wolno ci mówić, że coś może być zarówno klasą, jak i instancją.
Jest to druga ważna różnica między RDFS i OWL. RDFS umożliwia darmowy dla wszystkich , wszystko idzie w rodzaju świata pełnego Dzikiego Zachodu, Speak-Easies i Salvador Dali. Świat OWL narzuca znacznie sztywniejszą strukturę.
Trzecia różnica: adnotacje, meta-meta-dane
Załóżmy, że ostatnią godzinę spędziłeś na budowaniu ontologii opisującej twój biznes produkcyjny. Podczas lunchu Twoim zadaniem jest zbudowanie ontologii dla twojego biznesu produkującego zegary. Tego popołudnia, po dobrej kawie, twój szef mówi teraz, że będziesz musiał zbudować ontologię dla swojego bardzo dochodowego biznesu z zegarem i radiem. Czy istnieje sposób na łatwe ponowne wykorzystanie porannej pracy?
OWL sprawia, że robienie takich rzeczy jest bardzo, bardzo łatwe.
Owl:Import
jest to, czego można użyć w sytuacji, zegar radia, ale OWL daje również bogaty wybór adnotacji, takich jakowl:versionInfo
,owl:backwardsCompatibleWith
iowl:deprecatedProperty
, który może być łatwo używane modele danych powiązanie ze sobą w spójną całość wzajemnie.W przeciwieństwie do RDFS, OWL z pewnością zaspokoi wszystkie Twoje potrzeby związane z modelowaniem meta-meta-danych.
Wniosek
OWL zapewnia znacznie szersze słownictwo do zabawy, co ułatwia powiedzenie wszystkiego, co chcesz powiedzieć o swoim modelu danych. Pozwala nawet dostosować to, co mówisz, na podstawie obliczeniowych realiów współczesnych komputerów i zoptymalizować pod kątem konkretnych aplikacji (na przykład dla zapytań wyszukiwania). Ponadto OWL pozwala łatwo wyrazić relacje między różnymi ontologiami przy użyciu standardowej struktury adnotacji .
Wszystkie te zalety są w porównaniu z RDFS i zazwyczaj są warte dodatkowego wysiłku, jaki trzeba poświęcić, aby się z nimi zapoznać.
Źródło: RDFS vs. OWL
źródło
W modelu obiektowym dokumentu WC3: dokument jest abstrakcyjną rzeczą: AN pierwiastek z tekstem, komentarze, atrybuty i innych elementów zagnieżdżonych w nim.
W sieci semantycznej mamy do czynienia z zestawem „trójek”. Każda potrójna to:
OWL jest w sieci semantycznej, podobnie jak schematy w modelu obiektowym dokumentu W3C. Dokumentuje, co oznaczają różne identyfikatory URI i określa, w jaki sposób są one używane w formalny sposób, który może zostać sprawdzony przez maszynę. Sieć semantyczna może, ale nie musi być ważna w odniesieniu do OWL, która ma do niej zastosowanie, tak jak dokument może, ale nie musi, być ważny w odniesieniu do schematu.
RDF jest dla sieci semantycznej, podobnie jak XML dla DOM - jest to serializacja zbioru potrójnych.
Oczywiście, RDF jest zazwyczaj w odcinkach jako dokumentów XML ... ale ważne jest, aby zrozumieć, że RDF nie jest to samo, co „serializacji XML w RDF”.
Podobnie, OWL może być serializowany przy użyciu OWL / XML lub (przepraszam za to) może być wyrażony jako RDF, który sam jest zwykle serializowany jako XML.
źródło
Podstawowy stos semantyczny sieci został już wyjaśniony w tym wątku. Chciałbym skoncentrować się na wstępnym pytaniu i porównać RDF z OWL.
Korzystanie z OWL jest niezbędne do uzyskania większego znaczenia (rozumowania i wnioskowania) poprzez znajomość kilku faktów. Te „dynamicznie tworzone” informacje mogą być dalej wykorzystywane do zgodnych zapytań, takich jak w SPARQL.
Niektóre przykłady pokażą, że tak naprawdę działa z OWL - zostały zaczerpnięte z mojej rozmowy o podstawach sieci semantycznej na TYPO3camp Mallorca, Hiszpania w 2015 roku.
odpowiedniki według zasad
Oznacza to, że a
Spaniard
musi byćPerson
(a zatem dziedziczy wszystkie właściwości w części wnioskowania) i musi mieszkać w co najmniej jednej (lub więcej)SpanishCity
.znaczenie właściwości
Przykład pokazuje wynik zastosowania
inverseOf
do właściwościisPartOf
icontains
.liczności właściwości
Definiuje to, że każdy
Thing
(w tym scenariuszu najprawdopodobniej aHuman
) ma dokładnie dwoje rodziców - liczność jest przypisana dohasParent
właściwości.źródło
Obraz mówi tysiąc słów! Poniższy schemat powinien wzmocnić to, co powiedział Christopher Gutteridge w tej odpowiedzi, że sieć semantyczna jest „architekturą warstwową”.
Źródło: https://www.obitko.com/tutorials/ontologies-semantic-web/semantic-web-architecture.html
źródło
Struktura opisu zasobów (RDF) to potężny język reprezentacji wiedzy formalnej i podstawowy standard sieci semantycznej. Ma własne słownictwo, które definiuje podstawowe pojęcia i relacje (np. Rdf: type odpowiada relacji isA) oraz model danych, który umożliwia interpretacje maszynowe w postaci obiektu-predykatu-obiektu (wartość-właściwości-zasobu) potrójne, zwane potrójnymi RDF, takie jak książka z obrazkami. Rozszerzenie słownictwa RDF o pojęcia potrzebne do stworzenia kontrolowanych słowników i podstawowych ontologii nazywa się schematem RDF lub RDF Vocabulary Description Language (RDFS). RDFS umożliwia pisanie oświadczeń o klasach i zasobach oraz wyrażanie struktur taksonomicznych, na przykład poprzez relacje nadklasa-podklasa.
Złożone domeny wiedzy wymagają więcej możliwości niż dostępne w RDFS, co doprowadziło do wprowadzenia OWL . OWL obsługuje relacje między klasami (zjednoczenie, przecięcie, rozłączność, równoważność), ograniczenia liczności właściwości (minimalna, maksymalna, dokładna liczba, np. Każda osoba ma dokładnie jednego ojca), bogate typowanie właściwości, cechy właściwości i właściwości specjalne (przechodnie, symetryczny, funkcjonalny, odwrotny funkcjonalny, np. A ex: hasAncestor B i B ex: hasAncestor C implikuje, że A ex: hasAncestor C), określając, że dana właściwość jest unikalnym kluczem dla instancji określonej klasy oraz ograniczeń domeny i zakresu dla właściwości.
źródło