Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_ard_rdf [2008/09/16 23:16]
miw
pl:miw:miw08_ard_rdf [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Opis ====== ====== Opis ======
 +__**Projekt zakończony**__
 +
 Rafał Szymczyk, <​raf.szymczyk@o2.pl>​ Rafał Szymczyk, <​raf.szymczyk@o2.pl>​
  
 Zapis ARD przy pomocy RDF w XSLT Zapis ARD przy pomocy RDF w XSLT
  
-====== Spotkania ====== +Historia [[pl:​miw:​miw08_ard_rdf:​spotkania|spotkań]].
-===== 08.03.04 ===== +
- +
-===== 08.03.18 ===== +
-  * repr atrybutów dla reguł RIF/​OWL/​RDF +
- +
-===== 080401 ===== +
-  * missed +
- +
-===== 080408 ===== +
-  * ??? +
- +
-===== 080422 ===== +
-  * to co na 18.3.2008 +
- +
-====== Projekt ====== +
-jak sensownie repr. ard w rdf? +
- +
- +
- +
- +
- +
  
  
Linia 35: Linia 15:
  
  
 +====== Projekt ======
  
  
Linia 45: Linia 26:
  
  
-===== 1. RIF(Rule Interchange Format) =====+===== RIF(Rule Interchange Format) =====
  
 RIF jest stworzonym przez W3C [[http://​www.w3.org/​|(Word Wide Web Consorcium)]] formatem reguł pozwalających na ich wymianę dla różnych języków reguł w sieciach semantycznych (RDF, OWL). Format RIF jest ciągle w fazie rozwoju, jedyne dostępne dokumenty są to szkice specyfikacji poszczególnych modułów (Working Draft). Do rozwijanych dokumentów należą m.in. [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-fld/​|RIF Framework for Logic Dialects ]] oraz [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-bld/​|RIF Basic Logic Dialect]] RIF jest stworzonym przez W3C [[http://​www.w3.org/​|(Word Wide Web Consorcium)]] formatem reguł pozwalających na ich wymianę dla różnych języków reguł w sieciach semantycznych (RDF, OWL). Format RIF jest ciągle w fazie rozwoju, jedyne dostępne dokumenty są to szkice specyfikacji poszczególnych modułów (Working Draft). Do rozwijanych dokumentów należą m.in. [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-fld/​|RIF Framework for Logic Dialects ]] oraz [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-bld/​|RIF Basic Logic Dialect]]
Linia 379: Linia 360:
  
 [[http://​www.ninebynine.org/​RDFNotes/​RDFFactsAndRules.html#​xtocid-7560072| Representing Facts and Rules in RDF]] [[http://​www.ninebynine.org/​RDFNotes/​RDFFactsAndRules.html#​xtocid-7560072| Representing Facts and Rules in RDF]]
 +
 +
  
  
Linia 399: Linia 382:
 relacji binarnych, pojęć, przykładów pojęć oraz aksjomatów definiujących omówione dodatkowe ​ relacji binarnych, pojęć, przykładów pojęć oraz aksjomatów definiujących omówione dodatkowe ​
 właściwości pojęć i relacji. właściwości pojęć i relacji.
 +
 +Zasadnicza część ontologii składa sie z definicji klas, relacji oraz ich przykładów. Przykładem prostej definicji pojęcia (klasy) jest następująco zdefiniowany termin ‘giraffe’:​
 +<code xml>
 +<​owl:​Class rdf:​ID="​giraffe"/>​
 +</​code>​
 +Z przytoczonej definicji wynika, że zbiór bytów będących przykładami pojęcia o identyfikatorze ‘giraffe’ jest podzbiorem predefiniowanego uniwersum bytów o nazwie ‘thing’. Za pomocą atrybutu rdf:about można wprowadzić rozszerzenia do istniejących definicji:
 +<code xml>
 +<​owl:​Class rdf:​about="​giraffe">​
 +    <​rdfs:​subClassOf rdf:​resource="​Animal"/>​
 +</​owl:​Class>​
 +</​code>​
 +Powyższe związki można wyrazić jednostopniowo za pomocą następującej definicji, która dodatkowo zawiera etykietę umożliwiającą nazwanie definiowanej klasy bytów po polsku:
 +<code xml>
 +<​owl:​Class rdf:​ID="​giraffe">​
 +    <​rdfs:​subClassOf rdf:​resource="​Animal"/>  ​
 +    <​rdfs:​label xml:​lang="​pl">​żyrafa</​rdfs:​label>​
 +</​owl:​Class>​
 +</​code>​
 +Załóżmy, że ‘Zeta’ jest imieniem pewnej żyrafy. W sensie ontologicznym,​ ‘Zeta’ jest przykładem pojęcia ‘giraffe’,​ o czym orzeka następujące zdanie:
 +<code xml>
 +<giraffe rdf:​ID="​Zeta"/>​
 +</​code>​
 +W języku OWL występują dwie kategorie relacji binarnych: zachodzących pomiędzy elementami klas (tzw. ObjectProperty) oraz definiujących związki pomiędzy elementami klas i danymi innych typów (DatatypeProperty - wydaje się, że te drugie zręczniej byłoby traktować jako atrybuty klas).Przykładem relacji definiującej wartość atrybutu “wiek” pewnego typu obiektów jest BE_IN_STATE/​age,​ definiowana jako relacja kategorii DatatypeProperty,​ której zakresem są liczby całkowite nieujemne zdefiniowane jako typ w schemacie XML:
 +<code xml>
 +<​owl:​DatatypeProperty rdf:​ID="​BE_IN_STATE/​age"> ​
 +    <​rdfs:​range rdf:​resource="&​xsd;​NonNegativeInteger"/>​
 +</​owl:​DatatypeProperty>​
 +</​code>​
 +Ciekawym mechanizmem,​ wynikających ze stosowania logik deskrypcyjnych,​ jest możliwość tworzenia klas poprzez nakładanie więzów na relacje. Na przykład, można zdefiniować klasę zawierającą wyłącznie (AllValuesFrom) lub również (SomeValuesFrom) elementy będące częściami wskazanych obiektów. Ta nowa klasa powstanie poprzez ograniczenie zakresu relacji “posiadania całości”. Szczególnym rodzajem więzu jest hasValue umożliwiający tworzenie zabioru elementów mających pewną określoną,​ pojedynczą wartość jako zakres relacji - na przykład słonie, poza tym, że są roślinożercami,​ są także zwierzętami o szarym kolorze skóry (indiwiduum określające kolor szary jest zakresem relacji BE_IN_STATE/​colour):​
 +<code xml>
 +<​owl:​Class rdf:​ID="​elephant">​
 +    <​rdfs:​subClassOf rdf:​resource="#​herbivore"/>  ​
 +    <​rdfs:​subClassOf>​
 +        <​owl:​Restriction>​
 +             <​owl:​onProperty rdf:​resource="​BE_IN_STATE/​colour"/>​
 +             <​owl:​hasValue rdf:​resource="#​grey"/>​
 +        </​owl:​Restriction>​
 +    </​rdfs:​subClassOf>​
 +</​owl:​Class>​
 +</​code>​
 +Można także nakładać ograniczenia na liczbę elementów powiązanych za pomocą wskazanej relacji. Istnieją trzy warianty takich więzów: liczba maksymalna (maxCordinality),​ minimalna (minCordinality) i dokładna (Cordinality). W dotychczasowych definicjach pojęć posługiwaliśmy się tzw. “klasami prostymi”. Język OWL umożliwia tworzenie złożonych wyrażeń klasowych (ang. class expression),​ w których znajdują zastosowanie operatory mnogościowe:​ sumy (unionOf), przecięcia (intersectionOf),​ dopełnienia (complementOf),​ a także operatory ekstensjonalnego tworzenia skończonych zbiorów (oneOf) i operator wskazania rozłączności zbiorów (disjointWith) ​
 +
 +Przykładem zastosowania operatora tworzenia zbioru (pojęcie grey_colour) przez wyliczenie jego elementów może być definicja jednoelementowej klasy zawierającej indywiduum reprezentujące kolor szary:
 +
 +<code xml>
 +<​owl:​Class rdf:​ID="​grey_colour">​
 +    <​owl:​oneOf rdf:​parseType="​Collection">​
 +         <​owl:​Thing rdf:​about="#​grey"/>​
 +    </​owl:​oneOf>​
 +</​owl:​Class>​
 + 
 +<​grey_colour rdf:​ID="#​grey"/>​
 +</​code>​
 +W języku OWL można wskazywać zachodzenie związków pomiędzy wskazanymi parami indywiduów:​ jeśli Azja jest przykładem pojęcia kontynent, a Indie są przykładem pojęcia kraj oraz założymy, że kraje są częściami kontynentów,​ to możemy użyć relacji HAS_HOLO_PART do powiązania rozważanych indywiduów:​
 +<code xml>
 +<​continent rdf:​ID="​Asia"/>​
 + 
 +<country rdf:​ID="​India">​
 +    <​HAS_HOLO_PART rdf:​resource="#​Asia"/>​
 +</​country>​
 +</​code>​
 +Język OLW udostępnia również echanizmy equivalentClass i equivalentProperty do wskazania równoważności,​ odpowiednio,​ pojęć i relacji oraz mechanizm sameIndividualAs,​ umożliwiający utożsamianie przykładów pojęć. W odniesieniu do indywiduów,​ istnieje również odwrotna do omówionej możliwości rozróżniania przykładów pojęć za pośrednictwem differentIndividualFrom.
  
 Ponieważ OWL posiada pewne ograniczenia - nie można uchwycić złożonych relacji pomiędzy zdefiniowanymi właściwościami (chociażby ogólnie znany przykład "​uncle"​) - powstała idea rozszerzenia OWL'a o pewne formy regułowe przy jednoczesnym zachowaniu maksymalnej kompatybilności z istniejącą składnią i semantyką OWL.  Ponieważ OWL posiada pewne ograniczenia - nie można uchwycić złożonych relacji pomiędzy zdefiniowanymi właściwościami (chociażby ogólnie znany przykład "​uncle"​) - powstała idea rozszerzenia OWL'a o pewne formy regułowe przy jednoczesnym zachowaniu maksymalnej kompatybilności z istniejącą składnią i semantyką OWL. 
Linia 520: Linia 565:
 </​owlr:​sameIndividualAtom>​ </​owlr:​sameIndividualAtom>​
 </​code>​ </​code>​
 +
 +
 +
 +
 +
 +
  
  
 =====ARD w RDF===== =====ARD w RDF=====
  
-Proponaowane ​rozwiązanie:​+W ARD występują dwa rodzaje elementów: atrybuty (attributes) i właściwości (properties). Aby zapisać ARD w RDF należało zachować relacji jakie zachodzą między atrybutami a ich właściwośćiami. ​   
 + 
 +Proponowane ​rozwiązanie:​
  
 <code xml> <code xml>
Linia 545: Linia 598:
 </​code>​ </​code>​
  
-i przykład: +gdzie za pomocą  
 +<code xml> 
 +<​rdf:​Description rdf:​ID="​ard:​Attribute">​ 
 + <​rdf:​type rdf:​resource="​http://​www.w3.org/​2000/​01/​rdf-schema#​Class"/>​ 
 + </​rdf:​Description>​ 
 +</​code>​ 
 +zapisywane są atrybuty posiadające odpowiadające im własnośćjak na przykład:
 <code xml> <code xml>
 <?xml version="​1.0"?>​ <?xml version="​1.0"?>​
Linia 568: Linia 626:
 </​rdf:​RDf>​ </​rdf:​RDf>​
 </​code>​ </​code>​
- +  
-Poniżej przedstawiono inny przykład ​zapisu ARD w RDF za pomocą ​biblioteki DublinCore:+Innym podejśćiem do problemu ​zapisu ARD w RDF może byc użycie ​biblioteki DublinCore. Poniżej przedstawiono próbę takiego zapisu:
 <code xml> <code xml>
 <?xml version="​1.0"?>​ <?xml version="​1.0"?>​
Linia 593: Linia 651:
 </​rdf:​RDF>​ </​rdf:​RDF>​
 </​code>​ </​code>​
 +W przypadu tego typu zapisu trudno mi wybrać odpowiedni typ relacji. Bibliotek DublinCore udostępnia wyłącznie relacje typu:
 +<code xml>
 +Is Version Of | Has Version | Is Replaced By | Replaces | Is Required By | Requires | Is Part Of |
 +Has Part | Is Referenced By | References | Is Format Of | Has Format
 +</​code>​
 +Nie posiadam natomiast wiedzy, czy istnieje możliwość definiowania własnej relacji. Jeżeli istaniałaby taka możliwość zupełnie słusznym byłoby zdefiniowanie relacji //Is Attribute Of //oraz relacji zwrotnej //Has Attribute//​. ​
  
  
Linia 599: Linia 663:
  
  
-====== Sprawozdanie ====== 
  
  
pl/miw/miw08_ard_rdf.1221599800.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (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