To jest stara wersja strony!


Opis

Michał, Rogula, michal.rogula@wp.pl

  1. Porównać i omówić metody reprezentowania atrybutów w językach:
  • RDF
  • OWL
  • RIF
  • R2ML
  • RuleML

oraz metody reprezentowania reguł w:

  • RIF
  • R2ML
  • RuleML

Spotkania

08.02.26

  • rif
  • rdf/owl↔rif

08.03.04

080311

080318

  • j.w.

080408

080422

  • zapis grafów w rdf
  • 3 predykaty:
    • w ARD season depends onmonth
    • w TPH (shi.)
      • Th,Temp finalizes Therm
      • Time splited from Th,Temp

080429

  • reguły

080520

  • RDF

Projekt

Jeżeli dzień=poniedziałek wtedy temp=20st

mamy 2 atrybuty:

  • dzień, przyjmuje wart symboliczne ze zb: pon-niedz
  • temp, jest liczbą, np. float, z zakresu, np. 0-20st

Rozważania na temat zapisu powyższej reguły za pomocą:

08.02.26

RIF(Rule Interchange Format) jest stworzonym przez W3C (Word Wide Web Consorcium) formatem reguł pozwalających na ich wymianę dla różnych języków reguł w sieciach semantycznych (RDF, OWL). (def: http://www.webopedia.com/TERM/R/Rule_Interchange_Format.html)

Dokumentacja RIF przedstawia dwa rodzaje składni. Są to tzw:

  • Presentation syntax – Używana w formalnych definicjach, szczególnie dla semantyki.
  • XML syntax - Jest to tzw. XML serialization składni prezentacji. Kluczowe cechy tej składni wywodzą się ze składni prezentacji, lecz niektóre aspekty związane z wymianą reguł nie mają swoich odpowiedników w presentation syntax.

Atrybut to parametr zawierający dodatkowe informacje o elemencie struktury logicznej identyfikowanym przez dany znacznik.

Sposób przedstawiania atrybutów w Presentation syntax :

      nazwa_atrybutu->wartość_atrybutu^^type

Sposób przedstawiania atrybutów w XML syntax:

      <slot><Const>nazwa_atrybutu</Const><Var type=””>wartość_atrybutu</Var></slot> 

Przykład:

  • Presentation syntax
      author^^rif:local -> ?Author
      price^^rif:local -> 49^^xsd:integer
  • XML syntax
        <slot><Const type="rif:local">author</Const><Var>Author</Var></slot>
        <slot><Const type="rif:local">price</Const><Const type="xsd:integer">49</Const></slot>

Prefix xsd: oznacza przestrzeń nazw XML http://www.w3.org/2001/XMLSchema#, a prefix rif: URI przestrzeni nazw RIF http://www.w3.org/2007/rif# . rif:local (dla stałych symboli niewidocznych poza daną formułą rif).

RIF RDF oraz OWL Kompatybilność

RIF definiuje sposób przenoszenia regół w sieci. Reguły wymieniane poprzez RIF mogą się odnosić się do zewnętrznych źródeł danych i mogą bazować na pewnych modelach które są reprezentowane za pomocą języków różnych od RIF np: RDF , RDFS, OWL. Dokument http://www.w3.org/TR/rif-rdf-owl określa kompatybilność RIF i RDF(S). Przyszła wersja tego dokumentu będzie również określać kompatybilność z ontologią OWL.

  • Zgodność pomiędzy stałymi symbolami w RIF oraz nazwami w RDF graphs np.:
      RDF -   "literal string"
      RIF -   "literal string"^^xsd:string
  • Zgodność pomiędzy zdaniami w RDF (trojki postaci: s p o) i pewnymi rodzajami formuł w RIF (formula w postaci: s'[p' → o'], gdzie s', p', oraz o' są symbolami RIF zgodnymi odpowiednio z symbolami RDF’a s, p, oraz o), np.:

RDF triple:

     john uncleOf marry

Formuła RIF frame:

     "john"^^rif:iri["uncleOf"^^rif:iri -> "mary"^^rif:iri]

08.03.04

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 – opisywany zasób.
  • Orzeczenia (predykatu) – nazwa cechy lub relacji dotyczącej opisywanego podmiotu.
  • Obiektu – inny zasób lub stała wartość określona mianem literału.

Sposób przedstawiania atrybutów w RDF:

< opisywany_zasob > < nazwa_atrybutu > „wartosc_atrybutu”.

Przykład opisu w RDF pewnego „zasobu”:

Zwykłe zdanie:

      Janek jest twórcą dokumentu http://www.dokumenty.org/dokument1

Zdanie RDF:

      http://www.dokumenty.org/dokument1 posiada własność twórca której wartością jest Janek

Właściwa forma RDF (musi być zakonczona kropką):

      <http://www.dokumenty.org/dokument1> <http://purl.org/dc/elements/1.1/creator> „Janek”.

Graf RDF:

:pl:miw:rdf.png

Styl XML:

        <?xml version="1.0"?>
        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:Description rdf : about="subject">
        <predicate>Object</predicate>
        </rdf:Description>
        </rdf:RDF>

Nasz przykład zapisany w XML:

        <?xml version="1.0"?>
        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                 xmlns:DC="http://purl.org/dc/elements/1.1/">
        <rdf:Description rdf : about="http://www.dokumenty.org/dokument1">
        <DC:creator resource = "http://www.tworcy.org/janek">		
        </rdf:Description>
        </rdf : RDF>

Użyty jest tu predykat pochodzący z “biblioteki” Dublin Core (słownictwo zdefiniowane do opisu metadanych różnych dokumentów - w szczególności bibliotecznych: daty utworzenia, autora itp.). Jest to oznaczone w korzeniu dokumentu (którym jest zawsze znacznik rdf:RDF). Podmioty definiujemy znacznikiem rdf:Description z atrybutem rdf:abort zawierającym URI zasobu. Zdania opisujące ten podmiot są zapisywane jako węzły potomne. Obiekty, które są jednocześnie zasobami zapisujemy w postaci węzła skróconego z URI tego zasobu umieszczonym w atrybucie rdf:resorce.

08.03.11

Użycie faktów: Wyrażenia RDF występują w postaci trójek zwanych zdaniami (statements). Wszystko do czego odnoszą się zdania są zasobami z pewnymi identyfikatorami lub wartościami. Po to aby fakty były użyte w zdaniach, musimy dysponować pewną tożsamością, która z kolei odpowiada pewniej wartości zasobu.

By zapewnić taką reprezentacje faktów, wprowadza się nowe identyfikatory zasobów, powiązanych tutaj z przestrzenią nazw z prefixem rul: która wskazuje na przestrzeń nazw URI <http://id.ninebynine.ord/RDFRules/1.0/>:

  • rul:Fact – jest pomocniczym typem danych który jest stosowany jako zasób reprezentujący fakt.
  • rul:pred – to własność który określa predykat użyty przez fakt
  • rul:args – to własność określająca listę argumentów predykatu użytą w fakcie

Przykład pewnego faktu reprezentowanego w RDF /N3 (notacja3 - http://en.wikipedia.org/wiki/Notation_3) jako

       ex:subj ex:pred [ rdf:type rdf:List ;
                rdf:first ex:val2 ;
                rdf:rest [ rdf:type rdf:List ;
                           rdf:first ex:val3 ;
                           rdf:rest [ rdf:type rdf:List
                                      :
                                      ... rdf:rest rdf:nil ]]] .

Resource który reprezentuje ten fakt jest konstruowany jak pokazano w tym przykładzie RDF/N3:

      [  rdf:type rul:Fact ;
         rul:pred ex:pred ;
         rul:args [ rdf:type rdf:List ;
                    rdf:first ex:subj ;
                    rdf:rest _:genid1 ] ] .

gdzie _:genid1 jest identyfikatorem reprezentującym „ogon” listy argumentów predykatu

Reprezentacja reguł: Podstawowa struktura reguł których używamy to zbiór faktów poprzedników (antecedent facts) i faktów z nich wynikających (consequent facts)

Reguła:

     Afact1 & Afact2 & ... -> Cfact1 & Cfact2 & ...

jest reprezentowana w RDF (używając notacji3 (N3 - http://en.wikipedia.org/wiki/Notation_3)) jako:

     @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
     @prefix rul: <http://id.ninebynine.org/RDFRules/1.0/> .
     @prefix ex:  <http://example.org/#> .
        [ rdf:type rul:Rule ;
          rul:from Afact1 ;
          rul:from Afact2 ;
          ...
          rul:infer Cfact1 ;
          rul:infer Cfact2 ;
          ... ] .

Taka reprezentacja reguł wprowadza pewne nowe identyfikatory zasobów, powiązanych tutaj z przestrzenią nazw z prefixem rul: która wskazuje na przestrzeń nazw URI <http://id.mimesweeper.com/RDFExpert/V1.0/ess#>:

  • rul:Rule - to pomocniczy typ danych który opisuje zasób który reprezentuje regułę
  • rul:from - to właściwość która określa zasób reprezentujący fakt Afact (antecedent fact) reguły, jeden z faktów z którego może być wyciągnięty wniosek
  • rul:infer – to właściwość która wskazuje fakt Cfact (conclusion fact) który może być wywnioskowany jeśli wszystkie fakty poprzedzające (antecedent facts) są prawdą.

Tak oto poniższa reguła:

    ex:a1( ex:a1s, ex:a1v2, ex:a1v3 ) &
    ex:a2( ex:a2s, ex:a2v2 ) ->
           ex:c1( ex:c1s, ex:c1v2, ex:a1v3 ) &
           ex:c2( ex:c2s ) .

była by reprezentowana w RDF/N3 jako:

    @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix rul: <http://id.ninebynine.org/RDFRules/1.0/> .
    @prefix ex:  <http://example.org/#> .
    [ rdf:type rul:Rule ;
      rul:from  _:genid1 ;
      rul:from  _:genid2 ;
      rul:infer _:genid3 ;
      rul:infer _:genid4 ]

gdzie: genid1, genid2, genid3, genid4 są identyfikatorami reprezentującymi „ogon” listy argumentów predykatu np. genid2 może być opisany jako:

    _:genid2 rdf:type rul:Fact ;
             rul:pred ex:a2 ;
             rul:args [ rdf:type rdf:List ;
                        rdf:first ex:a2s ;
                        rdf:rest [ rdf:type rdf:List ;
                                   rdf:first ex:a2v2 ;
                                   rdf:rest rdf:nil ]] .

Zmienne w ogólnym znaczeniu to identyfikatory które reprezentują pewne określone wartości, ale mogą róznież reprezentować różne wartości jeśli są użyte w innym kontekscie lub w róznych odwołaniach. Na przykład, reguła:

  parents( ?a, ?b, ?c ) &
  parents( ?b, ?d, ?e ) &
  parents( ?c, ?f, ?g ) -> grandparents( ?a, ?d, ?e, ?f, ?g )

Moze być wywołana dl zbiorów faktów które jednocześnie pasują do reguły przodka (antecedents); dla kazdego zbioru faktów, zmienne będą związane z innymi wartościami.

When a variable appears in a fact that is part of a rule, the scope of the variable is the containing rule. That is, all occurrences of a given variable that appear within the rule are required to bind to the same value in any single invocation of the rule.

Zmienne są reprezentowane przez zasób typu rul:Var, oraz posiadają rdfs:label własność która jest nazwą zmiennej. Tak oto fakt:

  ex:Parents( ?a, ?b, ?c ) .

może być reprezentowany w RDF/N3 jako:

  @prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
  @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
  @prefix rul: <http://id.ninebynine.org/RDFRules/1.0/> .
  @prefix ex:   <http://example.org/#> .
  _:genid1 ex:Parents [ rdf:type  rdf:List ;
                        rdf:first _:genid2 ;
                        rdf:rest  [ rdf:type  rdf:List ;
                                    rdf:first _:genid3 ;
                                    rdf:rest  rdf:nil ] ] .
  _:genid1 rdf:type rul:Var ;
       rdfs:label "?a" .
  _:genid2 rdf:type rul:Var ;
       rdfs:label "?b" .
  _:genid3 rdf:type rul:Var ;
           rdfs:label "?c" .

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.

080408

Całość therm w RDF: hekate_case_thermostat

Sprawozdanie

Materiały

pl/miw/miw08_hml_rules.1208860128.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