Du meinst das
hier was nicht klappte?
Wenn ich die Doku überfliege und mir den Sourcecode des verlinkten Projekts ansehe und mir überlege warum er dort das tut was er tut fallen die offensichtlichen Möglichkeiten wie p/invoke raus. In dem Code wird per p/invoke mit einer Runtime kommuniziert.
SWI-Prolog ist scheinbar eine Interpreter Sprache oder zumindest eine zwangsweise gejitte Sprache wo man keine klassische Executable oder Dll bekommt?
In der SWI-Prolog Doku wird erwähnt das die Prolog Runtime einen WebServer mitbringt. Ein natürliche Lösung wäre also deine Logik die du scheinbar in Prolog hast als REST API zu veröffentlichen und einen Client zu schreiben der diese API nutzt. Als Client hast du dann alle Möglichkeiten die .Net oder irgendeine andere Programmierumgebung bietet zu benutzen.
Edit: Darüber hinaus kannst du natürlich immer noch schauen welche IPC Mechanismen SWI-Prolog den kann (also so Sachen wie NamedPipes, Sockets und "Ableitungen" davon wie TCP etc.)