Журнал данных для нахождения того же значения атрибутов из модели

Я новичок в даталоге и хочу решить следующее:

у меня есть student модель

student(name, rollno, city)

Теперь я хочу написать программу регистрации данных для нахождения пары студентов из того же города. Это правильно, если я напишу программу следующим образом?

result(n1, r1, c1, n2, r2, c2) :- student(n1, r1,c1) AND student(n2,r2,c2) AND c1= c2

Как r1 а также r2 не имеют большого значения здесь я могу заменить его _ в голове и теле?

Любые отзывы приветствуются!

1 ответ

Решение

Правильно использовать подчеркивание вместо Rollno в правой части вашей логики.

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

student(name, rollno, city) -> string(name), string(rollno), string(city).

studentsPairsFromSameCity(nameA, nameB, city) -> string(nameA), string(nameB), string(city).

studentPairsFromSameCity(nameA, nameB, city)
<-
   student(nameA, _, cityA),
   student(nameB, _, cityB),
   nameA != nameB,
   cityA = cityB.
Другие вопросы по тегам