Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_uml_urml [2008/04/27 22:24] miw |
pl:miw:miw08_uml_urml [2019/06/27 15:50] (aktualna) |
====== UML_URML ====== | ====== UML_URML ====== |
| __**Projekt zakończony**__ |
| |
Piotr Przybycin <pit4@o2.pl> | Piotr Przybycin <pit4@o2.pl> |
Design rbs examples with URML. | Design rbs examples with URML. |
| |
| |
====== Spotkania ====== | ====== Spotkania ====== |
| |
===== 080415 ===== | ===== 080415 ===== |
| |
| |
====== Projekt ====== | ===== 080527 ===== |
| * przejście r2ml->urml (prod rules) |
| * czy/jak da się przejść z r2ml do XMI (urml) i vice versa |
| * sprawozdanie |
| |
| |
| |
| |
| |
| |
| |
| ======Sprawozdanie====== |
| |
===Wstęp=== | ===Wstęp=== |
Projektowanie naszego układu przebiegło bez większych problemów. Środowisko okazało się bardzo intuicyjne i pozwoliło zaprojektować całość układu bez zbędnych modyfikacji. | Projektowanie naszego układu przebiegło bez większych problemów. Środowisko okazało się bardzo intuicyjne i pozwoliło zaprojektować całość układu bez zbędnych modyfikacji. |
Nie zaobserwowałem również żadnych ograniczeń co do składni czy semantyki. Integracja w derivation rules realizowana jest przy użyciu logicznego AND, czyli wszystkie warunki muszą mieć wartość | Nie zaobserwowałem również żadnych ograniczeń co do składni czy semantyki. Integracja w derivation rules realizowana jest przy użyciu logicznego AND, czyli wszystkie warunki muszą mieć wartość |
true. Jeśli chcemy aby reguła była prawdziwa dla wartości false warunku; musimy wtedy zanegować wartość na wejściu. | true. Jeśli chcemy aby reguła dawała wartość true na wyjściu dla wartości false warunku; musimy wtedy zanegować wartość tego warunku. |
| |
Znalazłem także narzędzia ułatwiające integrację naszego modelu, ze środowiskami takimi jak: | Znalazłem także narzędzia ułatwiające integrację naszego modelu, ze środowiskami takimi jak: |
| |
Przykładowy kod po translacji do Jess dla reguły DR_bizh: | Przykładowy kod po translacji do Jess dla reguły DR_bizh: |
| <code xml> |
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> |
<!--// Jess output of R2ML derivation rules--> | <!--// Jess output of R2ML derivation rules--> |
</pre> | </pre> |
</jess> | </jess> |
| </code> |
Dla lepszego poznania środowiska Jess: [[http://www.jessrules.com/|JessRules.com]] | Dla lepszego poznania środowiska Jess: [[http://www.jessrules.com/|JessRules.com]] |
| |
Przykładowy kod R2ML dla reguły DR_bizh: | Przykładowy kod R2ML dla reguły DR_bizh: |
| |
| <code xml> |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
<r2ml:RuleBase xsi:schemaLocation="http://oxygen.informatik.tu-cottbus.de/R2ML/0.4/R2ML.xsd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:r2mlv="http://www.rewerse.net/I1/2006/R2ML/R2MLV" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:r2ml="http://www.rewerse.net/I1/2006/R2ML" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | <r2ml:RuleBase xsi:schemaLocation="http://oxygen.informatik.tu-cottbus.de/R2ML/0.4/R2ML.xsd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:r2mlv="http://www.rewerse.net/I1/2006/R2ML/R2MLV" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:r2ml="http://www.rewerse.net/I1/2006/R2ML" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
</r2ml:DerivationRuleSet> | </r2ml:DerivationRuleSet> |
</r2ml:RuleBase> | </r2ml:RuleBase> |
| </code> |
| |
| ===Zgodność z innymi językami=== |
| |
| R2ML jest obszernym, i przyjaznym dla użytkownika bazującym na XML-u językiem, którego głównymi zadaniami są: |
| * wymiana reguł między różnymi systemami i narzędziami |
| * możliwość łączenia poszczególnych systemów decyzyjnych z narzędziami bazującymi na R2ML-u w celu zapewnienia wizualizacji, werbalizacji, weryfikacji oraz ratyfikacji. |
| |
| |
| |
| R2ML jest bardzo wszechstronny ponieważ integruje takie języki jak: |
| * the Object Constraint Language (OCL) |
| * the Semantic Web Rule Language (SWRL) |
| * the Rule Markup Language (RuleML) |
| |
| Obecną wersją języka R2ML jest wersja 0.5 (Release Date: August 23, 2007). |
| Jest ona oparta na schemacie XML, który jest dostępny [[http://www.w3.org/2001/XMLSchema|XMLSchema]] |
| |
| Język R2ML jest ciągle rozwijany i mamy obecnie również dostęp do różnorakich translatorów takich jak: |
| |
| * R2ML to F-Logic |
| * F-LogicXML to R2ML |
| * R2ML to Jess |
| * R2ML to RuleML |
| * RuleML to R2ML |
| * R2ML to JenaRules |
| * JenaRules to R2ML |
| * R2ML to JBoss Rules |
| * SWRL to R2ML |
| * R2ML to SWRL |
| * R2ML to XMI |
| * R2ML to OCL |
| * OCL to R2ML |
| |
| Wszystkie dostępne pod linkiem [[http://oxygen.informatik.tu-cottbus.de/rewerse-i1/?q=node/15|translatory]] |
| |
| |
| Przykładowe przejście z kodu R2ML do XMI dla Production Rule z przykładu:[[http://oxygen.informatik.tu-cottbus.de/rewerse-i1/?q=node/17|przykład.]] |
| |
| |
| <code xml> |
| <?xml version = '1.0' encoding = 'ISO-8859-1' ?> |
| <XMI xmi.version = '1.2' timestamp = 'Tue Jun 03 13:12:09 CEST 2008'> |
| <XMI.header> |
| <XMI.documentation> |
| <XMI.exporter>Netbeans XMI Writer</XMI.exporter> |
| <XMI.exporterVersion>1.0</XMI.exporterVersion> |
| </XMI.documentation> |
| </XMI.header> |
| <XMI.content> |
| <R2ML.ProductionRuleSet xmi.id = 'a1'/> |
| <R2ML.ProductionRuleSet xmi.id = 'a2'/> |
| <R2ML.Atoms.AtBasic.ObjectClassificationAtom xmi.id = 'a3' isNegated = 'false'/> |
| <R2ML.Terms.TerBasic.Variables.ObjectVariable xmi.id = 'a4'/> |
| <R2ML.Terms.TerFunctional.AttributeFunctionTerm xmi.id = 'a5'> |
| <R2ML.Terms.TerFunctional.AttributeFunctionTerm.attribute> |
| <R2ML.Vocabulary.VocBasic.Attribute xmi.idref = 'a6'/> |
| </R2ML.Terms.TerFunctional.AttributeFunctionTerm.attribute> |
| <R2ML.Terms.TerFunctional.AttributeFunctionTerm.contextArgument> |
| <R2ML.Terms.TerBasic.Variables.ObjectVariable xmi.idref = 'a4'/> |
| </R2ML.Terms.TerFunctional.AttributeFunctionTerm.contextArgument> |
| </R2ML.Terms.TerFunctional.AttributeFunctionTerm> |
| <R2ML.Terms.TerFunctional.DatatypeFunctionTerm xmi.id = 'a7'> |
| <R2ML.Terms.TerFunctional.DatatypeFunctionTerm.function> |
| <R2ML.Vocabulary.VocFunctional.DatatypeFunction xmi.idref = 'a8'/> |
| </R2ML.Terms.TerFunctional.DatatypeFunctionTerm.function> |
| <R2ML.Terms.TerFunctional.DatatypeFunctionTerm.dataArguments> |
| <R2ML.Vocabulary.VocBasic.TypedLiteral xmi.idref = 'a9'/> |
| <R2ML.Terms.TerFunctional.AttributeFunctionTerm xmi.idref = 'a5'/> |
| </R2ML.Terms.TerFunctional.DatatypeFunctionTerm.dataArguments> |
| </R2ML.Terms.TerFunctional.DatatypeFunctionTerm> |
| <R2ML.Vocabulary.VocBasic.TypedLiteral xmi.id = 'a9' lexicalValue = '600'> |
| <R2ML.Vocabulary.VocBasic.TypedLiteral.type> |
| <R2ML.Vocabulary.VocBasic.Datatype xmi.idref = 'a10'/> |
| </R2ML.Vocabulary.VocBasic.TypedLiteral.type> |
| </R2ML.Vocabulary.VocBasic.TypedLiteral> |
| <R2ML.Vocabulary.VocBasic.Attribute xmi.id = 'a6' predicateCategory = 'closed'/> |
| <R2ML.Vocabulary.VocBasic.Datatype xmi.id = 'a10' predicateCategory = 'closed'/> |
| <R2ML.Vocabulary.VocFunctional.DatatypeFunction xmi.id = 'a8' arity = '0'/> |
| </XMI.content> |
| </XMI> |
| </code> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
====== Sprawozdanie ====== | |
| |
| |
====== Materiały ====== | ====== Przydatne linki ====== |
| |
[[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_class_diagram.html|UML Modeling: Creating Class Diagrams - Tutorial]] | [[http://developers.sun.com/jsenterprise/learning/tutorials/jse8/uml_class_diagram.html|UML Modeling: Creating Class Diagrams - Tutorial]] |
| |
[[http://oxygen.informatik.tu-cottbus.de/rewerse-i1/?q=URML|URML -- a UML-Based Rule Modeling Language - REWERSE Working Group I1 page]] | [[http://oxygen.informatik.tu-cottbus.de/rewerse-i1/?q=URML|URML -- a UML-Based Rule Modeling Language - REWERSE Working Group I1 page]] |