Как я могу генерировать некоторые фразы из базы знаний после DCG? - PullRequest
0 голосов
/ 29 августа 2018

Я определил мою грамматику в прологе как DCG (Определенная грамматика клаузулы). Теперь я хочу составить несколько фраз в соответствии с фактами, присутствующими в моей базе знаний. Например, если у меня есть likes(mark, julia)., я хочу сгенерировать предложение

Марку нравится Юлия.

Как я могу это сделать?

1 Ответ

0 голосов
/ 29 августа 2018

Мы должны принять во внимание, что likes/2 является нормальным предикатом Пролога, не DCG.

Следовательно, мы используем {}//1 для ссылки на обычные предикаты Пролога в DCG.

Например:

sentence -->
        [X, likes, Y],
        <b>{ likes(X, Y) }</b>.

Пример использования:

?- phrase(sentence, Ls).
<b>Ls = [mark, likes, julia].</b>
...