2013-12-07 5 views
1

Я создаю базовый латинский переводчик в Prolog. У меня есть данные, которые я в настоящее время хранить в таком формате, как предикаты:Хранение данных в Prolog

noun("femin","femin",1,"f",translation("woman","women")). 

verb("port", "portare", "portav", "portat", 1, translation("carry","carrying","carried")). 

nounending("ae","with",sg). 

Я предпочел бы использовать что-то вроде таблицы для ввода существительных и глаголов. Я думал о разборке .csv в .pl, но это громоздкое решение. Есть ли способ легко вводить предикаты в SWI-Prolog, используя приложение для работы с электронными таблицами?

+0

ли импорт из основной массы существительных и глаголов одноразовое событие, а затем просто легкое обслуживание после этого? Возможно, вам просто нужно одноразовое преобразование существующей базы данных существительного/глагола в пролог-синтаксис, а затем просто сохранить пролог после этого (если вы не используете базу данных в качестве подачи на другие нужды). Но я думаю, что у @CapelliC есть правильная идея для передачи CSV. Просмотрите предикаты библиотеки SWI Prolog CSV. – lurker

+0

Да, это одноразовое преобразование – user2850249

ответ

2

Я бы предпочел использовать что-то вроде электронной таблицы для ввода существительных и глаголов.

электронных таблиц является большого способа описать живые, функциональные отношения между субъектами, но я боюсь, вам придется кусать самые пули и идти громоздкий путь, чтение CSV.

Не так уж плохо, SWI-Prolog, например, имеет CSV library, или вы можете использовать его в качестве примера (предполагая, что вас интересует Prolog) и написать собственный DCG. Намного полезным упражнение ...

Другая возможность, если вы можете написать немного кода на стороне электронной таблицы, вы можете выводить электронные таблицы»ячейки в формате Пролог:

cell(1,1,'Hello'). 
cell(1,2,'World'). 

Или считают, что любой реляционной редактор (ваш предпочтительный «Инструмент администрирования Db») может быть полезен для ввода табличных данных, и с тех пор вы получаете доступ к нему с помощью вашего интерфейса RDB Prolog (например, ODBC).

Примечание: таблицу можно легко сохранить в таблице. Затем предоставляется доступ через RDB.

редактировать Он пришел на мой взгляд, что после сохранения таблицы (как SQL дамп), пакет (prosqlite) -in SWI-Prolog - предоставит вам доступ к наиболее ценные клетки :)

+0

Итак, вы предлагаете написать программу для синтаксического анализа .csv в .pl? (например, femin, femin, 1, f, woman, women. -> существительное («femin», «femin», 1, f, «woman», «women»). Мое понимание DCG кажется не имеющим отношения к тому, что (я не совсем уверен, что такое база данных). Не могли бы вы пояснить, что вы подразумеваете под своим редактированием? Ваша помощь очень ценится. – user2850249

+0

нет, сначала проверьте библиотеку CSV SWI-Prolog Если вы считаете нужным, используйте это. См. Мой отредактированный пост, я добавил ссылку – CapelliC

+0

. База данных представляет собой набор таблиц, т.е. таблицы, в которых * все * строки имеют * одинаковое число столбцов. – CapelliC

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