Что возможно, а что нет с Прологом? - PullRequest
1 голос
/ 25 октября 2011

Я новичок в Прологе и в разработке логической парадигмы, но я думаю, что это может помочь мне в моем приложении. Мое первое сомнение в том, что я могу сделать это с языком.

Я занимаюсь некоторой обработкой текста / обработкой на естественном языке, и я думаю, что мой код будет более понятным и легким, если я делаю это на логическом языке, чем на Java (это то, что я использую и буду интегрировать с Prolog).

Моя первая цель теперь состоит в том, чтобы обнаружить тип символа String (буквенный, цифровой, числовой и т. Д.). У меня есть четыре основных аргумента: hasLetter, hasDigit, hasSymbol, hasPunctuation.

С Прологом у меня может быть один метод determineType(), который будет возвращать мне тип, основанный на этих четырех атрибутах, или только с одиночными тестами, например isDigit(), isAlphabetic() и т. Д.

1 Ответ

3 голосов
/ 25 октября 2011

Категория или «тип» каждого символа - это отношение, связывающее символ с его типом.Вы можете кодировать его в Прологе, используя предикат.Значимым именем для такого предиката будет, например, следующее: "character_type (C, T)".В SWI-Prolog проверьте предикаты библиотеки char_type / 2 и code_type / 2, чтобы получить эту информацию.Вы можете использовать их для получения типа (ов) символа (при возврате, могут быть сгенерированы альтернативные решения), а также для проверки того, принадлежит ли символ к указанной категории.Для языковой обработки вам также могут пригодиться грамматики с определенными предложениями (DCG).

...