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?
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?
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
Subject - Predicate - Object
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.
<http://example.com/person/harry> <http://familyontology.net/1.0#hasFather> <http://example.com/person/charles> .
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 ”.
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ę:
| subject | predicate | object |
|---------|-----------|--------|
| Alex | Eats | Apples |
| Apples | Eats | Apples |
| Apples | Apples | Apples |
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.
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:
@prefix : <http://www.example.org/> .
:john rdf:type :Man .
:john :livesIn "New-York" .
:livesIn rdf:type rdf:Property .
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
albo rdfs: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
a Man rdfs:subClassOf
Human
następnie powinieneś wygenerować potrójne John 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:
@prefix : <http://www.example.org/> .
:john rdf:type :Man .
:Man rdfs:subClassOf :Human .
:john :livesIn "New-York" .
:livesIn rdf:type rdf:Property .
# After reasoning
:john rdf:type :Human .
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.
@prefix : <http://www.example.org/> .
:livesIn rdf:type owl:DatatypeProperty .
:Human rdf:type owl:Class .
:Man rdf:type owl:Class .
:Man rdfs:subClassOf :Human .
:John rdf:type :Man .
:John rdf:type owl:NamedIndividual .
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.
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:
<http://foo.com/anna> rdf:type <http://foo.com/teacher>
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.
owl:ObjectProperty a rdfs:Class ;
rdfs:label "ObjectProperty" ;
rdfs:comment "The class of object properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf rdf:Property .
owl:DatatypeProperty a rdfs:Class ;
rdfs:label "DatatypeProperty" ;
rdfs:comment "The class of data properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf rdf:Property .
owl:TransitiveProperty a rdfs:Class ;
rdfs:label "TransitiveProperty" ;
rdfs:comment "The class of transitive properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf owl:ObjectProperty .
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:
RDF to sposób na zdefiniowanie potrójnego „podmiotu”, „predykatu”, „wartości” . Na przykład, jeśli chcę powiedzieć
„nazywam się Pierre”
Napisałbym
<mail:me@where.com> <foaf:name> "Pierre"
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.
class Person
{
String email_as_id;
String name;
}
RDF używa OWL do definiowania tego rodzaju instrukcji.
Kolejne miejsce do zadawania tego rodzaju pytań: http://www.semanticoverflow.com/
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?
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.
personA friendsWith personB
), co (2) RDFS rozszerza to, zapewniając możliwość określenia relacji między object classes
- tj class 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
lub rdfs: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.
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
i rdfs:subPropertyOf
. Jednak OWL daje ci także nowych i lepszych przyjaciół! Na przykład OWL pozwala opisywać dane w kategoriach ustawionych operacji:
Example:Mother owl:unionOf (Example:Parent, Example:Woman)
Umożliwia definiowanie równoważności w bazach danych:
AcmeCompany:JohnSmith owl:sameAs PersonalDatabase:JohnQSmith
Pozwala ograniczyć wartości właściwości:
Example:MyState owl:allValuesFrom (State:NewYork, State:California, …)
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ę!
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 :
Example: Beagle rdf:Type rdfs:Class
Example:Fido rdf:Type Example: 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 :
Example:Beagle rdf:Type Example:BreedsBredInEngland
Example: BreedsBredInEngland rdf:Type rdfs:Class
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ę.
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 jak owl:versionInfo
, owl:backwardsCompatibleWith
i owl: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.
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
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.
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.
Spaniard: Person and (inhabitantOf some SpanishCity)
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
.
<Palma isPartOf Mallorca>
<Mallorca contains Palma>
Przykład pokazuje wynik zastosowania inverseOf
do właściwości isPartOf
i contains
.
<:hasParent owl:cardinality “2“^^xsd:integer>
Definiuje to, że każdy Thing
(w tym scenariuszu najprawdopodobniej a Human
) ma dokładnie dwoje rodziców - liczność jest przypisana do hasParent
właściwości.
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
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.