Export page to Open Document format

MIW 2010 "Translator HML -> RuleML Lite"

  • research on RuleML Lite - a „RuleML subset compatible with RDF and OWL-DL that covers webized unary and binary Datalog facts, rules, and queries. The RuleML Lite design has interacted with the SWRL design via the Joint Committee.”
  • where is it used, how up-to-date is the information about it
  • create an XSLT translator from HML2 to RuleML Lite

Input:

Output:

  • RuleML Lite description in wiki, with links
  • XSLT translator HML→RuleML Lite

Prezentacja

Sprawozdanie

1.Wstęp

Stworzony przeze mnie translator przetwarza język HML używany w projekcie Hekate do języka RULE ML Lite. Jako języka przekształceń użyłem XSL (Extensible Stylesheet Language). Podczas konsultacji z moim opiekunem zdefiniowaliśmy główne “sektory” języka Hekate, które powinny zostać poddane translacji. Sposób translacji, tzn. metoda zapisu odwzorowań miała być główną częścią projektu. Moim zadaniem było zdefiniowanie metod dostępnych w RuleML Lite, które, jak najwierniej, odwozorowałyby logikę języka HML.

2.Składnia języka RuleML Lite oraz jego zastosowania.

a) fakty: Fakt jest oznaczony w języku RuleML Lite elementem facto, który może mieć dwójkę lub trójkę dzieci: Węzeł _opr zawierający nazwę relacji, Węzeł ind zawierający argument relacji, Węzeł data opcjonalny.
Prolog:

ocean(Pacific).
area(Canada,sqkm9976140).

XML:

<rulebase>
  <facto>
    <_opr href="#ocean"/>
    <ind href="#Pacific"/>
  </facto>
  <facto>
    <_opr href="#area"/>
    <ind href="#Canada"/>
    <data>sqkm 9976140</data>
  </facto>
</rulebase>

b) reguły: Reguła jest oznaczona tagiem imp, który ma dwoje dzieci: - tag _head z jednym elementem atom - tag _body z jednym lub więcej elementem atom Prolog:

stretches(?x,?y) :- 	has_as_part(?y,?x),
co-flanked(?x,?y).

XML:

<imp>                                     
  <_head>                                 
    <atom>
      <_opr href="#stretches"/>                                     
      <var>x</var>
      <var>y</var>                                   
    </atom>
  </_head>                                     
  <_body>                            
    <atom>
      <_opr href="#has_as_part"/>                               
        <var>y</var>
        <var>x</var>                                  
      </atom>
      <atom>                                   
        <_opr href="#co-flanked"/>                                    
        <var>x</var>
        <var>y</var>                                
	</atom>
    </_body>
</imp>

b) reguły: Reguła jest oznaczona tagiem imp, który ma dwoje dzieci:
- tag _head z jednym elementem atom
- tag _body z jednym lub więcej elementem atom
Prolog:

stretches(?x,?y) :- 	has_as_part(?y,?x),
co-flanked(?x,?y).

XML:

<imp>                                     
  <_head>                                 
    <atom>
      <_opr href="#stretches"/>                                     
      <var>x</var>
      <var>y</var>                                   
    </atom>
  </_head>                                     
  <_body>                            
    <atom>
      <_opr href="#has_as_part"/>                               
	<var>y</var>
	<var>x</var>                                  
    </atom>
    <atom>                                   
      <_opr href="#co-flanked"/>                                    
 	<var>x</var>
 	<var>y</var>                                
    </atom>
  </_body>
</imp>

Ogólnie rzecz biorąc, reguły są używane w różnych dziedzinach w celu wychwycenia pewnych regularności występujących w danym systemie. Zadaniem RuleML Lite jest „zapakowanie” takich regularności i uczynienie ich dostępnymi w XMLowej przestrzeni nazw (…/RuleML). Czy takie „zapakowanie” jest korzystne? Jak najbardziej tak, gdyż jest to jakaś forma ujednolicenia struktury w jakiej dane(fakty, reguły, cele) są przechowywane oraz używane. Pozwala to na łatwą integrację tak zapisanego pakietu danych z innymi językami np. XHTMLem. Dwa przykładowe zastosowania języka RuleML:
* Jako narzędzie używane w wyszukiwarce albumów muzycznych
* Jako baza wiedzy informacji związanych z biznesem (NBBizKB - New Brunswick Business Knowledge Base) z różnych źródeł, np. ze strony Yahoo

zostały opisane w podpunkcie 5. w:
http://ruleml.org/w3c-ws-rules/implementing-ruleml-w3c-ws.html#usecases

3.Opis translacji.

Ze względu na ubogość składniową języka RuleML Lite dużo struktur języka HML nie udało mi się jednoznacznie zmapować na język RuleML Lite. Poniżej znajduje się symboliczne oznaczenie mapowań jakich dokonałem:
a) Translacja węzłów „Types” języka HML:
Rys.1. Translacja węzła <type>
Rys.2. Translacja węzła <desc>

Rys.3. Translacja węzłów <domain>

b) translacja węzłów „Attributes” języka HML:

Rys.4. Translacja węzła <attr>
c) translacja węzłów „Properties” języka HML:

Rys.5. Translacja węzła <property> d) translacja węzłów „Tph”.
Rys.6. Translacja węzła <tph> e) translacja węzłów „Ard”:
Rys.7. Translacja węzła <ard> f) translacja węzłów „xtt”:

4.„Braki” RuleML Lite.

5.Propozycje struktur zaczerpniętych z innych języków.

6.Wnioski.

7.Translator (plik .xsl).

8.Przetłumaczone Case'y.

Spotkania

Projekt

Wszystkie wątki projektu znajdują się w projekcie głównym

Materiały

pl/dydaktyka/miw/2010/xsltruleml.txt · ostatnio zmienione: 2017/07/17 08:08 (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