SlideShare a Scribd company logo
1 of 36
Download to read offline
UnBBayes – Plugin


                  Feature Overview
    ~ Usage and development of plugins for UnBBayes ~




1                  02/07/2010
    Contact: Shou Matsumoto (cardialfly@[yahoo|gmail].com)
Contents
       Concepts
       Features & Benefits
       Applications
       Sample Plugins (you may skip this section)
       Specification
       Extension Points’ Spec. (you may skip this section)
       Availability



2

    Project page: http://sourceforge.net/projects/unbbayes/
What is UnBBayes?

           UnBBayes is a probabilistic network
           framework written in Java. It has both a
Concepts




           GUI and an API with inference,
           sampling, learning and evaluation. It
           supports BN, ID, MSBN, OOBN, HBN,
           MEBN/PR-OWL, structure, parameter
           and incremental learning.


 3                Source: <http://sourceforge.net/projects/unbbayes/>
What is a plugin?

           A plugin consists of a computer program that
           interacts with a host application to provide a
           certain, usually very specific, function "on
Concepts




           demand“ [wikipedia].
           An UnBBayes’ plugin can be a folder, a ZIP or
           a JAR file located in “plugins” folder.
           Content of an ordinal UnBBayes’ plugin:
           –   Plugin descriptor (XML file)
           –   Classes (a program)
           –   Resources (e.g. icons, message files...)
 4                A plugin descriptor is the main and minimal content of a plugin
General Benefits of Plugins
Features & Benefits


                       To enable third-party developers to create
                       capabilities to extend an application
                       To support features yet unforeseen
                       To reduce the size of each application
                       To separate source code from an application
                       because of incompatible software licenses.
                       Modularization/Componentization of the
                       software
                       – Interfaces are modeled as extension points.
   5                           Modularization/componentization = organized system
General Features
Features & Benefits


                      Plugin dependency
                      Plugin’s version control
                      Plugins for Plugins
                      Hotplug
                      Flexible I/O handler



   6
Plugin dependency
                      We can develop new plugins reusing a pre-
Features & Benefits



                      existing one.
                      – A plugin may have some dependency to a pre-
                        existing one.
                      Pros:
                      – Fast development
                      – Less redundancy – smaller programs
                      Contras.
                      – Dependency hell
                         • If my plugin depends on “A” and “A” depends on “B” and
                           so on, my plugin will not work until the user obtains all
                           the dependencies.
   7                           A dependency is declared in plugin descriptor (XML)
Plugin’s version control
Features & Benefits


                      The application can manage several
                      different versions of a plugin.
                      – E.g. version 1.0.0, version 5.2.1...
                      Usually, the newest version is loaded by
                      the application.
                      – Except if a given plugin claims dependency
                        to a unique version.


   8                    There is no need to overwrite files in order to overwrite features anymore.
Plugins for Plugins
Features & Benefits


                      ...This application, under the academic
                      world, shall have a new birth of freedom
                      -- and that government of the plugin, by
                      the plugin, for the plugin, shall not perish
                      from the earth.
                      – If a plugin has an extension point, we can
                        add a plugin for it.
                      – In another words, we can have plugins
                        adding functionalities to another plugin.

   9                        An extension point is declared in plugin descriptor (XML)
Hotplug
Features & Benefits


                      Usually, there is no need to restart the
                      application in order to enable a plugin.
                      – Obviously, there are some exceptions.
                      UnBBayes has a menu item to “reload”
                      plugins at runtime.




 10
Flexible I/O handler
                      If more than one module plugin can handle a file,
Features & Benefits



                      ask for the user.




                      If more than one I/O plugin can handle a file, ask
                      for the user.


 11                                    File handling is flexible
Applications

               Development of a full new functionality
               – Projects / Modules
Applications




               – New formalisms
               Development of a new file format.
               Modeling new node types and/or CPD
               Usage of new Inference Algorithms
               Localization
               – E.g. Spanish, Japanese
 12
Summary of
               extension points
      New                        Split button for new modules
     Modules



                                                          I/O




                           New Nodes
                            and CPD
                                                     Inference
13              Localization                         Algorithm
Datamining Module -
                     UnBMiner
Sample Plugins




 14                A tool with 10 functionalities for massive data handling
Metaphor – Medical,
                      Human Identification
Sample Plugins




 15              A tool that offers an easy interface for finding entries and analisis. Expert Systems.
Sampling - Likelihood
                 Weighting, Monte Carlo, Gibbs
Sample Plugins




 16                   Generation of sample data sets from a given network.
Inference Algorithms –
                 Likelihood Weighting, Gibbs
Sample Plugins




 17                We can select another algorithm to compile a network under the core
OOBN Module’s Japanese
                     Localization
Sample Plugins




 18                   It is possible to add resource files as plugin
I/O – DNE, XMLBIF, NET
Sample Plugins




 19                   Save or load different network file formats
Conditional Probability
                 Distribution Using Scripts
Sample Plugins




 20                It is possible to edit a Conditional Probability Distribution using scripts
Specification

                UnBBayes uses Java Plugin Framework (JPF)
                for plugin support.
Specification




                – JPF is a open-source, LGPL licenced plug-in
                  mechanism adapted from Eclipse's plug-in
                  mechanism.
                The “core” of UnBBayes is the BN module.
                – All other modules/functionalities are being
                  refactored as plugins.
                The core has its plugin descriptor to declare
                extension points (unbbayes.core).

 21                    Everything is configured using plugin descriptors (XML)
Folder Structure

                        Place the
                      plugins here
Specification




                                       These are
                                     default plugins
                                       that come
                                      with the core
 22
Modules
Extension Points’ Spec.



                            UnBBayes' modules are basically swing
                            internal frames.
                          <extension-point id="Module">
                            <!--class extends unbbayes.util.extension.UnBBayesModule-->
                            <parameter-def id="class"/>
                            <!--builder implements unbbayes.util.extension.UnBBayesModuleBuilder-->
                            <parameter-def id="builder" multiplicity="none-or-one" />
                            <parameter-def id="name"/>
                            <parameter-def id="description" multiplicity="none-or-one" />
                            <parameter-def id="icon" multiplicity="none-or-one" />
                            <!--category creates new menu items on demmand-->
                            <parameter-def id="category" multiplicity="none-or-one" />
                          </extension-point>

 23                                       These XML definitions follow the JPF specification.
Sample Module - UnBMiner
                          <?xml version="1.0" ?>
Extension Points’ Spec.


                          <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd">
                          <plugin id="unbbayes.datamining" version="0.0.1">
                            <requires>
                               <import plugin-id="unbbayes.util.extension.core"/>
                            </requires>
                            <runtime>
                               <library id="unbminer" path="classes/" type="code">
                                  <export prefix="*" />
                               </library>
                               <library type="resources" path="icons/" id="icons" />
                            </runtime>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="Module" id="unbminer">
                               <parameter id="class" value="unbbayes.datamining.gui.extension.UnBMinerJPFModule" />
                               <parameter id="name" value="Data Mining Project" />
                               <parameter id="builder" value="unbbayes.datamining.gui.extension.UnBMinerJPFModule" />
                                         <parameter id="description" value="UnBBayes Dataminer - UnBMiner" />
                                         <parameter id="icon" value="mining.png" />
                                         <parameter id="category" value="tool" />
                            </extension>
                          </plugin>
 24                                          This is how UnBMiner's plugin descriptor (plugin.xml) looks like
Inference Algorithm
Extension Points’ Spec.



                             This is basically a panel (for options)
                              – This panel holds an implementation of
                                  unbbayes.util.extension.bn.inference.IInferenceAlgorithm,
                                  which runs a specific inference algorithm.

                          <extension-point id="InferenceAlgorithm">
                            <!--class extends
                              unbbayes.util.extension.bn.inference.InferenceAlgorithmOptionPanel-->
                            <parameter-def id="class"/>
                          </extension-point>




 25                                   Inference Algorithms are usually started when we "compile" a BN
Sample Algorithm - Gibbs
                          <?xml version="1.0" ?> <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0"
Extension Points’ Spec.


                               "http://jpf.sourceforge.net/plugin_1_0.dtd">
                          <plugin id="unbbayes.simulation.sampling.GibbsSampling" version="1.0.0">
                            <requires><import plugin-id="unbbayes.util.extension.core"/><import plugin-
                               id="unbbayes.simulation.montecarlo.sampling"/></requires>
                            <runtime>
                               <library id="gibbs" path="classes/" type="code"><export prefix="*" /></library>
                               <library type="resources" path="icons/" id="icons" />
                            </runtime>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="Module" id="gibbsSampling">
                               <parameter id="class" value="unbbayes.gui.GibbsSamplingModule" />
                               <parameter id="name" value="Gibbs Sampling" />
                               <parameter id="builder" value="unbbayes.gui.GibbsSamplingModule" />
                               <parameter id="description" value="Sampling using Gibbs" />
                               <parameter id="icon" value="sampling.png" />
                               <parameter id="category" value="sampling" />
                            </extension>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="InferenceAlgorithm" id="gibbsAlgorithm">
                               <parameter id="class" value="unbbayes.gui.option.GibbsSamplingOptionPanel" />
                            </extension>
                          </plugin>

 26                                              A single plugin.xml may implement several extension points
I/O
                            This is just a combination of
Extension Points’ Spec.




                            unbbayes.io.BaseIO and a name
                             – The name is displayed when a conflict occurs


                                 <extension-point id="PNIO">
                                   <parameter-def id="class"/>
                                   <parameter-def id="name"/>
                                 </extension-point>


 27                       A single plugin.xml may specify several extension points - a plugin may expect several plugins
Sample I/O - DNE
Extension Points’ Spec.


                          <?xml version="1.0" ?>
                          <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0"
                             "http://jpf.sourceforge.net/plugin_1_0.dtd">
                          <plugin id="unbbayes.io.DneIO" version="1.0.0">
                            <requires>
                               <import plugin-id="unbbayes.util.extension.core"/>
                            </requires>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="PNIO"
                             id="DneIO">
                               <parameter id="class" value="unbbayes.io.DneIO" />
                               <parameter id="name" value="DNE" />
                            </extension>
                          </plugin>

 28                                      This is how DNE's plugin descriptor (plugin.xml) looks like
Resources - Localization
Extension Points’ Spec.



                             This is basically a
                             java.util.ListResourceBundle
                              – Naming: <ClassName>_<LocaleID>
                                    •   Resources_es.class (Spanish)
                                    •   Resources_pt.class (Portuguese)
                                    •   Resources_ja.class (Japanese)

                          <extension-point id="ResourceBundle">
                            <parameter-def id="class"/>
                          </extension-point>


 29                          This extension point is a bridge between JPF mechanism and ResourceBundle mechanism
Sample Localization
                          <?xml version="1.0" ?>
Extension Points’ Spec.


                          <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd">
                          <plugin id="unbbayes.oobn.resources.ja" version="1.0.0">
                            <requires><import plugin-id="unbbayes.util.extension.core"/></requires>
                            <runtime>
                               <library id="oobnResource_ja" path="classes/" type="code"><export prefix="*" /></library>
                            </runtime>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="ResourceBundle" id="oobn_gui_ja">
                               <parameter id="class" value="unbbayes.gui.oobn.resources.OOBNGuiResource_ja" />
                            </extension>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="ResourceBundle" id="oobn_controller_ja">
                               <parameter id="class" value="unbbayes.controller.oobn.resources.OOBNControllerResources_ja" />
                            </extension>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="ResourceBundle" id="oobn_io_ja">
                               <parameter id="class" value="unbbayes.io.oobn.resources.OOBNIOResources_ja" />
                            </extension>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="ResourceBundle" id="oobn_prs_ja">
                               <parameter id="class" value="unbbayes.prs.oobn.resources.Resources_ja" />
                            </extension>
                          </plugin>


 30                                  Unfortunatelly, most of classes load resources statically, so hotplug is only partial.
New Types of Nodes
                                This is a Node and a set of additional information
Extension Points’ Spec.



                                to display it within GUI.
                          <extension-point id="PluginNode">
                          <!--class implements unbbayes.prs.extension.IPluginNode-->
                            <parameter-def id="class"/>
                          <!--shapeClass implements unbbayes.draw.extension.IPluginUShape-->
                            <parameter-def id="shapeClass"/>
                            <parameter-def id="name"/>
                          <!--panelBuilder implements unbbayes.gui.table.extension.IProbabilityFunctionPanelBuilder-->
                            <parameter-def id="panelBuilder"/>
                            <parameter-def id="description" multiplicity="none-or-one" />
                            <parameter-def id="icon" multiplicity="none-or-one" />
                            <parameter-def id="cursor" multiplicity="none-or-one" />
                          </extension-point>

 31                             Inference algorithms or I/O must be implemented separately to compile/save these nodes
Sample Nodes
                          <?xml version="1.0" ?>
Extension Points’ Spec.


                          <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd">
                          <plugin id="unbbayes.prs.extension.impl.ProbabilisticNodePluginStub" version="1.0.0">
                            <requires> <import plugin-id="unbbayes.util.extension.core"/> </requires>
                            <runtime>
                               <library id="ProbabilisticNodePluginStub" path="classes/" type="code">
                                  <export prefix="*" />
                               </library>
                               <library type="resources" path="icons/" id="ProbabilisticNodePluginStub_icons" />
                            </runtime>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="PluginNode" id="ProbabilisticNodePluginStub">
                               <parameter id="class" value="unbbayes.prs.extension.impl.ProbabilisticNodePluginStub" />
                               <parameter id="shapeClass" value="unbbayes.draw.extension.impl.DefaultPluginUShape" />
                               <parameter id="name" value="Boolean Node For Plugin Test" />
                               <parameter id="panelBuilder" value= "unbbayes.gui.table.extension.StubPanelBuilder" />
                               <parameter id="description" value="This is a stub in order to test plugins" />
                               <parameter id="icon" value="icon_stub.gif" />
                               <parameter id="cursor" value="cursor_stub.gif" />
                            </extension>
                          </plugin>


 32                                                                 This is a sample stub.
Probability Distribution
                                         Editor
Extension Points’ Spec.



                             Identical to “New Node Type” plugin
                               – Difference: these are for nodes already
                                 incorporated into UnBBayes’ core
                                    • E.g. unbbayes.prs.bn.ProbabilisticNode

                          <extension-point id="ProbabilityFunctionPanel">
                            <parameter-def id="class"/> <!--Node‘s class-->
                            <parameter-def id="name"/>
                            <parameter-def id="panelBuilder"/> <!--Panel to edit node-->
                            <parameter-def id="description" multiplicity="none-or-one" />
                            <parameter-def id="icon" multiplicity="none-or-one" />
                          </extension-point>

 33                                         See the specs of "New Node Type" plugin for details
Sample Probability
                                              Distribution Editor
                          <?xml version="1.0" ?>
Extension Points’ Spec.



                          <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd">
                          <plugin id="edu.gmu.seor.prognos.unbbayesplugin.cps" version="1.0.0">
                            <requires> <import plugin-id="unbbayes.util.extension.core"/> </requires>
                            <runtime>
                               <library id="cps" path="classes/" type="code">
                                  <export prefix="*" />
                               </library>
                               <library type="resources" path="icons/" id="cps_icons" />
                            </runtime>
                            <extension plugin-id="unbbayes.util.extension.core" point-id="ProbabilityFunctionPanel"
                               id="cps_ProbabilisticNode">
                               <parameter id="class" value="unbbayes.prs.bn.ProbabilisticNode" />
                               <parameter id="name" value="Script edition" />
                               <parameter id="panelBuilder" value=
                               "edu.gmu.seor.prognos.unbbayesplugin.cps.gui.extension.CPSPanelBuilder" />
                               <parameter id="description" value="Edit conditional probability function using scripts" />
                               <parameter id="icon" value="new_script.png" />
                            </extension>
                          </plugin>


 34                                               This is the plugin descriptor (plugin.xml) for CPS plugin
Availability

               Currently, these extension points and
               sample plugins are only available in the
Availability




               sourceforge’s SVN (trunk).
               – By now, there are no releases supporting
                 plugins yet.
               SVN repository URL:
               – https://unbbayes.svn.sourceforge.net/svnroot
                 /unbbayes/trunk/UnBBayes

 35                A release version for UnBBayes w/ plugin support is yet to come
Finally
What plugins can do for you



                              Plugins can enable third-party developers to
                              extend UnBBayes
                              – Develop features yet unforeseen
                                    • New formalisms
                                    • Customization
                              – Flexible software license
                                    • Separate sources of incompatible licenses.
                              – Fast development
                                    • Plugin dependency control
                              Plugins reduce the size of UnBBayes
                              – Distribution is easier and application is light

36                             Although this is already an open source project, plugins makes it easier to customize

More Related Content

What's hot

GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報NVIDIA Japan
 
SHA-256を学ぼうとする
SHA-256を学ぼうとするSHA-256を学ぼうとする
SHA-256を学ぼうとするTakeru Ujinawa
 
何故DeNAがverticaを選んだか?
何故DeNAがverticaを選んだか?何故DeNAがverticaを選んだか?
何故DeNAがverticaを選んだか?Kenshin Yamada
 
空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化について空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化についてRyousuke Wayama
 
CVPR2019 読み会「Understanding the Limitations of CNN-based Absolute Camera Pose ...
CVPR2019 読み会「Understanding the Limitations of CNN-based Absolute Camera Pose ...CVPR2019 読み会「Understanding the Limitations of CNN-based Absolute Camera Pose ...
CVPR2019 読み会「Understanding the Limitations of CNN-based Absolute Camera Pose ...Sho Kagami
 
Neural Network Intelligence 概要 (AutoML Platform)
Neural Network Intelligence 概要 (AutoML Platform)Neural Network Intelligence 概要 (AutoML Platform)
Neural Network Intelligence 概要 (AutoML Platform)Keita Onabuta
 
Anchor free object detection by deep learning
Anchor free object detection by deep learningAnchor free object detection by deep learning
Anchor free object detection by deep learningYu Huang
 
Object detection with Tensorflow Api
Object detection with Tensorflow ApiObject detection with Tensorflow Api
Object detection with Tensorflow ApiArwinKhan1
 
Windows HPC Server 講習会 第1回 導入編 1/2
Windows HPC Server 講習会 第1回 導入編 1/2Windows HPC Server 講習会 第1回 導入編 1/2
Windows HPC Server 講習会 第1回 導入編 1/2Osamu Masutani
 
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜bitbank, Inc. Tokyo, Japan
 
Power BI 勉強会 2019/3/30 LT資料
Power BI 勉強会 2019/3/30 LT資料Power BI 勉強会 2019/3/30 LT資料
Power BI 勉強会 2019/3/30 LT資料Yusuke Ohira
 
FastAPIを使って 機械学習モデルをapi化してみた
FastAPIを使って 機械学習モデルをapi化してみたFastAPIを使って 機械学習モデルをapi化してみた
FastAPIを使って 機械学習モデルをapi化してみたSho Tanaka
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeKLab Inc. / Tech
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...Holden Karau
 
Introduction to batch normalization
Introduction to batch normalizationIntroduction to batch normalization
Introduction to batch normalizationJamie (Taka) Wang
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたakira6592
 
リアルタイムPoint cloudデータのビジュアライゼーションについて
リアルタイムPoint cloudデータのビジュアライゼーションについてリアルタイムPoint cloudデータのビジュアライゼーションについて
リアルタイムPoint cloudデータのビジュアライゼーションについてRyousuke Wayama
 
OpenStreetMapの地図を編集してみよう!
OpenStreetMapの地図を編集してみよう!OpenStreetMapの地図を編集してみよう!
OpenStreetMapの地図を編集してみよう!Katsuyuki Sakanoshita
 

What's hot (20)

GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報
 
SHA-256を学ぼうとする
SHA-256を学ぼうとするSHA-256を学ぼうとする
SHA-256を学ぼうとする
 
何故DeNAがverticaを選んだか?
何故DeNAがverticaを選んだか?何故DeNAがverticaを選んだか?
何故DeNAがverticaを選んだか?
 
空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化について空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化について
 
CVPR2019 読み会「Understanding the Limitations of CNN-based Absolute Camera Pose ...
CVPR2019 読み会「Understanding the Limitations of CNN-based Absolute Camera Pose ...CVPR2019 読み会「Understanding the Limitations of CNN-based Absolute Camera Pose ...
CVPR2019 読み会「Understanding the Limitations of CNN-based Absolute Camera Pose ...
 
Neural Network Intelligence 概要 (AutoML Platform)
Neural Network Intelligence 概要 (AutoML Platform)Neural Network Intelligence 概要 (AutoML Platform)
Neural Network Intelligence 概要 (AutoML Platform)
 
Anchor free object detection by deep learning
Anchor free object detection by deep learningAnchor free object detection by deep learning
Anchor free object detection by deep learning
 
Object detection with Tensorflow Api
Object detection with Tensorflow ApiObject detection with Tensorflow Api
Object detection with Tensorflow Api
 
Windows HPC Server 講習会 第1回 導入編 1/2
Windows HPC Server 講習会 第1回 導入編 1/2Windows HPC Server 講習会 第1回 導入編 1/2
Windows HPC Server 講習会 第1回 導入編 1/2
 
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
 
Power BI 勉強会 2019/3/30 LT資料
Power BI 勉強会 2019/3/30 LT資料Power BI 勉強会 2019/3/30 LT資料
Power BI 勉強会 2019/3/30 LT資料
 
FastAPIを使って 機械学習モデルをapi化してみた
FastAPIを使って 機械学習モデルをapi化してみたFastAPIを使って 機械学習モデルをapi化してみた
FastAPIを使って 機械学習モデルをapi化してみた
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
 
Introduction to batch normalization
Introduction to batch normalizationIntroduction to batch normalization
Introduction to batch normalization
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
 
有限要素法見本
有限要素法見本有限要素法見本
有限要素法見本
 
リアルタイムPoint cloudデータのビジュアライゼーションについて
リアルタイムPoint cloudデータのビジュアライゼーションについてリアルタイムPoint cloudデータのビジュアライゼーションについて
リアルタイムPoint cloudデータのビジュアライゼーションについて
 
mTCP使ってみた
mTCP使ってみたmTCP使ってみた
mTCP使ってみた
 
OpenStreetMapの地図を編集してみよう!
OpenStreetMapの地図を編集してみよう!OpenStreetMapの地図を編集してみよう!
OpenStreetMapの地図を編集してみよう!
 

Similar to UnBBayes Plugin Framework

C++ API 디자인 - 확장성
C++ API 디자인 - 확장성C++ API 디자인 - 확장성
C++ API 디자인 - 확장성HyeonSeok Choi
 
SAP Vs Oracle Apps
SAP Vs Oracle AppsSAP Vs Oracle Apps
SAP Vs Oracle AppsKiran .
 
Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)Chinmoy Mohanty
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insTonny Madsen
 
Intel AppUp Java Developer Guide
Intel AppUp Java Developer GuideIntel AppUp Java Developer Guide
Intel AppUp Java Developer GuideReadWrite
 
Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily JiangBest Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiangmfrancis
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGiIlya Rybak
 
Why software performance reduces with time?.pdf
Why software performance reduces with time?.pdfWhy software performance reduces with time?.pdf
Why software performance reduces with time?.pdfMike Brown
 
X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101pdhannan
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCPwhbath
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf
 
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeAdopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeKlausBaumecker
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
 
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of XpagesAd110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpagesddrschiw
 
Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesJan S. Rellermeyer
 
L0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-inL0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-inTonny Madsen
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitPascal Rapicault
 

Similar to UnBBayes Plugin Framework (20)

C++ API 디자인 - 확장성
C++ API 디자인 - 확장성C++ API 디자인 - 확장성
C++ API 디자인 - 확장성
 
SAP Vs Oracle Apps
SAP Vs Oracle AppsSAP Vs Oracle Apps
SAP Vs Oracle Apps
 
Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
 
Intel AppUp Java Developer Guide
Intel AppUp Java Developer GuideIntel AppUp Java Developer Guide
Intel AppUp Java Developer Guide
 
Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily JiangBest Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiang
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
 
Why software performance reduces with time?.pdf
Why software performance reduces with time?.pdfWhy software performance reduces with time?.pdf
Why software performance reduces with time?.pdf
 
Java8 - Under the hood
Java8 - Under the hoodJava8 - Under the hood
Java8 - Under the hood
 
What's new in p2 (2009)?
What's new in p2 (2009)?What's new in p2 (2009)?
What's new in p2 (2009)?
 
X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101
 
Microservices
MicroservicesMicroservices
Microservices
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
 
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeAdopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf Europe
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of XpagesAd110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpages
 
Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded Devices
 
L0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-inL0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-in
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profit
 

More from Rommel Carvalho

Ouvidoria de Balcão vs Ouvidoria Digital: Desafios na Era Big Data
Ouvidoria de Balcão vs Ouvidoria Digital: Desafios na Era Big DataOuvidoria de Balcão vs Ouvidoria Digital: Desafios na Era Big Data
Ouvidoria de Balcão vs Ouvidoria Digital: Desafios na Era Big DataRommel Carvalho
 
Como transformar servidores em cientistas de dados e diminuir a distância ent...
Como transformar servidores em cientistas de dados e diminuir a distância ent...Como transformar servidores em cientistas de dados e diminuir a distância ent...
Como transformar servidores em cientistas de dados e diminuir a distância ent...Rommel Carvalho
 
Proposta de Modelo de Classificação de Riscos de Contratos Públicos
Proposta de Modelo de Classificação de Riscos de Contratos PúblicosProposta de Modelo de Classificação de Riscos de Contratos Públicos
Proposta de Modelo de Classificação de Riscos de Contratos PúblicosRommel Carvalho
 
Categorização de achados em auditorias de TI com modelos supervisionados e nã...
Categorização de achados em auditorias de TI com modelos supervisionados e nã...Categorização de achados em auditorias de TI com modelos supervisionados e nã...
Categorização de achados em auditorias de TI com modelos supervisionados e nã...Rommel Carvalho
 
Mapeamento de risco de corrupção na administração pública federal
Mapeamento de risco de corrupção na administração pública federalMapeamento de risco de corrupção na administração pública federal
Mapeamento de risco de corrupção na administração pública federalRommel Carvalho
 
Ciência de Dados no Combate à Corrupção
Ciência de Dados no Combate à CorrupçãoCiência de Dados no Combate à Corrupção
Ciência de Dados no Combate à CorrupçãoRommel Carvalho
 
Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Rommel Carvalho
 
Filiação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisFiliação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisRommel Carvalho
 
Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Rommel Carvalho
 
Detecção preventiva de fracionamento de compras
Detecção preventiva de fracionamento de comprasDetecção preventiva de fracionamento de compras
Detecção preventiva de fracionamento de comprasRommel Carvalho
 
Identificação automática de tipos de pedidos mais frequentes da LAI
Identificação automática de tipos de pedidos mais frequentes da LAIIdentificação automática de tipos de pedidos mais frequentes da LAI
Identificação automática de tipos de pedidos mais frequentes da LAIRommel Carvalho
 
BMAW 2014 - Using Bayesian Networks to Identify and Prevent Split Purchases i...
BMAW 2014 - Using Bayesian Networks to Identify and Prevent Split Purchases i...BMAW 2014 - Using Bayesian Networks to Identify and Prevent Split Purchases i...
BMAW 2014 - Using Bayesian Networks to Identify and Prevent Split Purchases i...Rommel Carvalho
 
URSW 2013 - UMP-ST plug-in
URSW 2013 - UMP-ST plug-inURSW 2013 - UMP-ST plug-in
URSW 2013 - UMP-ST plug-inRommel Carvalho
 
Integração do Portal da Copa @ Comissão CMA do Senado Federal
Integração do Portal da Copa @ Comissão CMA do Senado FederalIntegração do Portal da Copa @ Comissão CMA do Senado Federal
Integração do Portal da Copa @ Comissão CMA do Senado FederalRommel Carvalho
 
Dados Abertos Governamentais
Dados Abertos GovernamentaisDados Abertos Governamentais
Dados Abertos GovernamentaisRommel Carvalho
 
Modeling a Probabilistic Ontology for Maritime Domain Awareness
Modeling a Probabilistic Ontology for Maritime Domain AwarenessModeling a Probabilistic Ontology for Maritime Domain Awareness
Modeling a Probabilistic Ontology for Maritime Domain AwarenessRommel Carvalho
 
Probabilistic Ontology: Representation and Modeling Methodology
Probabilistic Ontology: Representation and Modeling MethodologyProbabilistic Ontology: Representation and Modeling Methodology
Probabilistic Ontology: Representation and Modeling MethodologyRommel Carvalho
 
SWRL-F - A Fuzzy Logic Extension of the Semantic Web Rule Language
SWRL-F - A Fuzzy Logic Extension of the Semantic Web Rule LanguageSWRL-F - A Fuzzy Logic Extension of the Semantic Web Rule Language
SWRL-F - A Fuzzy Logic Extension of the Semantic Web Rule LanguageRommel Carvalho
 
Default Logics for Plausible Reasoning with Controversial Axioms
Default Logics for Plausible Reasoning with Controversial AxiomsDefault Logics for Plausible Reasoning with Controversial Axioms
Default Logics for Plausible Reasoning with Controversial AxiomsRommel Carvalho
 

More from Rommel Carvalho (20)

Ouvidoria de Balcão vs Ouvidoria Digital: Desafios na Era Big Data
Ouvidoria de Balcão vs Ouvidoria Digital: Desafios na Era Big DataOuvidoria de Balcão vs Ouvidoria Digital: Desafios na Era Big Data
Ouvidoria de Balcão vs Ouvidoria Digital: Desafios na Era Big Data
 
Como transformar servidores em cientistas de dados e diminuir a distância ent...
Como transformar servidores em cientistas de dados e diminuir a distância ent...Como transformar servidores em cientistas de dados e diminuir a distância ent...
Como transformar servidores em cientistas de dados e diminuir a distância ent...
 
Proposta de Modelo de Classificação de Riscos de Contratos Públicos
Proposta de Modelo de Classificação de Riscos de Contratos PúblicosProposta de Modelo de Classificação de Riscos de Contratos Públicos
Proposta de Modelo de Classificação de Riscos de Contratos Públicos
 
Categorização de achados em auditorias de TI com modelos supervisionados e nã...
Categorização de achados em auditorias de TI com modelos supervisionados e nã...Categorização de achados em auditorias de TI com modelos supervisionados e nã...
Categorização de achados em auditorias de TI com modelos supervisionados e nã...
 
Mapeamento de risco de corrupção na administração pública federal
Mapeamento de risco de corrupção na administração pública federalMapeamento de risco de corrupção na administração pública federal
Mapeamento de risco de corrupção na administração pública federal
 
Ciência de Dados no Combate à Corrupção
Ciência de Dados no Combate à CorrupçãoCiência de Dados no Combate à Corrupção
Ciência de Dados no Combate à Corrupção
 
Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...
 
Filiação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisFiliação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federais
 
Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...
 
Detecção preventiva de fracionamento de compras
Detecção preventiva de fracionamento de comprasDetecção preventiva de fracionamento de compras
Detecção preventiva de fracionamento de compras
 
Identificação automática de tipos de pedidos mais frequentes da LAI
Identificação automática de tipos de pedidos mais frequentes da LAIIdentificação automática de tipos de pedidos mais frequentes da LAI
Identificação automática de tipos de pedidos mais frequentes da LAI
 
BMAW 2014 - Using Bayesian Networks to Identify and Prevent Split Purchases i...
BMAW 2014 - Using Bayesian Networks to Identify and Prevent Split Purchases i...BMAW 2014 - Using Bayesian Networks to Identify and Prevent Split Purchases i...
BMAW 2014 - Using Bayesian Networks to Identify and Prevent Split Purchases i...
 
A GUI for MLN
A GUI for MLNA GUI for MLN
A GUI for MLN
 
URSW 2013 - UMP-ST plug-in
URSW 2013 - UMP-ST plug-inURSW 2013 - UMP-ST plug-in
URSW 2013 - UMP-ST plug-in
 
Integração do Portal da Copa @ Comissão CMA do Senado Federal
Integração do Portal da Copa @ Comissão CMA do Senado FederalIntegração do Portal da Copa @ Comissão CMA do Senado Federal
Integração do Portal da Copa @ Comissão CMA do Senado Federal
 
Dados Abertos Governamentais
Dados Abertos GovernamentaisDados Abertos Governamentais
Dados Abertos Governamentais
 
Modeling a Probabilistic Ontology for Maritime Domain Awareness
Modeling a Probabilistic Ontology for Maritime Domain AwarenessModeling a Probabilistic Ontology for Maritime Domain Awareness
Modeling a Probabilistic Ontology for Maritime Domain Awareness
 
Probabilistic Ontology: Representation and Modeling Methodology
Probabilistic Ontology: Representation and Modeling MethodologyProbabilistic Ontology: Representation and Modeling Methodology
Probabilistic Ontology: Representation and Modeling Methodology
 
SWRL-F - A Fuzzy Logic Extension of the Semantic Web Rule Language
SWRL-F - A Fuzzy Logic Extension of the Semantic Web Rule LanguageSWRL-F - A Fuzzy Logic Extension of the Semantic Web Rule Language
SWRL-F - A Fuzzy Logic Extension of the Semantic Web Rule Language
 
Default Logics for Plausible Reasoning with Controversial Axioms
Default Logics for Plausible Reasoning with Controversial AxiomsDefault Logics for Plausible Reasoning with Controversial Axioms
Default Logics for Plausible Reasoning with Controversial Axioms
 

Recently uploaded

The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...Pooja Nehwal
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 

Recently uploaded (20)

The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 

UnBBayes Plugin Framework

  • 1. UnBBayes – Plugin Feature Overview ~ Usage and development of plugins for UnBBayes ~ 1 02/07/2010 Contact: Shou Matsumoto (cardialfly@[yahoo|gmail].com)
  • 2. Contents Concepts Features & Benefits Applications Sample Plugins (you may skip this section) Specification Extension Points’ Spec. (you may skip this section) Availability 2 Project page: http://sourceforge.net/projects/unbbayes/
  • 3. What is UnBBayes? UnBBayes is a probabilistic network framework written in Java. It has both a Concepts GUI and an API with inference, sampling, learning and evaluation. It supports BN, ID, MSBN, OOBN, HBN, MEBN/PR-OWL, structure, parameter and incremental learning. 3 Source: <http://sourceforge.net/projects/unbbayes/>
  • 4. What is a plugin? A plugin consists of a computer program that interacts with a host application to provide a certain, usually very specific, function "on Concepts demand“ [wikipedia]. An UnBBayes’ plugin can be a folder, a ZIP or a JAR file located in “plugins” folder. Content of an ordinal UnBBayes’ plugin: – Plugin descriptor (XML file) – Classes (a program) – Resources (e.g. icons, message files...) 4 A plugin descriptor is the main and minimal content of a plugin
  • 5. General Benefits of Plugins Features & Benefits To enable third-party developers to create capabilities to extend an application To support features yet unforeseen To reduce the size of each application To separate source code from an application because of incompatible software licenses. Modularization/Componentization of the software – Interfaces are modeled as extension points. 5 Modularization/componentization = organized system
  • 6. General Features Features & Benefits Plugin dependency Plugin’s version control Plugins for Plugins Hotplug Flexible I/O handler 6
  • 7. Plugin dependency We can develop new plugins reusing a pre- Features & Benefits existing one. – A plugin may have some dependency to a pre- existing one. Pros: – Fast development – Less redundancy – smaller programs Contras. – Dependency hell • If my plugin depends on “A” and “A” depends on “B” and so on, my plugin will not work until the user obtains all the dependencies. 7 A dependency is declared in plugin descriptor (XML)
  • 8. Plugin’s version control Features & Benefits The application can manage several different versions of a plugin. – E.g. version 1.0.0, version 5.2.1... Usually, the newest version is loaded by the application. – Except if a given plugin claims dependency to a unique version. 8 There is no need to overwrite files in order to overwrite features anymore.
  • 9. Plugins for Plugins Features & Benefits ...This application, under the academic world, shall have a new birth of freedom -- and that government of the plugin, by the plugin, for the plugin, shall not perish from the earth. – If a plugin has an extension point, we can add a plugin for it. – In another words, we can have plugins adding functionalities to another plugin. 9 An extension point is declared in plugin descriptor (XML)
  • 10. Hotplug Features & Benefits Usually, there is no need to restart the application in order to enable a plugin. – Obviously, there are some exceptions. UnBBayes has a menu item to “reload” plugins at runtime. 10
  • 11. Flexible I/O handler If more than one module plugin can handle a file, Features & Benefits ask for the user. If more than one I/O plugin can handle a file, ask for the user. 11 File handling is flexible
  • 12. Applications Development of a full new functionality – Projects / Modules Applications – New formalisms Development of a new file format. Modeling new node types and/or CPD Usage of new Inference Algorithms Localization – E.g. Spanish, Japanese 12
  • 13. Summary of extension points New Split button for new modules Modules I/O New Nodes and CPD Inference 13 Localization Algorithm
  • 14. Datamining Module - UnBMiner Sample Plugins 14 A tool with 10 functionalities for massive data handling
  • 15. Metaphor – Medical, Human Identification Sample Plugins 15 A tool that offers an easy interface for finding entries and analisis. Expert Systems.
  • 16. Sampling - Likelihood Weighting, Monte Carlo, Gibbs Sample Plugins 16 Generation of sample data sets from a given network.
  • 17. Inference Algorithms – Likelihood Weighting, Gibbs Sample Plugins 17 We can select another algorithm to compile a network under the core
  • 18. OOBN Module’s Japanese Localization Sample Plugins 18 It is possible to add resource files as plugin
  • 19. I/O – DNE, XMLBIF, NET Sample Plugins 19 Save or load different network file formats
  • 20. Conditional Probability Distribution Using Scripts Sample Plugins 20 It is possible to edit a Conditional Probability Distribution using scripts
  • 21. Specification UnBBayes uses Java Plugin Framework (JPF) for plugin support. Specification – JPF is a open-source, LGPL licenced plug-in mechanism adapted from Eclipse's plug-in mechanism. The “core” of UnBBayes is the BN module. – All other modules/functionalities are being refactored as plugins. The core has its plugin descriptor to declare extension points (unbbayes.core). 21 Everything is configured using plugin descriptors (XML)
  • 22. Folder Structure Place the plugins here Specification These are default plugins that come with the core 22
  • 23. Modules Extension Points’ Spec. UnBBayes' modules are basically swing internal frames. <extension-point id="Module"> <!--class extends unbbayes.util.extension.UnBBayesModule--> <parameter-def id="class"/> <!--builder implements unbbayes.util.extension.UnBBayesModuleBuilder--> <parameter-def id="builder" multiplicity="none-or-one" /> <parameter-def id="name"/> <parameter-def id="description" multiplicity="none-or-one" /> <parameter-def id="icon" multiplicity="none-or-one" /> <!--category creates new menu items on demmand--> <parameter-def id="category" multiplicity="none-or-one" /> </extension-point> 23 These XML definitions follow the JPF specification.
  • 24. Sample Module - UnBMiner <?xml version="1.0" ?> Extension Points’ Spec. <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd"> <plugin id="unbbayes.datamining" version="0.0.1"> <requires> <import plugin-id="unbbayes.util.extension.core"/> </requires> <runtime> <library id="unbminer" path="classes/" type="code"> <export prefix="*" /> </library> <library type="resources" path="icons/" id="icons" /> </runtime> <extension plugin-id="unbbayes.util.extension.core" point-id="Module" id="unbminer"> <parameter id="class" value="unbbayes.datamining.gui.extension.UnBMinerJPFModule" /> <parameter id="name" value="Data Mining Project" /> <parameter id="builder" value="unbbayes.datamining.gui.extension.UnBMinerJPFModule" /> <parameter id="description" value="UnBBayes Dataminer - UnBMiner" /> <parameter id="icon" value="mining.png" /> <parameter id="category" value="tool" /> </extension> </plugin> 24 This is how UnBMiner's plugin descriptor (plugin.xml) looks like
  • 25. Inference Algorithm Extension Points’ Spec. This is basically a panel (for options) – This panel holds an implementation of unbbayes.util.extension.bn.inference.IInferenceAlgorithm, which runs a specific inference algorithm. <extension-point id="InferenceAlgorithm"> <!--class extends unbbayes.util.extension.bn.inference.InferenceAlgorithmOptionPanel--> <parameter-def id="class"/> </extension-point> 25 Inference Algorithms are usually started when we "compile" a BN
  • 26. Sample Algorithm - Gibbs <?xml version="1.0" ?> <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" Extension Points’ Spec. "http://jpf.sourceforge.net/plugin_1_0.dtd"> <plugin id="unbbayes.simulation.sampling.GibbsSampling" version="1.0.0"> <requires><import plugin-id="unbbayes.util.extension.core"/><import plugin- id="unbbayes.simulation.montecarlo.sampling"/></requires> <runtime> <library id="gibbs" path="classes/" type="code"><export prefix="*" /></library> <library type="resources" path="icons/" id="icons" /> </runtime> <extension plugin-id="unbbayes.util.extension.core" point-id="Module" id="gibbsSampling"> <parameter id="class" value="unbbayes.gui.GibbsSamplingModule" /> <parameter id="name" value="Gibbs Sampling" /> <parameter id="builder" value="unbbayes.gui.GibbsSamplingModule" /> <parameter id="description" value="Sampling using Gibbs" /> <parameter id="icon" value="sampling.png" /> <parameter id="category" value="sampling" /> </extension> <extension plugin-id="unbbayes.util.extension.core" point-id="InferenceAlgorithm" id="gibbsAlgorithm"> <parameter id="class" value="unbbayes.gui.option.GibbsSamplingOptionPanel" /> </extension> </plugin> 26 A single plugin.xml may implement several extension points
  • 27. I/O This is just a combination of Extension Points’ Spec. unbbayes.io.BaseIO and a name – The name is displayed when a conflict occurs <extension-point id="PNIO"> <parameter-def id="class"/> <parameter-def id="name"/> </extension-point> 27 A single plugin.xml may specify several extension points - a plugin may expect several plugins
  • 28. Sample I/O - DNE Extension Points’ Spec. <?xml version="1.0" ?> <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd"> <plugin id="unbbayes.io.DneIO" version="1.0.0"> <requires> <import plugin-id="unbbayes.util.extension.core"/> </requires> <extension plugin-id="unbbayes.util.extension.core" point-id="PNIO" id="DneIO"> <parameter id="class" value="unbbayes.io.DneIO" /> <parameter id="name" value="DNE" /> </extension> </plugin> 28 This is how DNE's plugin descriptor (plugin.xml) looks like
  • 29. Resources - Localization Extension Points’ Spec. This is basically a java.util.ListResourceBundle – Naming: <ClassName>_<LocaleID> • Resources_es.class (Spanish) • Resources_pt.class (Portuguese) • Resources_ja.class (Japanese) <extension-point id="ResourceBundle"> <parameter-def id="class"/> </extension-point> 29 This extension point is a bridge between JPF mechanism and ResourceBundle mechanism
  • 30. Sample Localization <?xml version="1.0" ?> Extension Points’ Spec. <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd"> <plugin id="unbbayes.oobn.resources.ja" version="1.0.0"> <requires><import plugin-id="unbbayes.util.extension.core"/></requires> <runtime> <library id="oobnResource_ja" path="classes/" type="code"><export prefix="*" /></library> </runtime> <extension plugin-id="unbbayes.util.extension.core" point-id="ResourceBundle" id="oobn_gui_ja"> <parameter id="class" value="unbbayes.gui.oobn.resources.OOBNGuiResource_ja" /> </extension> <extension plugin-id="unbbayes.util.extension.core" point-id="ResourceBundle" id="oobn_controller_ja"> <parameter id="class" value="unbbayes.controller.oobn.resources.OOBNControllerResources_ja" /> </extension> <extension plugin-id="unbbayes.util.extension.core" point-id="ResourceBundle" id="oobn_io_ja"> <parameter id="class" value="unbbayes.io.oobn.resources.OOBNIOResources_ja" /> </extension> <extension plugin-id="unbbayes.util.extension.core" point-id="ResourceBundle" id="oobn_prs_ja"> <parameter id="class" value="unbbayes.prs.oobn.resources.Resources_ja" /> </extension> </plugin> 30 Unfortunatelly, most of classes load resources statically, so hotplug is only partial.
  • 31. New Types of Nodes This is a Node and a set of additional information Extension Points’ Spec. to display it within GUI. <extension-point id="PluginNode"> <!--class implements unbbayes.prs.extension.IPluginNode--> <parameter-def id="class"/> <!--shapeClass implements unbbayes.draw.extension.IPluginUShape--> <parameter-def id="shapeClass"/> <parameter-def id="name"/> <!--panelBuilder implements unbbayes.gui.table.extension.IProbabilityFunctionPanelBuilder--> <parameter-def id="panelBuilder"/> <parameter-def id="description" multiplicity="none-or-one" /> <parameter-def id="icon" multiplicity="none-or-one" /> <parameter-def id="cursor" multiplicity="none-or-one" /> </extension-point> 31 Inference algorithms or I/O must be implemented separately to compile/save these nodes
  • 32. Sample Nodes <?xml version="1.0" ?> Extension Points’ Spec. <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd"> <plugin id="unbbayes.prs.extension.impl.ProbabilisticNodePluginStub" version="1.0.0"> <requires> <import plugin-id="unbbayes.util.extension.core"/> </requires> <runtime> <library id="ProbabilisticNodePluginStub" path="classes/" type="code"> <export prefix="*" /> </library> <library type="resources" path="icons/" id="ProbabilisticNodePluginStub_icons" /> </runtime> <extension plugin-id="unbbayes.util.extension.core" point-id="PluginNode" id="ProbabilisticNodePluginStub"> <parameter id="class" value="unbbayes.prs.extension.impl.ProbabilisticNodePluginStub" /> <parameter id="shapeClass" value="unbbayes.draw.extension.impl.DefaultPluginUShape" /> <parameter id="name" value="Boolean Node For Plugin Test" /> <parameter id="panelBuilder" value= "unbbayes.gui.table.extension.StubPanelBuilder" /> <parameter id="description" value="This is a stub in order to test plugins" /> <parameter id="icon" value="icon_stub.gif" /> <parameter id="cursor" value="cursor_stub.gif" /> </extension> </plugin> 32 This is a sample stub.
  • 33. Probability Distribution Editor Extension Points’ Spec. Identical to “New Node Type” plugin – Difference: these are for nodes already incorporated into UnBBayes’ core • E.g. unbbayes.prs.bn.ProbabilisticNode <extension-point id="ProbabilityFunctionPanel"> <parameter-def id="class"/> <!--Node‘s class--> <parameter-def id="name"/> <parameter-def id="panelBuilder"/> <!--Panel to edit node--> <parameter-def id="description" multiplicity="none-or-one" /> <parameter-def id="icon" multiplicity="none-or-one" /> </extension-point> 33 See the specs of "New Node Type" plugin for details
  • 34. Sample Probability Distribution Editor <?xml version="1.0" ?> Extension Points’ Spec. <!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 1.0" "http://jpf.sourceforge.net/plugin_1_0.dtd"> <plugin id="edu.gmu.seor.prognos.unbbayesplugin.cps" version="1.0.0"> <requires> <import plugin-id="unbbayes.util.extension.core"/> </requires> <runtime> <library id="cps" path="classes/" type="code"> <export prefix="*" /> </library> <library type="resources" path="icons/" id="cps_icons" /> </runtime> <extension plugin-id="unbbayes.util.extension.core" point-id="ProbabilityFunctionPanel" id="cps_ProbabilisticNode"> <parameter id="class" value="unbbayes.prs.bn.ProbabilisticNode" /> <parameter id="name" value="Script edition" /> <parameter id="panelBuilder" value= "edu.gmu.seor.prognos.unbbayesplugin.cps.gui.extension.CPSPanelBuilder" /> <parameter id="description" value="Edit conditional probability function using scripts" /> <parameter id="icon" value="new_script.png" /> </extension> </plugin> 34 This is the plugin descriptor (plugin.xml) for CPS plugin
  • 35. Availability Currently, these extension points and sample plugins are only available in the Availability sourceforge’s SVN (trunk). – By now, there are no releases supporting plugins yet. SVN repository URL: – https://unbbayes.svn.sourceforge.net/svnroot /unbbayes/trunk/UnBBayes 35 A release version for UnBBayes w/ plugin support is yet to come
  • 36. Finally What plugins can do for you Plugins can enable third-party developers to extend UnBBayes – Develop features yet unforeseen • New formalisms • Customization – Flexible software license • Separate sources of incompatible licenses. – Fast development • Plugin dependency control Plugins reduce the size of UnBBayes – Distribution is easier and application is light 36 Although this is already an open source project, plugins makes it easier to customize