==== 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: A B C op:numeric-lesser-than A op:numeric-add 3 B fn:assign C B 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_0 att_1 ... | | ... | ... ... | | ... | run xtt_link xtt_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_empty x xtt:concl xtt:next_table xtt_table2 op:assign s x op:numeric-greater-than s 0 xtt:concl xtt:next_table xtt_table2 op:assign s op:numeric-substract s 1 op:numeric-greater-than x 0 op:numeric-greater-than s 0 xtt:concl xtt:next_table xtt_table1 op:assign y op:numeric-multiply y s x 0 xtt:run_many op:assign y 1 xtt:return s x y op:numeric-greater-than x 0 s 1 xtt:return s x y 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.