To jest stara wersja strony!


Opis

Mariusz Sokołowski mmarsokol@gmail.com

Opis projektu ze strony miw2009_tematy:

OWL_Rules

How decision rules can be represented, encoded in OWL rules in description logic, description logic programs, swrl?

Spotkania

20090319

  • reguły w owl!

20090312

20090225

  • wyszukać materiały dostępne w sieci i poczytać

Projekt

Sprawozdanie

Abstract Syntax

Abstrakcyjna składnia języka ontologii OWL zawiera szereg aksjomatów i faktów. Mogą one być różnego rodzaju np. aksjomaty subClass i equivalentClass. Zaproponowano rozszerzyć je o aksjomaty reguł.

axiom ::= rule 

Reguła składa się z poprzednika (ciała) i następnika (głowy), który zawiera zbiór atomów (może być pusty).

rule ::= 'Implies(' { annotation } antecedent consequent ')'
antecedent ::= 'Antecedent(' { atom } ')'
consequent ::= 'Consequent(' { atom } ')'

Nieformalnie reguły mogą być odczytywane w ten sposób, że jeżeli poprzednik jest prawdą to także następnik musi być prawdziwy. Pusty poprzednik jest uznawany za prawdę, a pusty następnik jest uznawany za fałsz. Niepusty poprzednik lub następnik jest prawdą jeśli zachodzą wszystkie atomy, z których się składa. Jest to traktowane jak koniunkcja. Reguły z następnikiem w postaci koniunkcji mogą być łatwo zamienione (za pomocą transformacji Lloyd-Topor'a) na wiele reguł, każda z niepodzielnym następnikiem (jeden atom).

atom ::= description '(' i-object ')'
       | individualvaluedPropertyID '(' i-object i-object ')'
       | datavaluedPropertyID '(' i-object d-object ')'
       | sameAs '(' i-object i-object ')'
       | differentFrom '(' i-object i-object ')'

Atomy mogą być przedstawione w formie C(x), P(x,y), sameAs(x,y), differentFrom(x,y), gdzie C jest opisem w OWL, P właściwością w OWL, a x, y są zmiennymi, egzemplarzami klasy zdefiniowanej przez użytkownika (OWL individuals) lub wartościami danych w OWL. W kontekście OWL Lite, opisy w atomach w formie C(x) mogą być ograniczone do nazw klas.

Nieformalnie, atom C(x) jest prawdą gdy x jest egzemplarzem opisu C danej klasy, atom P(x,y) zachodzi, gdy x jest w relacji z y przez właściwość P, atom sameAs(x,y) zachodzi gdy x jest interpretowane jako ten sam obiekt co y, atom differentFrom(x,y) zachodzi gdy x i y są interpretowane jako inne obiekty. Dwie ostatnie formy są wygodne, ale nie zwiększają siły ekspresji języka (tzn. takie (nie)równości mogą być już wyrażone używając kombinacji języka OWL i reguł bez wyraźnych atomów (nie)równości).

Direct Model-Theoretic Semantics

Podstawowym założeniem jest zdefiniowanie wiązań (bindings), rozszerzeń interpretacji OWL, które mapują zmienne do elementów domeny. Reguła jest poprawna, jeżeli każde wiązanie, które powoduje, że poprzednik jest prawdą, także powoduję prawdziwość następnika. Semantyczne warunki związane z aksjomatami i ontologiami są niezmienione.

Dla danej interpretacji I abstrakcyjnego języka OWL, wiązanie B(I) jest interpretacją abstrakcyjnego OWL, która rozszerza I tak jak funkcja S mapuje odpowiednio i-zmienne do elementów R i d-zmienne do elementów LVT.

Abstrakcyjną interpretację OWL przedstawiamy w formie: I = <R, V, EC, ER, S>. Atom jest usatysfakcjonowany interpretacją I pod warunkami w poniższej tabeli.

Atom Condition on Interpretation
description(x) S(x) ∈ EC(description)
property(x,y) <S(x),S(y)> ∈ ER(property)
sameAs(x,y) S(x) = S(y)
differentFrom(x,y) S(x) ≠ S(y)

Wiązanie B(I) satysfakcjonuje poprzednik A, jeśli A jest puste lub B(I) satysfakcjonuje każdy atom w A. Wiązanie B(I) satysfakcjonuje następnik C, jeśli C nie jest puste i B(I) satysfakcjonuje każdy atom w C. Reguła jest satysfakcjonująca przez interpretacje I, jeżeli dla każdego wiązania B takiego, że B(I) satysfakcjonuje poprzednik, to B(I) także satysfakcjonuje poprzednik.

XML Concrete Syntax

Istniejący OWL XML można łatwo rozszerzyć, tak aby można było w nim zapisać reguły, dzięki czemu:

  • dowolna klasa OWL może być użyta jako predykat w regułach;
  • aksjomaty reguł i ontologii mogą być dowolnie mieszane;
  • istniejący arkusz stylów XSLT może być łatwo rozszerzona o mapowanie do grafów RDF, które rozszerza wymienną składnię OWL RDF/XML.


Główny element składni OWL XML - Ontology - rozszerzono o aksjomaty Rule i Variable.

<Ontology
  name = xsd:anyURI 
>
  Content: (VersionInfo | PriorVersion | BackwardCompatibleWith | 
            IncompatibleWith | Imports | Annotation | 
            Class[axiom] | EnumeratedClass(D,F) | 
            SubClassOf(D,F) | EquivalentClasses | DisjointClasses(D,F) | 
            DatatypeProperty | ObjectProperty | 
            SubPropertyOf | EquivalentProperties | 
            Individual[axiom] | SameIndividual | DifferentIndividuals |
            Rule[axiom] | Variable[axiom])* 
</Ontology>

Dodano oczywiście odpowiednią składnię dla elementów Variable i Rule.

<Variable
  name = xsd:anyURI
 
>
  Content: ( Annotation* ) 
</Variable>
<Rule>
  Content: ( Annotation*, antecedent, consequent )
</Rule>

Pojawiają się tu elementy antecedent i consequent, które składają się z listy atmów, traktowanej jako koniunkcja tych atomów.

<antecedent>
  Content: ( atom* )
</antecedent>
<consequent>
  Content: ( atom* )
</consequent>

Atom to grupa elementów, w której skład wchodzą: classAtom, individualPropertyAtom, datavaluedPropertyAtom, sameIndividualAtom, differentIndividualsAtom. Poniżej znajduje się ich składnia.

<classAtom>
  Content: ( description, iObject )
</classAtom>
<individualPropertyAtom
  property = xsd:anyURI {required} 
>
  Content: ( iObject, iObject )
</individualPropertyAtom>
<datavaluedPropertyAtom
  property = xsd:anyURI {required} 
>
  Content: ( iObject, dObject )
</datavaluedPropertyAtom>
<sameIndividualAtom>
  Content: ( iObject* )
</sameIndividualAtom>
<differentIndividualsAtom>
  Content: ( iObject* )
</differentIndividualsAtom>


Za pomocą składni OWL XML, rozszerzonej o reguły, można zapisać np. taką regułę, że z własności hasParent i hasBrother wynika własność hasUncle.

<owlx:Rule> 
  <owlx:antecedent> 
    <owlx:individualPropertyAtom  owlx:property="hasParent"> 
      <owlx:Variable owlx:name="x1" />
      <owlx:Variable owlx:name="x2" />
    </owlx:individualPropertyAtom> 
    <owlx:individualPropertyAtom  owlx:property="hasBrother"> 
      <owlx:Variable owlx:name="x2" />
      <owlx:Variable owlx:name="x3" />
    </owlx:individualPropertyAtom> 
  </owlx:antecedent> 
  <owlx:consequent> 
    <owlx:individualPropertyAtom  owlx:property="hasUncle"> 
      <owlx:Variable owlx:name="x1" />
      <owlx:Variable owlx:name="x3" />
    </owlx:individualPropertyAtom> 
  </owlx:consequent> 
</owlx:Rule>

Mapping to RDF Graphs

Reguły zawierają zmienne, więc bardzo trudne jest traktowanie ich jako semantyczne rozszerzenie RDF. Aczkolwiek możliwe jest dostarczenie składni RDF dla reguł. Jest tak, ponieważ semantyka wynikowego grafu RDF nie jest rozszerzeniem RDF Semantics. Mapowanie do RDF/XML jest prościej tworzone jako rozszerzenie transformacji XSLT dla składni OWL XML.

Poniżej przykład przedstawiający rozszerzenie składni OWL RDF/XML o reguły.

<owlr:Variable rdf:ID="_x1"/>
<owlr:Variable rdf:ID="_x2"/>
<owlr:Variable rdf:ID="_x3"/>
<owlr:Rule> 
  <owlr:antecedent rdf:parseType="Collection">
    <owlr:individualPropertyAtom> 
      <owlr:propertyPredicate rdf:resource="&eg;hasParent"/> 
      <owlr:argument1 rdf:about="#_x1" />
      <owlr:argument2 rdf:about="#_x2" />
    </owlr:individualPropertyAtom>
    <owlr:individualPropertyAtom> 
      <owlr:propertyPredicate rdf:resource="&eg;hasSibling"/> 
      <owlr:argument1 rdf:about="#_x2" />
      <owlr:argument2 rdf:about="#_x3" />
    </owlr:individualPropertyAtom>
    <owlr:individualPropertyAtom> 
      <owlr:propertyPredicate rdf:resource="&eg;hasSex"/> 
      <owlr:argument1 rdf:about="#_x3" />
      <owlr:argument2 rdf:about="#male" />
    </owlr:individualPropertyAtom>
  </owlr:antecedent>
  <owlr:consequent rdf:parseType="Collection"> 
    <owlr:individualPropertyAtom> 
      <owlr:propertyPredicate rdf:resource="&eg;hasUncle"/> 
      <owlr:argument1 rdf:about="#_x1" />
      <owlr:argument2 rdf:about="#_x3" />
    </owlr:individualPropertyAtom>
  </owlr:consequent> 
</owlr:Rule>

Inductive Logic Programming

Jedną z koncepcji zbudowania reguł ontologii jest ILP, które powstało z połączenia Logic Programming i Concept Learning. Z LP wzięło framework Knowledge Representation, a z CL odziedziczyło mechanizm wnioskowania dla indukcji, z którego najbardziej znaczące jest uogólnianie. W Cencept Learning uogólnianie jest postrzegane jako przeszukiwanie częściowo uporządkowanej przestrzeni indukcyjnych hipotez. Zgodnie z tą wizją indukcyjna hipoteza jest teoretycznie klauzulą, które wymaga strukturyzacji, przeszukiwania i ograniczania przestrzeni klauzul.

Przestrzeń hipotez może być przeszukiwana przez znaczenie uściślonych operatorów, które są funkcjami obliczającymi zbiór specjalizacji klauzuli. Specjalizacja jest odpowiednia dla kierunku przeszukiwania w tym podejściu. Kierunek przeszukiwań jest w tym przypadku z góry do dołu, ale operatory mogą być także zdefiniowane jako obliczające uogólnienia z klauzul i wtedy mamy przeszukiwanie z dołu do góry.

Indukcja z ILP, uogólnia poszczególne instancje w obecnej podstawie wiedzy, znajdując poprawne hipotezy. Ich prawdziwość zależy od poniższego otoczenia. Obecnie istnieje kilka formalizmów indukcji w logice opartej na klauzulach.

Zostały zaproponowane dwa frameworki ILP, które stosują hybrydowy język DL-HCL dla reprezentacji zarówno hipotez jak i wiedzy.

  • CARIN-ALN
  • AL-log

Prezentacja

Materiały

OWL Rules:

inne:

pl/miw/2009/miw09_owl_rules_2.1244068373.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (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