Hi Dave,

Thank you for your response, I'm glad to have my thoughts confirmed. Is it
possible to write my own generators and register them like I have with
builtins?

The problem I want to solve isn't the regex example above, its more about
generating bindings so I can feed them into a forward rule and then
instantiate triples as a general pattern.

Cheers,

Richard


On Mon, Mar 17, 2014 at 9:06 AM, Dave Reynolds <[email protected]>wrote:

> On 14/03/14 13:53, Richard Morgan wrote:
>
>> Hi,
>>
>> I would like to extend the base regex function in Jena to provide more
>> than
>> one match result.
>>
>
> I don't think that's possible.
>
>
>  For instance I would like the following rule
>>
>>    [ myregex("the cat sat on the mat", \"(.at)\", ?token)
>>
>>       " -> (<http://a> <http://b> ?token)]";
>>
>> to return
>>
>>   - [http://a, http://b, "cat"]
>>
>>   - [http://a, http://b, "sat"]
>>
>>   - [http://a, http://b, "mat"]
>>
>>  From looking at how BindingEnvironment works I can only return with a
>> single binding per variable.
>>
>
> Correct.
>
> In Jena rules then builtins are only used as essentially filters on rule
> firings, they aren't generators.
>
> In the forward rule case (which is suggested by your notation above) that
> wouldn't make sense anyway - forward rules either fire or they don't,
> there's no backtracking.
>
> In the backward rule case then there is backtracking but the interface for
> builtins doesn't support their use as generators.
>
> Dave
>
>

Reply via email to