Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_xtt_rif:obsolate [2008/04/23 22:26] miw |
pl:miw:miw08_xtt_rif:obsolate [2008/05/29 19:31] miw |
==== 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: | |
<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> | |
| |