Hi all,

after a (quite long) discussion with Mark, Edson and Michael we realized that, to support the guided editor roundtrip without dropping our current DSL features, we need a new format allowing to mix plain DRL and DSL sentences but delimiting these last ones in a clear (and easy to recognize) way.

Our first idea has been to not have dsl blocks and mark each dsl line with an initial single quote (') like in

rule R when
    'There is a Person older than 50
then ...

Anyway this could bring to some ambiguity like, for example, with the following plain DRL snippet:

rule R when
    Person( name ==
        'Mario' )
then ...

For the same reason we could have similar problems with many other (not too fancy) characters. Moreover it happens quite often to have a dsl that spans more lines, especially considering the - notation already remembered by Wolfgang in a former email of this thread.

Taking count of that, I suggest to adopt a (xml-like) syntax that is a bit more verbose but also much more explicit and less error-prone, like in the following example that mixes plain drl with dsl parts:

rule R when
    $cheese: Cheese(name == "gorgonzola")
    <dsl>
        There is a Person
    - who likes $cheese
    </dsl>
then
    <dsl>Print person name</dsl>
end

Moreover I'd prefer to have a specific file extension for this kind of rule files instead of using the standard .drl one. This is mostly because we will need to preprocess this files with the DSL expander that translates them in plain DRL, before to parse and compile them. For performance reasons, I wouldn't like to apply this preprocessing to all the DRLs because very likely more than 90% of them won't need it. I still don't know which extension we could use. I can't think to nothing better than .edrl (standing for Enriched DRL) at the moment, so I am open to any suggestion.

Any other feedback is welcome,
Mario