Drools
14 KieLive Drools は Kogito, jBPM, OptaPlanner を含めた KIE コミュニティ (https://kie.org/)の仲間です。KIE コミュニティでは KieLive というストリーミング配信を行っており、様々な技術的なトピックを語っています。過去の動画はこちらから観ること…
13 DMN DMN (Decision Model and Notation) とは OMG (Object Management Group) で策定されたビジネスルールについての仕様です。 https://www.omg.org/dmn/ ビジネスプロセス仕様 BPMN (Business Process Model and Notation) のルール版だと思ってよいで…
12 Kogito Examples Kogito 0.9.1 がリリースされました! 別に切りのいい数字じゃないって? や、そうなんですけど、0.9.1 はドキュメントや examples を整備して「いい感じに仕上げました」マイルストーンリリースなのです。今後もバージョン自体はどんど…
11 Kie Server ここまでルールエンジンを実行するために直接 Java コードを書いてましたが、REST API での実行も可能です。その場合 REST エンドポイントを公開するための Web アプリが必要です。そのために Kie Server という Web アプリが提供されています…
10 Business Central Drools には Business Central という強力な Web UI ツールが付いています。以下、機能を列挙しますと ルール、デシジョンテーブル、データオブジェクト、プロセスなど、ファイルの管理 プロジェクトの管理 ルール、デシジョンテーブル…
09 Executable Model この記事は 赤帽エンジニア Advent Calendar 2019 18 日目の記事です。 07 MVEL で書いたように、Drools 7 から Executable Model というオプションが利用可能となっています。これは kjar のビルド時点で DRL を Java クラス化し、実行…
08 no-loop, lock-on-active DRL には様々な属性(attribute)を指定することができます。 https://docs.jboss.org/drools/release/7.26.0.Final/drools-docs/html_single/#_rule_attributes 今回はそのなかで、no-loop と lock-on-active を紹介します。 サン…
07 MVEL MVEL というのは Java ベースの言語で、 Java をより簡単に表記する事を目的にしています。超ざっくり言うと、getter/setter を省略して書いたりできます。 user.name == 'ジョン レノン' ドキュメントはこちらを参照ください。 http://mvel.documen…
06 Quarkus で Drools/jBPM を動かす Kogito これまで入門ネタを書いてきましたが、今回はちょっと最新情報を! Drools/jBPM には Kogito という新規プロジェクトがあり、Drools/jBPM を軽量に適用するアプローチを目指しています。そしてその中心となるのが…
05 KJAR 前回まではルールをクラスパスに配置していました。アプリケーションにリソースを組み込むという意味では普通のやりかたです。一方 Drools ではルールをアプリケーションと分離して管理する方法も強力にサポートされています。 ルールを Maven を使…
04 ステートレス ksession ここまで、普通の ksession つまり ステートフル ksession を使ってきましたが、今回は ステートレス ksession の使い方です。 ステートレス ksession とは、「ステートフル ksession のラッパーで、insert, fireAllrules, dispose…
03 推論(Inference) 今回は Drools の重要な機能のひとつ、推論(Inference)を紹介します。推論というと少し難しく聞こえますが、「再評価」と言い換えてもよいです。 サンプルコードはこちらから clone してください。 git clone https://github.com/tkobaya…
02 デシジョンテーブル 前回は HelloWorld ということで基本の DRL でルールを書きましたが、次はよく使われる「デシジョンテーブル」を説明します。 デシジョンテーブル(意思決定表)は以下のように表形式で、条件と結果を表すものです。DRL よりずっと分か…
01 Drools HelloWorld こんにちは、これから Drools についていろいろと書いていこうと思います。サンプルと共に、分かりやすい入門的なエントリを中心にしていく予定です。 Drools というのはオープンソースのルールエンジンで、Java で書かれています。 ht…
http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#d0e17404やっと最後、Examples です。 VI. Drools Examples 19. Examples 19.1. Getting the Examples 19.2. Hello World 基本ですね。まずは実行してみよう。 19.3. …
http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#d0e13220さあ、やっとワークベンチきました。 V. Drools Workbench 15. Workbench 15.1. Installation 15.1.1. War installation kie-wb-*.war です。 15.1.2. Workbe…
http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#d0e10827Integration、他との連携です。 IV. Drools Integration 9. Drools Commands KieSession で使う各種メソッドに対応して、 org.kie.api.command.Command イン…
http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#DroolsComplexEventProcessingChapterCEPについては昔にもエントリを書いています。 http://d.hatena.ne.jp/tokobayashi/20111109 http://tkobayas.wordpress.com/201…
http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#DroolsLanguageReferenceChapterDRLの文法です。ここはひとつきっちりおさらいしておこう。 7. Rule Language Reference 7.1. Overview ANTLR が分かるなら DRL.g 読…
http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#d0e3387 6. User Guide ランタイムでの基本的な動作の説明をするよ。 6.1. The Basics 6.1.1. Stateless Knowledge Session データ渡して一発実行には Stateless Know…
http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#d0e2752 III. Drools Runtime and Language 5. Hybrid Reasoning 5.1. Artificial Intelligence AIの栄枯盛衰を語るでー 5.1.1. A Little History 1990年頃にAIは失墜…
http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#d0e791 II. KIE 4. KIE 4.1. Overview 4.1.1. Anatomy of Projects KIE, an acronym for Knowledge Is Everything 4.1.2. Lifecycles 4.2. Build, Deploy, Utilize an…
おっと、バージョン6になってエンジンもGUIもまとめてひとつのドキュメントになりましたね。これはゴツい。少しずつやるか。http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html I. Welcome 1. Introduction 1.1. Introd…
注:このエントリは実際に行われた出産祝いとは何の関係もありません Drools Planner は難しい問題を解いてくれるソフトウェアです。 1.1. What is Drools Planner? http://docs.jboss.org/drools/release/5.5.0.Final/drools-planner-docs/html_single/inde…
Drools Template てコード生成自体にルール使うのか。デバッグしづれえwwworg.drools.template.parser.DefaultTemplateRuleBase: public DefaultTemplateRuleBase(final TemplateContainer tc) { ruleBase = readRule(getDTRules(tc.getTemplates())); }で作…
やっとこさルールです。ここを見ないとDroolsが何なのか分かりませんね。 ルールはDrools Rule Language (DRL) という言語で記述します。twitterRules1.drl declare Status @role( event ) @timestamp( createdAt ) @expires( 2s ) end まず、入力されるPOJO…
今回は実装編、つまりTwitter4JとDroolsの使い方です。さて、コードを見ていきましょう。TwitterCBR.java // Creates a knowledge base final KnowledgeBase kbase = createKnowledgeBase( "twitterRules1.drl" ); // Creates a knowledge session final Sta…
Twitter4JとDroolsでなんかリアルタイムな感じのものをやります。といってもこのデモは私が作ったわけではなく、Drools開発者のEdson Tirelliが作ったものです。 Twitter4JはyusukeyさんによるTwitterのオープンソースJavaライブラリです ( http://twitter4j…