Adding a few details...
This is the use case I am trying to recreate:
# Predicate that translates English to French by making an RPC.
ToFrench(english) = french :-
RPC.Call{
host: "... elided ...", service: "TranslationService", method: "Translate",
input: {text: english, src_lang: ’ENGLISH, tgt_lang: ’FRENCH},
output: {translated_text: french, .._}};
EnglishCorpus("Shall I compare thee to a summer’s day?");
EnglishCorpus("Thou art more lovely and more temperate:");
FrenchCorpus(french) :- Corpus(english), french == ToFrench(english);
? FrenchCorpus(french);
# french: "Dois-je te comparer à un jour d’été?"
# french: "Tu es plus belle et plus tempéré."