Re: Questions about a Clojure Datalog

2009-02-18 Thread Jeffrey Straszheim
I see nothing in his code or documentation for handling negation or stratification. Also, it appears to be a top down evaluator, and I don't see any fixed-point or other recursion handling. I *suspect* this does not guarantee termination over arbitrary safe rules. It is not real Datalog. On Wed

Re: Questions about a Clojure Datalog

2009-02-18 Thread Jeffrey Straszheim
It is worth looking at. On Wed, Feb 18, 2009 at 12:42 PM, Telman Yusupov wrote: > > Could this be of any help for your development? There is now a version > of Datalog for PLT Scheme: > > Software: > > http://planet.plt-scheme.org/display.ss?package=datalog.plt&owner=jaymccarthy > > Documentatio

Re: Questions about a Clojure Datalog

2009-02-18 Thread Telman Yusupov
Could this be of any help for your development? There is now a version of Datalog for PLT Scheme: Software: http://planet.plt-scheme.org/display.ss?package=datalog.plt&owner=jaymccarthy Documentation: http://planet.plt-scheme.org/package-source/jaymccarthy/datalog.plt/1/0/planet-docs/datalog/ind

Re: Questions about a Clojure Datalog

2009-02-09 Thread Jeffrey Straszheim
I was considering extending my Datalog work with customized evaluable predicates, but have decided against it. The safety guarantees of Datalog are just not worth giving up. To compensate, I have (very tentative) plans of building some sort of logic oriented bottom up computation engine -- think

Re: Questions about a Clojure Datalog

2009-02-09 Thread John Fries
Sorry, I didn't mean to suggest that you held that opinion. In any case, I am still learning Clojure, so I think I should restrict myself to newbie questions until I am better at it. I hope I will have time to implement an open-world reasoner, which would help make the discussion concrete. On Mo

Re: Questions about a Clojure Datalog

2009-02-09 Thread Rich Hickey
On Feb 7, 2:25 pm, John Fries wrote: > I agree with Jeffrey that there is no reason to have just one option. I never suggested there ought to be only one option, nor am I trying to argue against the utility of open-world reasoners. I merely asked, given your assertion that open-world reasoners

Re: Questions about a Clojure Datalog

2009-02-08 Thread John Fries
reposted to correct a mistake in my use of X, Y and Z: --- I agree with Jeffrey that there is no reason to have just one option. Sometimes you want your reasoner to find a single model; sometimes you want it to find all models (assuming you are reasoning over a finite set). I've appen

Re: Questions about a Clojure Datalog

2009-02-07 Thread John Fries
I agree with Jeffrey that there is no reason to have just one option. Sometimes you want your reasoner to find a single model; sometimes you want it to find all models (assuming you are reasoning over a finite set). I've appended a long rant about SAT-based reasoners and open-world semantics. I h

Re: Questions about a Clojure Datalog

2009-02-05 Thread Jeffrey Straszheim
There is no reason to have just one option. On Thu, Feb 5, 2009 at 3:59 PM, Rich Hickey wrote: > > Thanks for the pointer to Kodkod - it looks very interesting. > > I wonder if we aren't talking apples and oranges though. Datalog may > be a basic reasoner, but it's a simple recursive query langu

Re: Questions about a Clojure Datalog

2009-02-05 Thread Rich Hickey
Thanks for the pointer to Kodkod - it looks very interesting. I wonder if we aren't talking apples and oranges though. Datalog may be a basic reasoner, but it's a simple recursive query language for data. Can you even get all results out of a SAT solver or do they stop when satisfiable? It's for

Re: Questions about a Clojure Datalog

2009-02-05 Thread John Fries
Yes. I can make a strong endorsement for Kodkod, a Java-based relational model finder. http://alloy.mit.edu/kodkod/ I used it fairly extensively last year to solve scheduling problems, and I've corresponded with its creator. One problem with Datalog-style reasoners is that, because they want to g

Re: Questions about a Clojure Datalog

2009-02-05 Thread Rich Hickey
On Feb 4, 5:22 pm, John Fries wrote: > Guaranteed-termination is very desirable. However, you can have guaranteed > termination with an open-world assumption just as well. And I think an > open-world assumption does a better job of mimicking human reasoning. > Do you have a specific reasoner/

Re: Questions about a Clojure Datalog

2009-02-04 Thread John Fries
Guaranteed-termination is very desirable. However, you can have guaranteed termination with an open-world assumption just as well. And I think an open-world assumption does a better job of mimicking human reasoning. On Wed, Feb 4, 2009 at 2:16 PM, Jeffrey Straszheim < straszheimjeff...@gmail.com

Re: Questions about a Clojure Datalog

2009-02-04 Thread Jeffrey Straszheim
Well, Datalog does give you guaranteed termination, so there is that, although its bottom-up strategy is A LOT harder to implement (I'm now trolling trough about a billion journal articles on "magic sets" and so on to try to fix this). I expect to provide full-on evaluable predicates, which I bel

Re: Questions about a Clojure Datalog

2009-02-04 Thread John Fries
AFAICT, Datalog only supports the closed-world assumption. Does anyone prefer an open-world assumption reasoner? In my opinion, they are significantly more powerful. On Feb 4, 6:16 am, Timothy Pratley wrote: > > providing relations from clojure-sets and sql-queries. > > Wow - this is really ne

Re: Questions about a Clojure Datalog

2009-02-04 Thread Timothy Pratley
> providing relations from clojure-sets and sql-queries. Wow - this is really neat Erik - thanks for showing --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to cloj

Re: Questions about a Clojure Datalog

2009-02-03 Thread Jeffrey Straszheim
I see. Iris does look pretty good, but I think I'm going to give writing this in Clojure a try -- the worst outcome is I waste some time and learn a lot about logic programming. I think Clojure's superior handling of state and concurrency will pay off here. On Feb 3, 1:35 pm, hoeck wrote: > hi

Re: Questions about a Clojure Datalog

2009-02-03 Thread hoeck
hi jeffrey, On Feb 3, 2:50 pm, Jeffrey Straszheim wrote: > Erik, > > Did you use a bottom up evaluation strategy?  What top level > optimizations did you use (e.g. magic sets and so on)? I only wrote a clojure-wrapper for the iris-reasoner (www.iris- reasoner.org) mentioned above. One thing i a

Re: Questions about a Clojure Datalog

2009-02-03 Thread Jeffrey Straszheim
Erik, Did you use a bottom up evaluation strategy? What top level optimizations did you use (e.g. magic sets and so on)? On Feb 3, 6:34 am, hoeck wrote: > Hi, > > On Feb 2, 3:42 pm, Timothy Pratley wrote: > > > > > Hi Jeffrey, > > > On Feb 1, 4:50 am, Jeffrey Straszheim > > wrote: > > > > Ho

Re: Questions about a Clojure Datalog

2009-02-03 Thread hoeck
Hi, On Feb 2, 3:42 pm, Timothy Pratley wrote: > Hi Jeffrey, > > On Feb 1, 4:50 am, Jeffrey Straszheim > wrote: > > > However, I'm not sure if you can built your own predicates in Java > > code (and therefore in Clojure code). That seems like a feature we'd > > want. I've sent an email to thei

Re: Questions about a Clojure Datalog

2009-02-02 Thread Jeffrey Straszheim
Datalog is a cool problem. I've started writing some code. The rule-unification part of the algorithm is trivial -- its not even proper unification at all. The hard part seems to be optimising the query strategy to avoid materialising too much. The advantage is you can support rules that would

Re: Questions about a Clojure Datalog

2009-02-02 Thread Jeffrey Straszheim
It would have been nice if that link was prominent on their website. They still haven't responded to the email I sent them. On Feb 2, 10:13 am, Timothy Pratley wrote: > Just thought I'd share this > link:http://www.murat-knecht.de/schuerfen/irisdoc/html-single/index.html > Particularly Example

Re: Questions about a Clojure Datalog

2009-02-02 Thread Timothy Pratley
Just thought I'd share this link: http://www.murat-knecht.de/schuerfen/irisdoc/html-single/index.html Particularly Examples 1.2 and 1.6 show how the parts fit together. I really wish I saw that before attempting anything :) Well now I know for next time. --~--~-~--~~~--

Re: Questions about a Clojure Datalog

2009-02-02 Thread Timothy Pratley
Hi Jeffrey, On Feb 1, 4:50 am, Jeffrey Straszheim wrote: > However, I'm not sure if you can built your own predicates in Java > code (and therefore in Clojure code).  That seems like a feature we'd > want.  I've sent an email to their support folks to find out if this > is possible. I gave it a

Re: Questions about a Clojure Datalog

2009-01-31 Thread Jeffrey Straszheim
I've been doing some more research on this. This article seems a good introduction: http://www.dcc.uchile.cl/~cgutierr/cursos/FDB/p16-bancilhon.pdf It turns out the naive implementation (a bottom-up fixed point iterator) is pretty easy to understand, and would not be hard to implement -- minus

Re: Questions about a Clojure Datalog

2009-01-31 Thread Jeffrey Straszheim
Iris looks really good. They seem to have put a lot of work into multiple, efficient evaluation strategies, and various levels of expressivity versus safety. That kind of work is priceless. However, I'm not sure if you can built your own predicates in Java code (and therefore in Clojure code).

Re: Questions about a Clojure Datalog

2009-01-30 Thread Jeffrey Straszheim
Doing something like Datalog would be terrific fun. I might contribute if there is interest. I'm not an academic, so most of my contributions would be on a practical level. We'd need someone else to provide the deeper aspects of theory. I've read Norvig's book, and understand his code, and my

Re: Questions about a Clojure Datalog

2009-01-29 Thread Rich Hickey
On Jan 26, 11:44 pm, smanek wrote: > Hello all, > > I'm a Common Lisp programmer who has just started learning Clojure. I > saw it mentioned online that several members of the existing community > were looking for someone to build a datalog for Clojure: I was > wondering what exactly you had in