Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_xtt_rif [2008/05/28 17:35]
miw tuple
pl:miw:miw08_xtt_rif [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Opis ====== ====== Opis ======
 +__**Projekt zakończony**__
 +
 Mateusz Mazur, <​m-a-t-i@o2.pl>​ Mateusz Mazur, <​m-a-t-i@o2.pl>​
  
Linia 12: Linia 14:
   * [[http://​xml.apache.org/​]]   * [[http://​xml.apache.org/​]]
   * :​!:​**[[http://​www.w3.org/​2005/​rules/​wg/​wiki/​Arch/​XML_Syntax_Issues_2]]**   * :​!:​**[[http://​www.w3.org/​2005/​rules/​wg/​wiki/​Arch/​XML_Syntax_Issues_2]]**
 +
  
 ====== Sprawozdanie ====== ====== Sprawozdanie ======
Linia 17: Linia 20:
 //W oparciu o dokumentację z 15.04.2008//​ ({{:​pl:​miw:​miw08_xtt_rif:​rif_bld_fld_freez.zip|rif_bld_fld_freez.zip}}) //W oparciu o dokumentację z 15.04.2008//​ ({{:​pl:​miw:​miw08_xtt_rif:​rif_bld_fld_freez.zip|rif_bld_fld_freez.zip}})
 ---- ----
 +  * 08.05.18 - nowy szkic specyfikacji. Nowości:
 +    * Dokument: [[http://​www.w3.org/​2005/​rules/​wg/​draft/​ED-rif-dtb-20080518/​|RIF Data Types and Built-Ins]]
 +    * Dokument: [[http://​www.w3.org/​2005/​rules/​wg/​draft/​ED-rif-ucr-20080518/​|RIF Use Cases and Requirements]] ​
 +    * Rozdział w RIF-BLD: [[http://​www.w3.org/​2005/​rules/​wg/​draft/​ED-rif-bld-20080518/​diff-since-20080415#​Interpretation_of_Documents|Interpretation of Documents]]
 +    * BLD: zmiany w opisie termów
 +    * BLD: zmiany w opisie dobrze sformułowanych formuł
 +    * BLD: zmiany w gramatyce
  
 ===== Wprowadzenie do RIF ===== ===== Wprowadzenie do RIF =====
Linia 496: Linia 506:
 Wstępne przmyślenia:​ Wstępne przmyślenia:​
    * Do nadania identyfikatorów posłuży element spoza RIF, należący do języka XML - ''​id''​.    * Do nadania identyfikatorów posłuży element spoza RIF, należący do języka XML - ''​id''​.
 +
 +
 +
  
  
Linia 540: Linia 553:
    <​then>​    <​then>​
     <​Atom>​ <!-- specjalny predykat, sugerujący następną regułę/​tablicę i wywołujący inne predykaty -->     <​Atom>​ <!-- specjalny predykat, sugerujący następną regułę/​tablicę i wywołujący inne predykaty -->
-     <​op><​Const type="​rif:​iri">​xtt:​concl</​Const></​op>​ +     <​op><​Const type="​rif:​iri">​xtt:​next_table_rule</​Const></​op>​ 
-     <​arg>​ +     <​arg><​Const type="​xsd:​string">​xtt_table1</​Const></​arg>​ 
-      <​Atom>​ <!-- predykat podajacy wartosci '​id'​ nastepnej tablicy/​wiersza --> +     ​<​arg><​Const type="​xsd:​string">​xtt_table_row1</​Const></​arg>​
-       <​op><​Const type="​rif:​iri">​xtt:​next_table_rule</​Const></​op>​ +
-       <​arg><​Const type="​xsd:​string">​xtt_table1</​Const></​arg>​ +
-       ​<​arg><​Const type="​xsd:​string">​xtt_table_row1</​Const>​</​arg>​ +
-      </​Atom>​ +
-     </​arg>​+
      <​arg>​      <​arg>​
       <!-- albo predykat do wywołania, albo predykat xtt:​run_many wywołujący więcej niż jeden predykat -->       <!-- albo predykat do wywołania, albo predykat xtt:​run_many wywołujący więcej niż jeden predykat -->
Linia 611: Linia 619:
  
 === Wykorzystywane predykaty === === Wykorzystywane predykaty ===
-W najnowszej wersji dokumentacji RIFa pojawił się dokument definiujący zarówno [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-dtb/​|predykaty wbudowane]],​ jaki i [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-dtb/#​Appendix:​_Schemas_for_Externally_Defined_Terms|definiowanie zewnętrznych]].+W najnowszej wersji dokumentacji RIFa pojawił się dokument definiujący zarówno [[http://​www.w3.org/​2005/​rules/​wg/​draft/​ED-rif-dtb-20080518/#​List_of_Supported_Built-in_Predicates_and_Functions|predykaty wbudowane]],​ jaki i [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-dtb/#​Appendix:​_Schemas_for_Externally_Defined_Terms|definiowanie zewnętrznych]].
    
 ^Predykat ​ ^External schema ​                          ​^Opis ​                                                                   ^ ^Predykat ​ ^External schema ​                          ​^Opis ​                                                                   ^
Linia 625: Linia 633:
   * Każda tablica (element ''​Group''​) musi być w osobnym pliku (zgodność z plikami xsd).   * Każda tablica (element ''​Group''​) musi być w osobnym pliku (zgodność z plikami xsd).
  
-=== Przykład 1: calculations (factorial) === 
-<​code>​ 
-|----------------------------------------------------| 
-|                                                    | 
-|   x s  || s                                        | 
-|->​------------ ​            ​x ​  ​y ​  ​s ​  ​|| ​ y        | 
-      NA ||=x   ​--+------>​ ------------------- ​      | 
-      >0 ||=s-1 --|                     ​|| ​          | 
-                            >0     >​0 ​  || =y*s -----| 
-                            =0          ||  =1  -----------| ​ 
-                            >0     ​=1 ​  ​|| ​     -----------+------>​ 
-</​code>​ 
-<code xml> 
-<Group id="​xtt_table1">​ 
- <​sentence id="​xtt_table1_row1">​ 
-  <​Implies>​ 
-   <​if>​ 
-    <​External>​ 
-     <​content>​ 
-      <​Atom>​ 
-       <​op><​Const type="​rif:​iri">​fn:​is_empty</​Const></​op>​ 
-       <​arg><​Var>​x</​Var></​arg>​ 
-      </​Atom>​ 
-     </​content>​ 
-    </​External>​ 
-   </​if>​ 
-   <​then>​ 
-    <​Atom>​ 
-     <​op><​Const type="​rif:​iri">​xtt:​concl</​Const></​op>​ 
-     <​arg>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Expr>​ 
-         <​op><​Const type="​rif:​iri">​xtt:​next_table</​Const></​op>​ 
-         <​arg><​Const type="​xsd:​string">​xtt_table2</​Const></​arg>​ 
-        </​Expr>​ 
-       </​content>​ 
-      </​External>​ 
-     </​arg>​ 
-     <​arg>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Expr>​ 
-         <​op><​Const type="​rif:​iri">​op:​assign</​Const></​op>​ 
-         <​arg><​Var>​s</​Var></​arg>​ 
-         <​arg><​Var>​x</​Var></​arg>​ 
-        </​Expr>​ 
-       </​content>​ 
-      </​External>​ 
-     </​arg>​ 
-    </​Atom>​ 
-   </​then>​ 
-  </​Implies>​ 
- </​sentence>​ 
-  
- <​sentence id="​xtt_table1_row2">​ 
-  <​Implies>​ 
-   <​if>​ 
-    <​External>​ 
-     <​content>​ 
-      <​Atom>​ 
-       <​op><​Const type="​rif:​iri">​op:​numeric-greater-than</​Const></​op>​ 
-       <​arg><​Var>​s</​Var></​arg>​ 
-       <​arg><​Const type="​xsd:​decimal">​0</​Const></​arg>​ 
-      </​Atom>​ 
-     </​content>​ 
-    </​External>​ 
-   </​if>​ 
-   <​then>​ 
-    <​Atom>​ 
-     <​op><​Const type="​rif:​iri">​xtt:​concl</​Const></​op>​ 
-     <​arg>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Expr>​ 
-         <​op><​Const type="​rif:​iri">​xtt:​next_table</​Const></​op>​ 
-         <​arg><​Const type="​xsd:​string">​xtt_table2</​Const></​arg>​ 
-        </​Expr>​ 
-       </​content>​ 
-      </​External>​ 
-     </​arg>​ 
-     <​arg>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Expr>​ 
-         <​op><​Const type="​rif:​iri">​op:​assign</​Const></​op>​ 
-         <​arg><​Var>​s</​Var></​arg>​ 
-         <​arg>​ 
-          <​External>​ 
-           <​content>​ 
-            <​Expr>​ 
-             <​op><​Const type="​rif:​iri">​op:​numeric-substract</​Const></​op>​ 
-             <​arg><​Var>​s</​Var></​arg>​ 
-             <​arg><​Const type="​xsd:​decimal">​1</​Const></​arg>​ 
-            </​Expr>​ 
-           </​content>​ 
-          </​External>​ 
-         </​arg>​ 
-        </​Expr>​ 
-       </​content>​ 
-      </​External>​ 
-     </​arg>​ 
-    </​Atom>​ 
-   </​then>​ 
-  </​Implies>​ 
- </​sentence>​ 
-</​Group>​ 
- 
-<Group id="​xtt_table2">​ 
- <​sentence id="​xtt_table2_row1">​ 
-  <​Implies>​ 
-   <​if>​ 
-    <And> 
-     <​formula>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Atom>​ 
-         <​op><​Const type="​rif:​iri">​op:​numeric-greater-than</​Const></​op>​ 
-         <​arg><​Var>​x</​Var></​arg>​ 
-         <​arg><​Const type="​xsd:​decimal">​0</​Const></​arg>​ 
-        </​Atom>​ 
-       </​content>​ 
-      </​External>​ 
-     </​formula>​ 
-     <​formula>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Atom>​ 
-         <​op><​Const type="​rif:​iri">​op:​numeric-greater-than</​Const></​op>​ 
-         <​arg><​Var>​s</​Var></​arg>​ 
-         <​arg><​Const type="​xsd:​decimal">​0</​Const></​arg>​ 
-        </​Atom>​ 
-       </​content>​ 
-      </​External>​ 
-     </​formula>​ 
-    </​And>​ 
-   </​if>​ 
-   <​then>​ 
-    <​Atom>​ 
-     <​op><​Const type="​rif:​iri">​xtt:​concl</​Const></​op>​ 
-     <​arg>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Expr>​ 
-         <​op><​Const type="​rif:​iri">​xtt:​next_table</​Const></​op>​ 
-         <​arg><​Const type="​xsd:​string">​xtt_table1</​Const></​arg>​ 
-        </​Expr>​ 
-       </​content>​ 
-      </​External>​ 
-     </​arg>​ 
-     <​arg>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Expr>​ 
-         <​op><​Const type="​rif:​iri">​op:​assign</​Const></​op>​ 
-         <​arg><​Var>​y</​Var></​arg>​ 
-         <​arg>​ 
-          <​External>​ 
-           <​content>​ 
-            <​Expr>​ 
-             <​op><​Const type="​rif:​iri">​op:​numeric-multiply</​Const></​op>​ 
-             <​arg><​Var>​y</​Var></​arg>​ 
-             <​arg><​Var>​s</​Var></​arg>​ 
-            </​Expr>​ 
-           </​content>​ 
-          </​External>​ 
-         </​arg>​ 
-        </​Expr>​ 
-       </​content>​ 
-      </​External>​ 
-     </​arg>​ 
-    </​Atom>​ 
-   </​then>​ 
-  </​Implies>​ 
- </​sentence>​ 
-  
- <​sentence id="​xtt_table1_row2">​ 
-  <​Implies>​ 
-   <​if>​ 
-    <​Equal>​ 
-     <​side><​Var>​x</​Var></​side>​ 
-     <​side><​Const type="​xsd:​decimal">​0</​Const></​side>​ 
-    </​Equal>​ 
-   </​if>​ 
-   <​then>​ 
-    <​Atom>​ 
-     <​op><​Const type="​rif:​iri">​xtt:​run_many</​Const></​op>​ 
-     <​arg>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Expr>​ 
-         <​op><​Const type="​rif:​iri">​op:​assign</​Const></​op>​ 
-         <​arg><​Var>​y</​Var></​arg>​ 
-         <​arg><​Const type="​xsd:​decimal">​1</​Const></​arg>​ 
-        </​Expr>​ 
-       </​content>​ 
-      </​External>​ 
-     </​arg>​ 
-     <​arg>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Expr>​ 
-         <​op><​Const type="​rif:​iri">​xtt:​return</​Const></​op>​ 
-         <​arg><​Var>​s</​Var></​arg>​ 
-         <​arg><​Var>​x</​Var></​arg>​ 
-         <​arg><​Var>​y</​Var></​arg>​ 
-        </​Expr>​ 
-       </​content>​ 
-      </​External>​ 
-     </​arg>​ 
-    </​Atom>​ 
-   </​then>​ 
-  </​Implies>​ 
- </​sentence>​ 
-  
- <​sentence id="​xtt_table2_row3">​ 
-  <​Implies>​ 
-   <​if>​ 
-    <And> 
-     <​formula>​ 
-      <​External>​ 
-       <​content>​ 
-        <​Atom>​ 
-         <​op><​Const type="​rif:​iri">​op:​numeric-greater-than</​Const></​op>​ 
-         <​arg><​Var>​x</​Var></​arg>​ 
-         <​arg><​Const type="​xsd:​decimal">​0</​Const></​arg>​ 
-        </​Atom>​ 
-       </​content>​ 
-      </​External>​ 
-     </​formula>​ 
-     <​formula>​ 
-      <​Equal>​ 
-       <​side><​Var>​s</​Var></​side>​ 
-       <​side><​Const type="​xsd:​decimal">​1</​Const></​side>​ 
-      </​Equal>​ 
-     </​formula>​ 
-    </​And>​ 
-   </​if>​ 
-   <​then>​ 
-    <​Atom>​ 
-     <​op><​Const type="​rif:​iri">​xtt:​return</​Const></​op>​ 
-     <​arg><​Var>​s</​Var></​arg>​ 
-     <​arg><​Var>​x</​Var></​arg>​ 
-     <​arg><​Var>​y</​Var></​arg>​ 
-    </​Atom>​ 
-   </​then>​ 
-  </​Implies>​ 
- </​sentence>​ 
-  
-</​Group>​ 
-</​code>​ 
-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. 
- 
-==== Proponowany zapis ==== 
  
 +==== Sugestie/​Braki w RIF ====
 +  * Możliwość umieszczania kilku elementów ''​Group''​ w jednym pliku
 +  * Identyfikowanie poszczególnych ''​Group'',​ ''​sentence'',​ np. poprzez parametr ''​id''​
 +  * Uproszczenie zapisu w xml ''​External schema'',​ bo w tej chwili zapis powoduje spory rozrost pliku i zmniejsza czytelność
 +  * "​Wywoływanie"​ większej ilości predykatów w konkluzji
  
 FIXME FIXME
   * ^_^runmany, etc   * ^_^runmany, etc
   * ^_^zestawienie wprowadzonych predykatów iri:xtt_... -> odn. do ew. impl.   * ^_^zestawienie wprowadzonych predykatów iri:xtt_... -> odn. do ew. impl.
-  * ew. lista sugestii/​ograniczeń w rif (id reguł)+  * ^_^ew. lista sugestii/​ograniczeń w rif (id reguł)
  
 ==== Translacja XTTML => RIF ==== ==== Translacja XTTML => RIF ====
pl/miw/miw08_xtt_rif.1211988921.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0