2014-09-13 2 views
0

Я новичок в концепциях Datalog, и я изучаю его через pyDatalog. Я экспериментирую с единым измерительным преобразователем. Итак, учитывая факты о том, сколько дюймов в метре, например, должно быть способно рассказать мне, сколько метров в дюйме. Вот мой код:Почему создание отношений в pyDatalog кажется мне неправильным?

from pyDatalog import pyDatalog 
from pyDatalog.pyDatalog import create_terms as cterms 

pyDatalog.create_terms('scale') # the long way of doing it 
cterms('A, B, V') 
scale['meter', 'inch'] = 39.3707787 
scale[A, B] = 1/ scale[B, A]  
print(scale['inch', 'meter'] == V) 

Wny программа не вписывает дюймы в метры правильно? Он должен видеть, что есть 39,37 дюйма в метре, и применять обратное правило, чтобы преобразовать другой путь. Поэтому он должен распечатать 0.0234, но он на самом деле распечатывает

V 
---------- 
39.3707787 
+0

Возможно, лучший тег поможет людям найти этот вопрос. Он, похоже, не имеет никакого отношения к логическому программированию, но к Python. –

+2

Я не согласен. На странице «Поддержка и сообщество» в [link] (https://sites.google.com/site/pydatalog/support) указано: «Пожалуйста, задавайте вопросы об использовании pyDatalog на StackOverflow (обязательно добавьте тег логического программирования в нижней части формы). " – blippy

+0

Извините, я не знал об этом. Спасибо за исправление. –

ответ

1

Это ошибка. Коррекция теперь выполняется в changeset b1a5df9 и будет доступна в следующем выпуске. Тем временем вы можете применить набор изменений в своей системе.

+0

Отлично. Спасибо. Я могу подтвердить, что исправление верное. Затем я смог расширить свою программу, чтобы сказать масштаб ['миля', 'inch'] = 63360.0 и масштаб [A, B] = шкала [A, C] * [C, B]. В этой связи программа автоматически смогла вывести количество метров в милю. Очень аккуратный. Отсканируйте камни! – blippy

+0

Спасибо. Я рада что тебе нравится. – user474491

+0

Мне удалось завершить мою программу конвертации единиц и написал [статью в блоге] (http://mcturra2000.wordpress.com/2014/09/14/logic-programming-example-unit-conversion-using-datalog/) о Это. Я думаю, что это должно заставить людей загореться о том, как логическое программирование может выполнять вычисления более легко, чем если бы нужно было выполнять ручные решения. – blippy

 Смежные вопросы

  • Нет связанных вопросов^_^