Rule Interchange Format (RIF)

  • engl.: Rule Interchange Format (RIF)
  • am 22. Juni 2010 als W3C-Standard verabschiedet
  • Fokus liegt auf dem Austausch von Regeln – nicht ein Format für alle Regelsprachen
  • einzelne Sprache kann nicht verschiedene Paradigmen und Bedürfnisse für Regelbenutzungen erfüllen
  • Familie von Sprachen, die Dialekte (dialects) genannt werden
  • RIF ist einheitlich (uniform) und erweiterbar (extensible)


RIF Dialekte

 Konzentration auf zwei Arten von Dialekten:

  1. logikbasiert (z.B. Prädikatenlogik, Logikprogrammierung)
  2. “rules with actions” (z.B. Produktionsregeln)

RIF bietet Framework zur Definition eigener Dialekte

RIF mit RDF und OWL kompatibel:

  • kann semantisch kombiniert werden mit OWL/RDF
  • RDF-Syntax für RIF vorhanden


RIF Dokumente

   
 
Dokument
Beschreibung
 
RIF-BLD:
The Basic Logic Dialect
definite Hornklauseln, Standard-Prädikatenlogik-Semantik
 
RIF-PRD:
The Production Rule Dialect
deckt Vielzahl von Produktionsregelsystemen ab
 
RIF-Core:
The Core Dialect
ermöglicht Regelaustausch zwischen Systemen mit Logikregeln und Produktionsregeln
 
RIF-FLD:
The Framework for Logic Dialect
logisches Erweiterungsframework um Anstrengungen zu minimieren neue Logikdialekte zu definieren
 
RIF-RDF+OWL:
RDF und OWL Kompatibilität
Kombination von RIF mit RDF oder OWL
 
RIF-DTB:
Datatypes und Build-ins
enthält Datentypen, Funktionen und Prädikate für RIF-Dialekte
 
RIF+XML-Data:
spezifiziert, wie RIF mit XML Datenquellen kombiniert werden kann (Import, Semantik)
 
RIF-OWLRL:
OWL 2 RL in RIF
Axiomatisierung von OWL 2 RL in RIF
 
RIF in RDF
umkehrbares Mapping von RIF auf RDF
 
RIF-UCR:
Use Cases and requirements
Sammlung von Anwendungsfällen
 
RIF-Test:
Test Cases
Konformitätstests für RIF-Implementierungen


RIF Core

ist der einfachste RIF Dialekt

Ein Core Dokument besteht aus

  • Direktiven wie Import Prefixeinstellung für URIs
  • eine Sequenz von logischen Schlussfolgerungen


RIF Core Beispiel

Document(
Prefix(cpt http://example.com/concepts#)
Prefix(person http://example.com/people#)
Prefix(isbn http://.../isbn/)
Group
(
Forall ?Buyer ?Book ?Seller (
cpt:buy(?Buyer ?Book ?Seller ):− cpt:sell(?Seller ?Book ?Buyer)
)
cpt:sell(person:John isbn:000651409X person:Mary)
)
)
Daraus lässt sich folgende Beziehung ableiten:
cpt:buy(person:Mary isbn:00065409X person:John)


Ausdrucksstärke von RIF Core

  • Datalog als Basis
  • enthält Schnittmenge von RIF-BLD (Basic Logic Dialect) und RIF-PRD (Production Rule Dialect)
  • einige Erweiterungen: Datentypen (RIF-DTB), IRIs
  • Forward-Chaining möglich


Kombination von RDF + RIF

Typisches Szenario:

  • die Daten der Anwendung sind in RDF verfügbar
  • die Regeln für die Daten werden durch RIF beschrieben
  • ein RIF Prozessor erzeugt neue Beziehungen

RDF + RIF kompatibel:

  • RDF Triples sind in RIF Repräsentierbar


Beispiel in Turtle-basierter Syntax

{
?x  rdf:type       p:Novel ;
p:page_number  ?n ;
p: price       [
p:currency  :Euro ;
rdf:value   ?z
] .
?n > "500" ^^xsd:integer .
?z < " 20.0 " ^^xsd:double .
}
=>
{ <me>  p:buys  ?x }


Das Gleiche mit RIF Präsentationssyntax

Document (
Prefix ...
Group (
Forall ?x  ?n  ?z (
<me> [p:buys−>?x ] :− And (
?x  rdf:type  p:Novel
?x[p:page_number−>?n p:price−>_abc]
_abc [p:currency−>:Euro rdf:value−>?z]
External(pred:numeric−greater−than(?n "500"^^xsd:integer))
External(pred:numeric−less−than(?z "20.0"^^xsd:double))
)
)
)
)


Neue Beziehungen entdecken...

Forall ?x  ?n  ?z (
  [p:buys−>?x] :− And(
    ?x  rdf:type  p:Novel
    ?x[p:page_number−>?n p:price−>_abc]
    _abc[p:currency −>:Euro rdf:value−>?z ]
    External(pred:numeric−greater−than(?n "500"^^xsd:integer))
    External(pred:numeric−less−than(?z "20.0"^^xsd:double))
  )
)
in Kombination mit:
<http://.../isbn/...>  a              p:Novel ;
                       p:page_number  "600"^^xsd:integer ;
                       p: price      [
                           rdf:value   "15.0"^^xsd:double ;
                           p:currency  :Euro
                       ] .
führt zu:
<me>  p:buys  <http://...isbn/...> .


Was ist mit OWL 2 RL?

OWL 2 RL steht für OWL Rule Language

OWL 2 RL ist die Schnittmenge von RIF Core und OWL

  • Folgerungen in OWL RL können mit RIF Regeln ausgedrückt werden
  • RIF Core engines können sich wie OWL RL engines verhalten
    • wie beschrieben im Dokument RIF-OWLRL kann OWL 2 RL direkt in RIF verarbeitet werden


Ausblick: Kombination von SPARQL 1.1 und RIF

 




Creator: soeren (TIB)

Contributors:
Jens_Lehmann, LorenzBuehmann, Q1


Licensed under the Creative Commons
Attribution ShareAlike CC-BY-SA license


This deck was created using SlideWiki.