**RuleML - Rule Markup Language** jest językiem powstałym w ramach inicjatywy [[http://www.w3.org/2001/sw/|Semantic Web]], służącym do zapisywania reguł logicznych na bazie składni języka XML. W istocie, język RuleML rozszerza język OWL o dynamiczne aspekty modelowania wiedzy. RuleML obejmuje m.in.
*Mathematical Markup Language (MathML)
*DARPA Agent Markup Language (DAML)
*Predictive Model Markup Language (PMML)
*Gramatyke atrybutów w XML (AG-znaczników):
*Transformacje XSL (XSLT)
Podobnie jak to było w przypadku R2ML, nie musimy być zaznajomieni ze wszystkimi elementami języka RuleML w celu jego wykorzystania. Aby można było użyć RuleML do przedstawiania reguł potrzebna jest wiedza jak zapisywać typowe dla nich elementy.
Przykłady takich elementów (RuleML ver. 0.91):
* wartosc logiczna: B
B
* stałe argumenty: 20
20
* suma: n+1
add
n
1
* różnica: n-1
subtract
n
1
* równość: (wyr_1) = (wartosc)
(wyr_1)
(wartosc)
Atrybut ‘oriented’ przyjmuje wartość ‘yes’ (directed equation) lub ‘no’ (undirected equation, default)
( (left hand side) i (right hand side) moga być pominiete, pomagaja w okresleniu orientacji)
* nierówność: n > 0
greaterThan
n
0
* nierówność: n <= 1
lessThanorEqual
n
0
* suma logiczna : (wyr_1) and (wyr_2)
(wyr_1)
(wyr_2)
* warunek if : (conclusion) if (conditions)
(conclusion)
(conditions)
* funkcje: fun_name(B)
fun_name
B
Atrybut ‘in’ przyjmuje wartości “yes”(uninterpreted functions – nie uzywaja definicji funkcji) lub “no”(interpreted functions – uzywaja definicji funkcji), in=”semi” to wartość domyślna (neutralna). Atrybut ‘val’ określa czy funkcja jest determistyczna czy nie determistyczna; dopuszczalne wartości „1”- dokładnie jeden , „0…” – zero lub wiecej, „2”, „0…3” itp.
Teraz możemy spróbować zapisać nasz przykład (Jeżeli dzień=poniedziałek wtedy temp=20st) za pomocą RuleML. Przedstawmy go w postaci:
temp = 20 if day = monday
wówczas w RuleML zapis bedzie wyglądał następująco:
day
monday
temp
20
[[https://ai.ia.agh.edu.pl/wiki/pl:miw:miw08_hml_rules|Powrót]]
====== Materiały ======
** Więcej na stronie domowej RuleML** (http://www.ruleml.org/0.91/)
** Szczególnie przydatne** http://www.ruleml.org/0.91/glossary/
** Więcej przykładów** http://www.ruleml.org/0.91/exa/