To jest stara wersja strony!
Przypisywanie podpisu do stałych symboli
Opis podpisów (ang. signatures) został umieszczony tutaj. Podpisy nie są częścią składni RIFa.
Obsługiwane typy termów
RIF-BLD wspiera powyższe typy termów:
stałe
zmienne
pozycjonowane
z nazwanymi argumentami
równościowe
ramy
należące do klasy
należące do podklas
Wspierane przestrzenie symboli
-
-
-
-
-
-
rif:text (dla ciągów znaków z dołączonymi tagami językowymi)
rif:iri (dla internationalized resource identifiers czyli IRIs)
rif:local (dla stałych symboli, nie widocznych poza poszczególymi zestawami formuł RIF)
warunek RIF-BLD
reguła RIF-BLD
Serializacja XML dla przenoszalności RIF
Serializacja XML dla składni prezentacji RIF-BLD zaprezentowana w tej sekcji jest z nią przemienna. Naśladując Javę i RDF, używamy nazw pisanych dużymi literami dla elementów klas oraz nazw które zaczynają się od małej litery dla elementów ról.
Wszystkie klasy zapisywane dużymi literami w składni prezentacji, jak CONDITION, stają się tagami (?) XMLa. Zachowują się jak makra i nie są widoczne w instance markup.
Zacznijmy od serializacji Języka Warunkowego w XMLu:
Klasy, role i ich zamierzone znaczenie
- And (conjunction)
- Or (disjunction)
- Exists (quantified formula for 'Exists', containing declare and formula roles)
- declare (declare role, containing a Var)
- formula (formula role, containing a CONDITION formula)
- Uniterm (term or atomic formula, positional or with named arguments)
- Member (member formula)
- Subclass (subclass formula)
- Frame (Frame formula)
- object (Member/Frame role containing a TERM or an object description)
- op (Uniterm role for predicates/functions as operations)
- arg (argument role)
- upper (Member/Subclass upper class role)
- lower (Member/Subclass lower instance/class role)
- slot (Uniterm/Frame slot role, prefix version of slot infix ' -> ')
- Equal (prefix version of term equation '=')
- side (Equal left-hand side and right-hand side role)
- Const (slot, individual, function, or predicate symbol, with optional 'type' attribute)
- Var (logic variable)
Składnia XML dla przestrzeni symboli wykorzystuje atrybut type związany z elementami term, jak Const. Na przykład literał w xsd:dateTime data type może być przedstawiony jako <Const type=„xsd:dateTime”>2007-11-23T03:55:44-02:30</Const>.
Przykład 3
Przykład ten obrazuje serializację XML dla warunkór RIFa.
Serializacja języka reguł
Jest to rozszerzenie Języka Warunkowego poprzez serializację reguł RIF-BLD. Element Forall zawira role elements declare and formula, które były wcześniej wykorzystywane w elemencie Exists. Element Implies zawiera role elementów if oraz then rozróżniające te dwie części reguły.
Klasy, role i ich zamierzone znaczenie
- Ruleset (rule collection, containing rule roles)
- Forall (quantified formula for 'Forall', containing declare and formula roles)
- Implies (implication, containing if and then roles)
- if (antecedent role, containing CONDITION)
- then (consequent role, containing a Uniterm, Equal, or Frame)
Przykład 4
Przykład przedstawia warunek z przykładu 2a zapisany za pomocą XML'a:
Przemyślenia dotyczące reguł zawierających przypisanie
Przeglądając dokumentacje RIF'a nie znalazłem wzmianki o operacji przypisania. Jedną z metod, byłoby zaproponowanie zaimplementowanie predykatu fn:assign(A,B) przypisującego elementowi A wartość elementu B. Wydaje mi się, że ze względu na trwające ciągle prace nad formatem kwestia ta pozostaje otwarta i można przyjąć, że taki warunek jest formułowalny w RIF'ie.
Proponowany przeze mnie zapis wyglądał by tak:
<Ruleset>
<rule>
<declare><Var>A</Var></declare>
<declare><Var>B</Var></declare>
<declare><Var>C</Var></declare>
<formula>
<Implies>
<if>
<formula>
<Uniterm>
<op><Const type="rif:iri">op:numeric-lesser-than</Const></op>
<arg><Var>A</Var></arg>
<arg>
<Uniterm>
<op><Const type="rif:iri">op:numeric-add</Const></op>
<arg><Const type="">3</Const></arg>
<arg><Var>B</Var></arg>
</Uniterm>
</arg>
</Uniterm>
</formula>
</if>
<then>
<Uniterm>
<op><Const type="rif:iri">fn:assign</Const></op>
<arg><Var>C</Var></arg>
<arg><Var>B</Var></arg>
</Uniterm>
</then>
</Implies>
</formula>
</rule>
</Ruleset>