Change MANIFEST.MF to this
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: INQLE RapidMiner Plug-in
Bundle-SymbolicName: org.inqle.experiment.rapidminer.rules;singleton:=true
Bundle-Version: 1.0.0
Bundle-Vendor: INQLING, LLC
Require-Bundle: org.inqle.rapidminer.experiment,
org.inqle.core,
org.inqle.data.rdf.jenabean,
org.inqle.core.extensions,
org.eclipse.rap.jface,
org.eclipse.rap.ui,
org.inqle.ui.rap,
org.inqle.agent,
org.inqle.data.sampling,
org.eclipse.core.databinding,
org.eclipse.core.databinding.beans,
org.eclipse.rap.jface.databinding,
org.eclipse.rap.ui
Import-Package: com.hp.hpl.jena.query,
com.hp.hpl.jena.rdf.model,
com.hp.hpl.jena.util,
junit.framework,
org.eclipse.core.commands.common,
org.eclipse.core.databinding.conversion,
org.eclipse.core.runtime,
org.eclipse.jface,
org.eclipse.jface.action,
org.eclipse.jface.resource,
org.eclipse.jface.util,
org.eclipse.jface.wizard,
org.eclipse.rwt.lifecycle,
org.eclipse.swt,
org.eclipse.swt.graphics,
org.eclipse.swt.widgets,
org.junit,
org.junit.runner,
org.junit.runners,
org.osgi.framework;version="1.4.0",
org.osgi.service.component;version="1.0.0",
org.xml.sax
Bundle-ClassPath: bin/main/,
.
Eclipse-RegisterBuddy: org.inqle.core.extensions,
org.inqle.data.rdf.jenabean,
org.inqle.ui.rap
Bundle-RegisterBuddy: org.inqle.core.extensions,
org.inqle.data.rdf.jenabean,
org.inqle.ui.rap
Eclipse-LazyStart: true
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension
point="org.inqle.data.datamodels">
<datamodel
id="org.inqle.datamodels.rules"
weight="8500"
description="contains experiment results"
cacheInMemory="false"
targetDatabase="org.inqle.data.databases.cache">
</datamodel>
</extension>
<extension
point="org.inqle.experiment.rapidminer.IRapidMinerExperiment">
<rapidminer-experiment
id="org.inqle.experiment.rules.VenkisRuleExperiment"
file="/org/inqle/experiment/rapidminer/rules/xml/VenkisRuleExperiment.xml"
name="Venkis Rules Experiment"
description="whatever"
type="rules"
weight="1000">
</rapidminer-experiment>
</extension>
<extension
point="org.inqle.agent.rap.IAgentFactory">
<agent
class="org.inqle.experiment.rapidminer.agent.ExperimenterAgentFactory"
name="Rules Experimenter Agent"
description="This agent runs rule learning cycles, generating rules"
weight="2000"
access="admin"/>
</extension>
<extension
point="org.eclipse.ui.views">
<view
name="Rules"
icon="icons/rule.jpeg"
class="org.inqle.experiment.rapidminer.rules.RulesView"
id="org.inqle.experiment.rapidminer.rules.rulesView">
</view>
</extension>
</plugin>
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension
point="org.inqle.data.datamodels">
<!--Create a system datamodel, to contain rules. Add this annotation
to your SwrlRule class to make it be persisted here by default:
@TargetDatamodel("org.inqle.datamodels.rules")
-->
<datamodel
id="org.inqle.datamodels.rules"
weight="8500"
description="contains experiment results"
cacheInMemory="false"
targetDatabase="org.inqle.data.databases.cache">
</datamodel>
</extension>
<extension
point="org.inqle.experiment.rapidminer.IRapidMinerExperiment">
<!--Add 1 entry per rapidminer experiment you add. Your Java
code will have to look for rapidminer experiment extensions with
type="rules"
-->
<rapidminer-experiment
id="org.inqle.experiment.rules.VenkisRuleExperiment"
file="/org/inqle/experiment/rapidminer/rules/xml/VenkisRuleExperiment.xml"
name="Venkis Rules Experiment"
description="whatever"
type="rules"
weight="1000">
</rapidminer-experiment>
</extension>
<!--I made a change below. You need your own factory for creating agent-->
<extension
point="org.inqle.agent.rap.IAgentFactory">
<agent
class="org.inqle.experiment.rapidminer.rules.agent.RuleExperimenterAgentFactory"
name="Rules Experimenter Agent"
description="This agent runs rule learning cycles, generating rules"
weight="2000"
access="admin"/>
</extension>
<!--Can add this last. A custom viewer of rules-->
LearningCycle becomes RuleLearningCycle
Alter these methods
public ExperimentResult execute()
private ExperimentResult runDataThroughExperiment(IDataTable
dataTable, IRapidMinerExperiment rapidMinerExperiment) {
to return a SwrlRule (or whatever class is appropriate)
Change
List<IRapidMinerExperiment> acceptableExperiments =
RapidMinerExperimentLister.listMatchingExperiments(dataTable);
to this
List<IRapidMinerExperiment> acceptableExperiments =
RulesExperimentLister.listRulesExperiments();
If you need to select which rules experiment based on info in the data
table you could have complexity as is in the
RapidMinerExperimentLister class. Otherwise, simplify this class to
just return experiments of type "rules"
Next the classes
ExperimenterAgent,
ExperimenterAgentFactory
ExperimenterAgentWizard
Change these to
RulesExperimenterAgent,
RulesExperimenterAgentFactory
RulesExperimenterAgentWizard
Need to modify some behavior probably. At a minimum, change
RulesExperimenterAgent to deal with
IRuleLearningCycle,
RuleLearningCycle
[Not sure the merits of having the interface it it failed this current
use case of adding a new RM experimenter type!]