Semantic Web Drools Module, Request for Feedbak
by Xavier Breton
Hi,
I'm looking for feedback, I'll develop a Semantic Web Drools Module that
will be the subject of my Master Degree Tesis.
The idea is to use Eclipse Modelling Framework (EMF) for prototyping and
follow a Model Driven Architecture (MDA) where the source language is
Semantic of Business Vocabularies and Business Rules (SBVR) and the target
language is Drools DRL.
The mapping could be (PIM level):
- Semantic Web Rule Language (SWRL)
- Ontology Web Language (OWL)
- RuleML
- Rule Interchange Format (RIF)
- REWERSE Rule Markup Language (R2ML)
It could be added to the module at the source UML or Entity Relationship
like models to transform the models into SBVR.
Regards
Xavier Breton
10 years, 10 months
Attach custom editor on guided decision table cell
by c3310082
Hi,
We would like to render a custom editor when a user double-clicks on a cell
that is present in web guided decision table in Guvnor 5.1 (or later). The
custom editor needs to be invoked for cells that represent a particular fact
model attribute only.
This is somewhat similar to WS custom forms functionality available for
guided business rules.
So far we have seen the
org.drools.guvnor.client.decisiontable.GuidedDecisionTableWidget class that
contains implementation for:
public void onCellDblClick(GridPanel grid,
int rowIndex,
int colIndex,
EventObject e)
in the GridCellListenerAdapter class that opens up text editor or drop down
editor.
We're new to GWT and Guvnor so would appreciate it if anyone can provide the
high level steps.
Thanks
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Attach-custom-editor-...
Sent from the Drools - Dev mailing list archive at Nabble.com.
12 years, 2 months
Guided Editor in BRMS / Guvnor Version 5 (Snapshot of 26 June)
by Paul Browne
Folks,
For various reasons I'm trying out the Guided Editor for Business Rules in
the Guvnor Version 5 (Snapshot of 26 June from Hudson, deployed on JBoss App
Server 4.2.2GA).
I've created the Package / Category and uploaded a simple fact model (as
works in BRMS version 4). I create a new business rule using the guided
editor and the screen shows successfully with both 'When' and 'Then'
parts.Assume the next question is due to me missing something, but wanted to
double check:
When I press the green '+' to the right of the screen I am shown the message
/ dialog layer saying '
*Add a condition to the rule... *or* Add an action to the rule.
*Problem is that there doesn't appear to be a way of adding a condition or
action. The only thing I'm seeing in the logs is
* (Contexts.java:flushAndDestroyContexts:335) could not discover
transaction status
*Am I missing something or should I come back to Guvnor later in the
development Cycle?
Thanks
Paul
12 years, 9 months
Drools on android
by Justin King
Hi All,
I'm wondering if anyone has tried to use drools in a google android
application, and if so what problems did you have? I'd also be interested to
know if its even possible!
Thanks!
--
Regards,
Justin King
PhD Candidate
Faculty of Information and Communication Technologies
Swinburne University of Technology
http://www.ict.swin.edu.au/ictstaff/justinking
--
Regards,
Justin King
PhD Candidate
Faculty of Information and Communication Technologies
Swinburne University of Technology
http://www.ict.swin.edu.au/ictstaff/justinking
13 years
The drools 5.3 release won't have a related jbpm release
by Geoffrey De Smet
Hi guys,
Kris doesn't want to have 3 jbpm releases (Beta1, CR1, Final) at this time,
so our releases (droolsjbpm-integration, guvnor, tools, ...) will depend
on the latest released jbpm version, so 5.1.0.Final.
I've just changed master so it is reflected that they use jbpm
5.1.0.Final instead of 5.2.0-SNAPSHOT.
Because jbpm 5.1.0 should be able to work with drools 5.3.0 (instead
5.2.0) on a binary level, Kris believes there shouldn't be a problem.
If this works (we 'll see on Monday :), then drools and jbpm can have
independent releases (*) - which is a good thing of course.
(*) provided the versions used together are compatible on a binary level
--
With kind regards,
Geoffrey De Smet
13 years, 5 months
RFC: stream concept
by Edson Tirelli
Hi all,
As you all know, we use "entry-points" to represent streams in Drools,
but in fact, entry points are a much more general abstraction than just
streams. For instance, they create partitions in the RETE's alpha network,
they support all Rete concepts like truth maintenance, they share a
centralized fact handle factory (that is possibly a contention point), etc.
Event Streams in general can have a much more specialized implementation.
For instance, as events are immutable, there is no need for truth
maintenance; streams should be 100% parallelizable (does this word exist?);
some algorithms like event sequencing can be run before injecting events
into the main engine instead of injecting and then coordinating back with
the sequencing algorithm.
Because of things like the ones above, I was considering creating an
explicit concept for streams in Drools. They would be a first class concept
in the engine and would be handled appropriately. They would be orthogonal
to entry-points, and be used exclusively for events.
The other option that we have would be to continue to hide the
implementation behind the concept of entry-points and to select algorithm
details by compile time analysis. Although it seems like a simpler solution,
it has the potential of confusing users that would not know exactly when
something is being executed as a regular entry point (with TMS, and all the
stuff mentioned above) or as a specific stream (that has features that would
be specific for events).
Thoughts?
Edson
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @ www.jboss.com
13 years, 5 months
RFC: declaration syntax
by Edson Tirelli
All,
BACKGROUND:
As Drools moves forward, we need to be able to declare several new
structures, as well as make existing structures more robust for compile time
analysis, error reporting and tooling support. For instance, as it is today,
entry points are implicit declared by simply using them, i.e., if someone
writes a pattern:
X() from entry-point Y
The engine will create entry-point Y implicitly. This is easy to use, but
this makes it impossible for the engine to detect typos and report during
compilation time. So, the idea is that we will allow the user to declare all
the entry points he wants to use in his application and we will have a
configuration option to enforce or not that list of declared entry points.
If the configuration is set to enforce and the engine finds a rule that is
using an entry point that is not part of the list, the engine can raise a
compile time error point out the user's mistake. E.g., using pseudo code:
declare entry-point X, Y
declare entry-point Z
Drools also needs a way to declare named windows for re-use on multiple
rules. For instance, using pseudo code:
declare window X
@type( tumbling )
@keep( last 10 )
StockTick( symbol == "RHT" ) from entry-point Y
end
And in the rule:
rule Z
when
StockTick() from window:named X
then
...
end
QUESTION:
As we can see above, we will need several new constructs in order to
support features in our roadmap. We have the choice of making them all top
level constructs, making the error recovery in the parser a lot more
complicated, or we can re-use our declare construct to define these new
structures as I presented in the pseudo-code above. Any pros/cons you can
see in such approach?
OPTION 1 (more verbose, but simpler and more stable):
<epDeclaration> ::= declare entry-point <epName> [, <epName]*
<windowDeclaration> ::= declare window <windowName>
<restOfTheWindowDeclaration> end
<typeDeclaration> ::= declare [type] <typeName> <restOfTheTypeDeclaration>
end
OPTION 2 (makes error recovery harder, but it is less verbose):
<epDeclaration> ::= entry-point <epName> [, <epName]*
<windowDeclaration> ::= window <windowName> <restOfTheWindowDeclaration> end
<typeDeclaration> ::= declare <typeName> <restOfTheTypeDeclaration> end
OPTION 3:
<epDeclaration> ::= someOtherKeyword entry-point <epName> [, <epName]*
<windowDeclaration> ::= someOtherKeyword window <windowName>
<restOfTheWindowDeclaration> end
<typeDeclaration> ::= declare [type] <typeName> <restOfTheTypeDeclaration>
end
Edson
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @ www.jboss.com
13 years, 5 months
A major 5.2 letdown
by Wolfgang Laun
Given the following rule replicated for enums EDay.SUNDAY through
EDay.THURSDAY and
a single DummyTester fact starting with EDay.SUNDAY.
rule "Sunday"
when
$dt: DummyTester(EDay.SUNDAY == day)
then
System.out.println("RULE: entered rule:
"+drools.getRule().getName());
modify ($dt) {setDay(EDay.MONDAY)};
end
On 5.1.1 and using HEAD:
RULE: entered rule: Sunday
RULE: entered rule: Monday
RULE: entered rule: Tuesday
RULE: entered rule: Wednsday
RULE: entered rule: Thursday
On 5.2
RULE: entered rule: Thursday
RULE: entered rule: Wednsday
Who knows how this was fixed?
Regards
-W
13 years, 5 months
Cannot open Guvnor GWT classes with GWT Designer
by jreynolds1982
I am using Eclipse Helios (3.6) with a Maven plugin and Google Web Toolkit.
When I try to use GWT Designer to view any classes in the Guvnor source, i
get the following error:
Any Suggestions would be GREATLY appreciated!
java.lang.NoSuchMethodError:
com.google.gdt.eclipse.designer.model.widgets.support.GwtState.getCSSFiles()Ljava/util/List;
at
com.google.gdt.eclipse.designer.gxt.parser.ClassLoaderValidator.hasRequiredStyles(ClassLoaderValidator.java:89)
at
com.google.gdt.eclipse.designer.gxt.parser.ClassLoaderValidator.validate(ClassLoaderValidator.java:45)
at
com.google.gdt.eclipse.designer.parser.ParseFactory.validate(ParseFactory.java:465)
at
com.google.gdt.eclipse.designer.parser.ParseFactory.getClassLoader(ParseFactory.java:433)
at
org.eclipse.wb.internal.core.parser.AbstractParseFactory.initializeClassLoader(AbstractParseFactory.java:732)
at
com.google.gdt.eclipse.designer.parser.ParseFactory.getRootContext(ParseFactory.java:103)
at
org.eclipse.wb.internal.core.parser.JavaInfoParser.prepareParseContext(JavaInfoParser.java:1185)
at
org.eclipse.wb.internal.core.parser.JavaInfoParser.parse(JavaInfoParser.java:244)
at
org.eclipse.wb.internal.core.parser.JavaInfoParser.access$9(JavaInfoParser.java:240)
at
org.eclipse.wb.internal.core.parser.JavaInfoParser$1.runObject(JavaInfoParser.java:153)
at
org.eclipse.wb.internal.core.parser.JavaInfoParser$1.runObject(JavaInfoParser.java:1)
at
org.eclipse.wb.internal.core.utils.execution.ExecutionUtils.runDesignTime(ExecutionUtils.java:153)
at
org.eclipse.wb.internal.core.parser.JavaInfoParser.parse(JavaInfoParser.java:151)
at
org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF(DesignPage.java:513)
at
org.eclipse.wb.internal.core.editor.DesignPage.access$9(DesignPage.java:501)
at
org.eclipse.wb.internal.core.editor.DesignPage$8$1.run(DesignPage.java:434)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:179)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4584)
at
org.eclipse.wb.internal.core.editor.DesignPage$8.run(DesignPage.java:431)
at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
at
org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
at
org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF_withProgress(DesignPage.java:450)
at
org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF(DesignPage.java:400)
at
org.eclipse.wb.internal.core.editor.UndoManager.refreshDesignerEditor(UndoManager.java:381)
at
org.eclipse.wb.internal.core.editor.UndoManager.activate(UndoManager.java:90)
at
org.eclipse.wb.internal.core.editor.DesignPage.handleActiveState_True(DesignPage.java:248)
at
org.eclipse.wb.internal.core.editor.DesignPage.handleActiveState(DesignPage.java:226)
at
org.eclipse.wb.internal.core.editor.multi.DefaultMultiMode.showPage(DefaultMultiMode.java:125)
at
org.eclipse.wb.internal.core.editor.multi.DefaultMultiMode$1.widgetSelected(DefaultMultiMode.java:63)
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
--
View this message in context: http://drools.46999.n3.nabble.com/Cannot-open-Guvnor-GWT-classes-with-GWT...
Sent from the Drools: Developer (committer) mailing list mailing list archive at Nabble.com.
13 years, 5 months