Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
Nowa wersja
Both sides next revision
|
pl:miw:miw08_xtt_rif:obsolate [2008/04/13 16:23] miw |
pl:miw:miw08_xtt_rif:obsolate [2008/04/23 22:26] miw |
* rif:iri (dla **internationalized resource identifiers** czyli **IRI**s) | * rif:iri (dla **internationalized resource identifiers** czyli **IRI**s) |
* rif:local (dla stałych symboli, nie widocznych poza poszczególymi zestawami formuł RIF) | * rif:local (dla stałych symboli, nie widocznych poza poszczególymi zestawami formuł RIF) |
| ==== Wspierane formuły ==== |
| * 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: |
| <code>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)</code> |
| 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>. |
| |
| **//[[pl:miw:miw08_xtt_rif:przyklad3|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. |
| <code>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)</code> |
| |
| **//[[pl:miw:miw08_xtt_rif:przyklad4|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: |
| <code xml> |
| <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> |
| </code> |
| |