В PHP можно запускать внешние программы и получать ответ их работы. Данные можно передавать как через командную строку, так и через переменные окружения. Например (для примера запуска скрипта на bash):
1. Создаём тестовый bash скрипт (test.sh) с таким содержанием:
#!/bin/bash
# вывод URL из командной строки
echo $1;
# вывод из переменной окружения
echo $MYURL
(в нашем примере указывать интерпретатор не обязательно, да и права на выполнение скрипта тоже указывать не обязательно, так как будет выполнение через сам интерпретатор)
2. Пишем PHP скрипт с таким содержанием:
<?php
$MYURL = 'http://test.loc:80?aaa=12&bbb[]=%D0%90%D0%91%D0%92#ss';
$COMMAND = 'export MYURL=\''.$MYURL.'\'; /bin/bash ./test.sh \''.$MYURL.'\'';
ob_start();
system($COMMAND);
$result = ob_get_clean(); // В переменную $result запишется вывод работы скрипта test.sh (ведь он может быть многострочный)
echo '<pre>';
print_r($result);
echo '</pre>';
В некоторых случаях при создании переменной командной строки придётся использовать функцию escapeshellcmd.
Думаю, что с программой на Prolog можно будет работать также.