==== Przypisywanie podpisu do stałych symboli ====
Opis podpisów (ang. signatures) został umieszczony [[pl:miw:miw08_xtt_rif:signatures|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 ====
* [[http://www.w3.org/2001/XMLSchema#string|xsd:string]]
* [[http://www.w3.org/2001/XMLSchema#decimal|xsd:decimal]]
* [[http://www.w3.org/2001/XMLSchema#time|xsd:time]]
* [[http://www.w3.org/2001/XMLSchema#dateTime|xsd:date]]
* [[http://www.w3.org/2001/XMLSchema#dateTime|xsd:dateTime]]
* [[http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral|rdf:XMLLiteral]]
* rif:text (dla ciągów znaków z dołączonymi tagami językowymi)
* rif:iri (dla **internationalized resource identifiers** czyli **IRI**s)
* 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:
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 2007-11-23T03:55:44-02:30.
**//[[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.
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)
**//[[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:
ABCop:numeric-lesser-thanAop:numeric-add3Bfn:assignCB
Poniższe propozycje zapisu XTT za pomocą RIFa są oparte na proponowanym XTTMLu i są z nim zestawione. Jest to wstępna wersja, która zostanie dopracowana.
^XTTML ^RIF ^
|
...
|
...
|
|
...
|
...
|
|
...|att_0att_1
...
|
|
...
|
...
...
|
|
...
|runxtt_linkxtt_1
...
=== Przykład 1: calculations (factorial) ===
|----------------------------------------------------|
| |
| x s || s |
|->------------ x y s || y |
NA ||=x --+------> ------------------- |
>0 ||=s-1 --| || |
>0 >0 || =y*s -----|
=0 || =1 -----------|
>0 =1 || -----------+------>
fn:is_emptyxxtt:conclxtt:next_tablextt_table2op:assignsxop:numeric-greater-thans0xtt:conclxtt:next_tablextt_table2op:assignsop:numeric-substracts1op:numeric-greater-thanx0op:numeric-greater-thans0xtt:conclxtt:next_tablextt_table1op:assignyop:numeric-multiplyysx0xtt:run_manyop:assigny1xtt:returnsxyop:numeric-greater-thanx0s1xtt:returnsxy
Obie tablice w formacie xml: {{:pl:miw:miw08_xtt_rif:factorial.xml|factorial.xml}}, {{:pl:miw:miw08_xtt_rif:factorial1.xml|factorial1.xml}}
----
Powyższy przykład został zwalidowany za pomocą dostępnych arkuszy XSD. Jedyny element, który zgłasza błędy jest to parametr ''id'', aczkolwiek ze względu na brak walidacji niektórych przykładów obecnych w dokumentacji, nie należy się tym przejmować. Nigdzie w dokumentacji nie ma wyraźnego zakazu wykorzystywania elementów standardu XML.