I am just beginning to use ODM 8.5 (the successor to JRules), and I'm trying to use a pre-existing Java project as the basis for the business object model (BOM). Most classes seem to translate well; however, I have one error I haven't been able to fix -
Term "event" is duplicated in the vocabulary or is a reserved word.
Unfortunately, the Rule Designer doesn't tell where the duplication occurs, and I haven't been able to find the list of reserved words. Until I do, I'll assume that "Event" is reserved.
I do have an Event
abstract Java class, and I also have fields, etc. with "event" as part of the name, e.g., eventType
. This gives rise to default verbalizations like
{event type} of {this}
and
set the event type of {this} to {event type}
Assuming that I do want my Event
class and my fields with "event" in the name, how do I adjust my BOM so that I don't get an error? I have edited my BOM such that the word "event" no longer appears by itself in the .voc file, e.g., I now have verbalizations like:
{evnt-type} of {this}
and
set the evnt-type of {this} to {evnt-type}
Yet, I still have the same error message. What can I do?
Edit:
I've located a list of reserved words in the IBM documentation that specifies a list of reserved words for the ILOG Rule Language, which includes "event". However, the documentation is unclear. It states, "A number of keywords are reserved and naming restrictions apply to package names." Does this mean that the restrictions only apply to package names? It also says, "Deprecated as of V7.5." How can a list of reserved words be deprecated? Does this mean that there are no restrictions after v7.5?
The solution turned out to be simple; I merely had to change the verbalization of my Event
class from "event" to "model-event". It was not necessary to change any of the other fields, etc. with "event" as part of the name, e.g., eventType
. That is, I was able to keep the default verbalizations like
{event type} of {this}
and
set the event type of {this} to {event type}
It looks like much of my problem was due to the Rule Designer environment being confused or buggy. After hours of trying to fix my problem and still seeing the error, I exited Rule Designer. When I next started Rule Designer, I re-imported my projects and the error went away. When I inspected the Eclipse log for the time when I was experiencing problems, I saw many lines like:
!MESSAGE Vocabulary Editor use a Vocabulary which is not referenced in the vocabulary path (probable cause: uncontrolled MT access): restart Rule Designer
It would have been nice if I had seen some kind of message like that in the GUI. I probably could have saved myself a lot of time.