Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Atomic Database: A deductive database with a natural language interface
12 points by logicprog on May 3, 2019 | hide | past | favorite | 5 comments
Hello HN!

I've been working on Atomic Database[1] for almost exactly a month now, having restarted from an earlier Hackathon prototype version. Atomic Database is a deductive database like Datalog that has a useful GUI interface, a natural language query system, smart metadata storage, and gradual typing capabilities. The actual database backend of all this is based on Entity Attribute Value triples currently (I don't forsee changing it, as yet!). This is still very much a prototype, but I feel like I'm at the stage in its evolution where I need some outside input and, possibly, help.

To reproduce a little of what's in the README[1], Atomic Database's goal is to become a useful tool for managing and understanding data, and drawing conclusions about it, especially with a focus on having a smooth transition for users from simply using the GUI to writing entire declarative programs. I'm aiming at something a lot like Excel in that respect, except focused on symbolic data like personnel sheets, instead of primarily numeric data. One of the important ways that I try to make this "smooth" learning curve is by providing what I'm trying to make a very powerful and intuitive GUI and also by having a natural language interface to the logic programming engine. So far, the NL interface can allow simple rules to be written without a lot of domain and syntax knowledge. So far this NL interface isn't very smart, but hopefully, I'll be able to make it ready to deal with fairly sophisticated rules in the future.

Since I'm still in high school, I have honestly no experience with actually making good software that people can use, so any suggestions on usability, documentation, interface or program design would be more than welcome! Also, you know, go easy when you see my code (:

[1]: https://github.com/christopherdumas/atomicdatabase



You can find the documentation on the github wiki page: https://github.com/christopherdumas/atomicdatabase/wiki.



Thanks for the link! Yeah, I'm aware of Kanren and miniKanren and stuff like that. I really want to implement my own (especially using generators), but I'll look at that source to get some inspiration... I'm actually facing a pretty difficult issue with recursion so this might be helpful.


You might also know http://quepy.machinalis.com/

I have been working on similar stuff. I started with a graphdb in pure Python file-based then switched to EAV and bsddb. Nowdays I work mainly on https://github.com/amirouche/hoply/ and https://github.com/awesome-data-distribution/datae.

I have not touched yet the NL to database query part because there is no silver bullet. At the end of the day, one need a use case, existing problems to come up with a solution. I learned the hard way that coming up with an elegant solution is not enough it must help with an actual need. For that, there is no silver bullet either. Experience helps. Being curious helps too.

I thought that the chatbot mania would stir new tools. Chatbots are narrow.

See also:

- https://github.com/opencog/

- https://en.wikipedia.org/wiki/Concept_search

- legaltech


Wow, lots of awesome links to follow up on (:

I know there isn't a silver bullet, and NL queries will never be as versatile as a real query language, but from testing with various people I know it _seems_ to be an OK on-ramp to more advanced stuff.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: