Comments: |
![[User Picture]](http://lj.rossia.org/userpic/190820/45856) | From: | panduro |
Date: | December 17th, 2013 - 05:05 am |
---|
| | | (Link) |
|
А чем их даталог не устраивает, интересно
совсем ведь нихуя разницы нет, да?
![[User Picture]](http://lj.rossia.org/userpic/190820/45856) | From: | panduro |
Date: | December 18th, 2013 - 12:59 am |
---|
| | | (Link) |
|
основная разница, как я понял, в отношениях к отношениям, я правда не совсем понимаю, зачем это нужно
как это зачем? в окружающем вас мире нет отношений к отношениям????
![[User Picture]](http://lj.rossia.org/userpic/190820/45856) | From: | panduro |
Date: | December 18th, 2013 - 02:24 am |
---|
| | | (Link) |
|
Есть-есть. Погодите, кажется, даталог позволяет всё те "отношения к отношениям", по крайней мере, те, которые показаны в статье. ( Можно посмотреть на BNF и на примеры использования тут: http://docs.racket-lang.org/datalog/datalog.html ) Я просто не понял, почему автор отталкивается от эскуэля, тогда как предложение больше похоже на ноэскуэль типа монги или даже на даталог, а там ни то, ни то, не упоминается. И это я так ехидно подначивал пояснить, чтобы самому не разбираться, хехе.
-- вы не желаете разделить со мной трапезу? -- а что будем кушать? -- яичницу. -- что заставило вас приготовить яичницу, а не омлет? -- воспоминания о бывшей жене. -- ну уж нет! извините! такую яичницу я есть не буду!
![[User Picture]](http://lj.rossia.org/userpic/190820/45856) | From: | panduro |
Date: | December 18th, 2013 - 09:48 pm |
---|
| | | (Link) |
|
печалин: вы не желаете разделить со мной трапезу? пандуровский: а что будем кушать? печалин: блюдо из яиц. я придумал его как замену яичнице, вот рецепт (протягивает бумаги). пандуровский: (бегло просматривая бумаги) так.. добавить молока, взбить... но позвольте, чем же это отличается от омлета? печалин: право, если вы не видите разницы, то я даже не знаю... мне вас жаль! (пандуровский озадаченно теребит бороду, затем идёт в библиотеку сверять рецепты) печалин (в зал): в наше время только так и можно заманить молодёжь в библиотеки (подмигивает).
кстате вы можете записать на даталоге пример "про библиотеку" из статьи
![[User Picture]](http://lj.rossia.org/userpic/190820/45856) | From: | panduro |
Date: | December 23rd, 2013 - 12:19 pm |
---|
| | | (Link) |
|
Да вроде точно так же выглядит (использую кложуру с библиотекой [fogus/bacwn "0.3.0"], которая есть возрождённая clojure.contrib.datalog. Последний завести не удалось, а в "просто даталоге", без всяческих обвесов, как например http://docs.racket-lang.org/datalog всё это происходит в уме какбы, там просто хуячатся данные)
(def db-base
(make-database
(relation :author [:id :name :birthdate])
(relation :book [:id :author-id :title :publicationdate])
(relation :genre [:id :name])
(relation :book-genre [:genre-id :book-id])
(relation :department [:id :name])
(relation :available [:department-id :book-id])))
Хотя я бы сделал проще, типа
(def db-base
(make-database
(relation :author [:id :name :birthdate])
(relation :book [:author-id :title :publicationdate :genre :department])))
А вообще, я предполагаю, тут фишечка в том, что в бумажке в посте зависимости (логика) вшиты в схему (данные), а в даталоге данные просты как бревно (а схема просто для удобства именования в выборках), а логика либо просто подразумевается при выборке (для простых случаев, типа как тут связать автора и книгу), либо описывается отдельно в виде логики над ними. И подход даталога мне тут кажется более функциональным и кисс, кроме того, (во-первых) для инференса в бумажке надо отдельную штуку изобретать, и (во-вторых) можно делать всякие интересные штуки с распараллеливанием и распределённых хранением c даталогом (потому что мьютабл стейта нет), которые с подходом в бумажке я не пойму, как получатся. В общем, кажется, напрасно смешаны задачи хранилища, логики над данными и прочими операциями. Я тут, получается, сам себе отвечаю снова, не смотря на то, что я не настоящий программист. | |