> translate -> feed runners and get their results (the user select or launch
> the top ranking)
>
> :translate -> The command is parser and only the "translate" service runner
other things that can help:
* relevancy ranking. any runner which recognizes its keywords (e.g. "starting
with translate" for a translation runner) should up the relevancy of the
rturn
* if done in coordination with another application, that application can hint
which runner to favour (not neccessarily limit to, but at least favour),
which you already mentioned above.
I see two choices here:
- Let the runners do the parsing job. Adding keywords to the runners, get apps hinting and let the best win. May be more dynamic but you may not get what you want and surely more difficult to implement.
- Let a "proxy" do the parsing job. Mapping keywords to runners. Configure what syntax goes to what runner and let only one activate. All the language parsing in one place, more reliable results (the user defines how the language works), learning can be implemented here though.
At a first glance both choices may have advantages and drawbacks. But being 3.30 am here now, my first glance is all but reliable.