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_hml_rules:rdf [2008/05/03 23:54]
miw
pl:miw:miw08_hml_rules:rdf [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 **[[http://​www.w3.org/​RDF/​|RDF (Resource Description Framework)]]** jest podstawowym językiem używanym do zapisu informacji w Sieci Semantycznej i przeznaczonym do przetwarzania maszynowego. W dosłownym tłumaczeniu jest środowiskiem do opisu zasobów (jako zasób rozumiemy: dowolny obiekt znajdujący się w sieci, pojęcia abstrakcyjne,​ relacje i obiekty fizyczne). Do opisu zasobów używa się tzw. stwierdzeń (ang. statements),​ które składają się z podmiotu, orzeczenia oraz obiektu. W RDF podmiot stanowi opisywany zasób, predykat określa jaka jego własność jest opisywana, zaś obiekt stanowi wartość tej własności. Podstawowym mechanizmem wykorzystywanym przez RDF do identyfikacji podmiotu, predykatu i obiektu jest URI. RDF stanowi model lub bazę danych, która jest reprezentowana w formie grafu. RDF/XML jest językiem XML-a, który może być użyty do reprezentacji danych RDF. **[[http://​www.w3.org/​RDF/​|RDF (Resource Description Framework)]]** jest podstawowym językiem używanym do zapisu informacji w Sieci Semantycznej i przeznaczonym do przetwarzania maszynowego. W dosłownym tłumaczeniu jest środowiskiem do opisu zasobów (jako zasób rozumiemy: dowolny obiekt znajdujący się w sieci, pojęcia abstrakcyjne,​ relacje i obiekty fizyczne). Do opisu zasobów używa się tzw. stwierdzeń (ang. statements),​ które składają się z podmiotu, orzeczenia oraz obiektu. W RDF podmiot stanowi opisywany zasób, predykat określa jaka jego własność jest opisywana, zaś obiekt stanowi wartość tej własności. Podstawowym mechanizmem wykorzystywanym przez RDF do identyfikacji podmiotu, predykatu i obiektu jest URI. RDF stanowi model lub bazę danych, która jest reprezentowana w formie grafu. RDF/XML jest językiem XML-a, który może być użyty do reprezentacji danych RDF.
 +
 +[[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_hml_rules:​rdf:​rdfexample|Kilka dodatkowych słów o RDF + atrybuty w RDF + przykład]]
  
 Ważną cechą języka RDF jest to iż nie obsługuje on negacji oraz reguł. Można to zaliczyć od jego wad gdyż systemy reprezentowania wiedzy potrzebują dwóch rodzajów negacji, mianowicie słabej negacji ~ (ang. weak negation) wyrażającej nieprawdę, silnej negacji (ang. strong negation) wyrażającej jednoznacznie nieprawdziwe informacje lub błędność,​ oraz oczywiście możliwości zapisu reguł. Aby temu zaradzić rozpoczęto prace nad nowym językiem **[[http://​oxygen.informatik.tu-cottbus.de/​rewerse-i1/?​q=ERDF|Extended RDF]]** oznaczonym jako **ERDF** (obecnie jest to tylko prototypowa implementacja w wersji 0.1). Język ten jest rozszerzeniem RDF'a o wyżej wspomniane negacje oraz reguły. Na ten czas skupię sie tylko na kwestiach związanych z rozszerzeniami RDF'a umożliwiającymi zapisywanie reguł gdyż to jest tematem projektu. W poniższym opisie oraz przykładach będę się posługiwał składnia XML: Ważną cechą języka RDF jest to iż nie obsługuje on negacji oraz reguł. Można to zaliczyć od jego wad gdyż systemy reprezentowania wiedzy potrzebują dwóch rodzajów negacji, mianowicie słabej negacji ~ (ang. weak negation) wyrażającej nieprawdę, silnej negacji (ang. strong negation) wyrażającej jednoznacznie nieprawdziwe informacje lub błędność,​ oraz oczywiście możliwości zapisu reguł. Aby temu zaradzić rozpoczęto prace nad nowym językiem **[[http://​oxygen.informatik.tu-cottbus.de/​rewerse-i1/?​q=ERDF|Extended RDF]]** oznaczonym jako **ERDF** (obecnie jest to tylko prototypowa implementacja w wersji 0.1). Język ten jest rozszerzeniem RDF'a o wyżej wspomniane negacje oraz reguły. Na ten czas skupię sie tylko na kwestiach związanych z rozszerzeniami RDF'a umożliwiającymi zapisywanie reguł gdyż to jest tematem projektu. W poniższym opisie oraz przykładach będę się posługiwał składnia XML:
Linia 77: Linia 79:
 </​code>​ </​code>​
  
-  * Więcej na stronie domowej:​http://​oxygen.informatik.tu-cottbus.de/​rewerse-i1/?q=ERDF  + 
-  * Szczególnie przydatne : http://​oxygen.informatik.tu-cottbus.de/​IT/​Research/​ERDF-JAIR-2008.pdf + 
-  * Polskie tłumaczenie specyfikacji RDF: http://​www.geocities.com/​pan_andrew/​ResourceDescriptionFramework.htm+ 
 +------------------------------------------------------------------------------------------------------------------------------------------------------- 
  
 W czasie pracy nad ERDF natrafiłem również na nieco inny sposób zapisu reguł i faktów w RDF wykorzystujący [[http://​en.wikipedia.org/​wiki/​Notation_3|notacje N3]] (http://​www.ninebynine.org/​RDFNotes/​RDFFactsAndRules.html#​%5B4%5D). Poniżej krótko scharakteryzuje tą metodę: W czasie pracy nad ERDF natrafiłem również na nieco inny sposób zapisu reguł i faktów w RDF wykorzystujący [[http://​en.wikipedia.org/​wiki/​Notation_3|notacje N3]] (http://​www.ninebynine.org/​RDFNotes/​RDFFactsAndRules.html#​%5B4%5D). Poniżej krótko scharakteryzuje tą metodę:
Linia 98: Linia 102:
  
 <code xml> <code xml>
-         ex:subj ex:pred [ rdf:type rdf:List ;+ex:subj ex:pred [ rdf:type rdf:List ;
                   rdf:first ex:val2 ;                   rdf:first ex:val2 ;
                   rdf:rest [ rdf:type rdf:List ;                   rdf:rest [ rdf:type rdf:List ;
Linia 110: Linia 114:
  
 <code xml> <code xml>
-        ​[  rdf:type rul:Fact ; +[  rdf:type rul:Fact ; 
-           ​rul:pred ex:pred ; +   ​rul:pred ex:pred ; 
-           ​rul:args [ rdf:type rdf:List ; +   ​rul:args [ rdf:type rdf:List ; 
-                      rdf:first ex:subj ; +              rdf:first ex:subj ; 
-                      rdf:rest _:genid1 ] ] .+              rdf:rest _:genid1 ] ] .
 </​code>​ </​code>​
  
Linia 128: Linia 132:
 jest reprezentowana w RDF, używając notacji N3, jako: jest reprezentowana w RDF, używając notacji N3, jako:
 <code xml> <code xml>
-       @prefix rdf: <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​ . +@prefix rdf: <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​ . 
-       ​@prefix rul: <​http://​id.ninebynine.org/​RDFRules/​1.0/>​ . +@prefix rul: <​http://​id.ninebynine.org/​RDFRules/​1.0/>​ . 
-       ​@prefix ex:  <​http://​example.org/#>​ .+@prefix ex:  <​http://​example.org/#>​ . 
           [ rdf:type rul:Rule ;           [ rdf:type rul:Rule ;
             rul:from Afact1 ;             rul:from Afact1 ;
Linia 148: Linia 153:
  
 Tak oto poniższa reguła: Tak oto poniższa reguła:
-<code xml>+
       ex:a1( ex:a1s, ex:a1v2, ex:a1v3 ) &       ex:a1( ex:a1s, ex:a1v2, ex:a1v3 ) &
       ex:a2( ex:a2s, ex:a2v2 ) ->       ex:a2( ex:a2s, ex:a2v2 ) ->
              ​ex:​c1( ex:c1s, ex:c1v2, ex:a1v3 ) &              ​ex:​c1( ex:c1s, ex:c1v2, ex:a1v3 ) &
              ​ex:​c2( ex:c2s ) .              ​ex:​c2( ex:c2s ) .
-</​code>​+
 była by reprezentowana w RDF/N3 jako: była by reprezentowana w RDF/N3 jako:
 <code xml> <code xml>
-      ​@prefix rdf: <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​ . +@prefix rdf: <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​ . 
-      @prefix rul: <​http://​id.ninebynine.org/​RDFRules/​1.0/>​ . +@prefix rul: <​http://​id.ninebynine.org/​RDFRules/​1.0/>​ . 
-      @prefix ex:  <​http://​example.org/#>​ .+@prefix ex:  <​http://​example.org/#>​ . 
       [ rdf:type rul:Rule ;       [ rdf:type rul:Rule ;
         rul:​from ​ _:genid1 ;         rul:​from ​ _:genid1 ;
Linia 167: Linia 173:
 gdzie: genid1, genid2, genid3, genid4 są identyfikatorami reprezentującymi „ogon” listy argumentów predykatu np. genid2 może być opisany jako: gdzie: genid1, genid2, genid3, genid4 są identyfikatorami reprezentującymi „ogon” listy argumentów predykatu np. genid2 może być opisany jako:
 <code xml> <code xml>
-      ​_:genid2 rdf:type rul:Fact ; +_:genid2 rdf:type rul:Fact ; 
-               ​rul:pred ex:a2 ; +         ​rul:pred ex:a2 ; 
-               ​rul:args [ rdf:type rdf:List ; +         ​rul:args [ rdf:type rdf:List ; 
-                          rdf:first ex:a2s ; +                    rdf:first ex:a2s ; 
-                          rdf:rest [ rdf:type rdf:List ; +                    rdf:rest [ rdf:type rdf:List ; 
-                                     ​rdf:first ex:a2v2 ; +                               ​rdf:first ex:a2v2 ; 
-                                     ​rdf:rest rdf:nil ]] .+                               ​rdf:rest rdf:nil ]] .
 </​code>​ </​code>​
 **Zmienne **Zmienne
Linia 193: Linia 199:
 może być reprezentowany w RDF/N3 jako: może być reprezentowany w RDF/N3 jako:
 <code xml> <code xml>
-    ​@prefix rdf:  <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​ . +@prefix rdf:  <​http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#>​ . 
-    @prefix rdfs: <​http://​www.w3.org/​2000/​01/​rdf-schema#>​ . +@prefix rdfs: <​http://​www.w3.org/​2000/​01/​rdf-schema#>​ . 
-    @prefix rul: <​http://​id.ninebynine.org/​RDFRules/​1.0/>​ . +@prefix rul: <​http://​id.ninebynine.org/​RDFRules/​1.0/>​ . 
-    @prefix ex:   <​http://​example.org/#>​ . +@prefix ex:   <​http://​example.org/#>​ . 
-    _:genid1 ex:Parents [ rdf:​type ​ rdf:List ; + 
-                          rdf:first _:genid2 ; +_:genid1 ex:Parents [ rdf:​type ​ rdf:List ; 
-                          rdf:​rest ​ [ rdf:​type ​ rdf:List ; +                      rdf:first _:genid2 ; 
-                                      rdf:first _:genid3 ; +                      rdf:​rest ​ [ rdf:​type ​ rdf:List ; 
-                                      rdf:​rest ​ rdf:nil ] ] . +                                  rdf:first _:genid3 ; 
-    _:genid1 rdf:type rul:Var ;+                                  rdf:​rest ​ rdf:nil ] ] . 
 +_:genid1 rdf:type rul:Var ;
          ​rdfs:​label "?​a"​ .          ​rdfs:​label "?​a"​ .
-    ​_:genid2 rdf:type rul:Var ;+_:genid2 rdf:type rul:Var ;
          ​rdfs:​label "?​b"​ .          ​rdfs:​label "?​b"​ .
-    ​_:genid3 rdf:type rul:Var ; +_:genid3 rdf:type rul:Var ; 
-             ​rdfs:label "?​c"​ .+         ​rdfs:label "?​c"​ .
 </​code>​ </​code>​
 The identity (uniqueness) of a variable is bound to the resource that represents it, not to its name. The variable name may be used (in conjunction with scoping rules) as a syntactic device for deciding which variable occurrences refer to the same variable, and hence which at any instant or invocation must correspond to the same value. Occurrences of the same variable name within a rule is an example of multiple occurrences of the same variable. The identity (uniqueness) of a variable is bound to the resource that represents it, not to its name. The variable name may be used (in conjunction with scoping rules) as a syntactic device for deciding which variable occurrences refer to the same variable, and hence which at any instant or invocation must correspond to the same value. Occurrences of the same variable name within a rule is an example of multiple occurrences of the same variable.
Linia 214: Linia 221:
  
 [[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_hml_rules|Powrót]] [[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_hml_rules|Powrót]]
 +
 +
 +====== Materiały ======
 +
 +**Uniform Resource Identifier** http://​pl.wikipedia.org/​wiki/​Uniform_Resource_Identifier/​
 +
 +**Representing Facts and Rules in RDF** http://​www.ninebynine.org/​RDFNotes/​RDFFactsAndRules.html
 +
 +**Struktura Opisu Zasobów (RDF)** http://​www.geocities.com/​pan_andrew/​ResourceDescriptionFramework.htm#​ref-xhtml
 +
 +**Strona domowa RDF** http://​www.w3.org/​RDF/​
 +
 +**Polskie tłumaczenie specyfikacji RDF** http://​www.geocities.com/​pan_andrew/​ResourceDescriptionFramework.htm
 +
 +**Strona domowa ERDF** http://​oxygen.informatik.tu-cottbus.de/​rewerse-i1/?​q=ERDF
 +
 +** Szczególnie przydatne** http://​oxygen.informatik.tu-cottbus.de/​IT/​Research/​ERDF-JAIR-2008.pdf
 +
pl/miw/miw08_hml_rules/rdf.1209851646.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (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