I'm evaluating using Grakn and like the look of it so far.
I see you've got basic REST API documentation here: https://grakn.ai/pages/rest-api/latest/engine-apis.html# . Do you have anything else to get me started using this?
More specifically my questions are:
(Q1) do you envisage REST API client libraries (say in Python or R or in my case go) using the graql or json/hal version of the api? (or working in some other way all together?)
I ask because I don't plan to use graqn from Java, rather I have mostly golang and some python microservices that I would need to have communicating with grakn over the network.
I've found this: https://github.com/mikonapoli/driver-scripts
Like the repo says it was just a proof of concept - but I'm wondering whether your official REST API client libraries in the future will parse the graql text, or the application/json/hal response, or work in some other way all together?
(Q2) Do you have perhaps a python or R library (of much less likely: golang library!) in the works I can take a peak at? Or any code that would help me start thinking about these, ie a robust way of parsing the application/graql response if that's the way the client libraries will work.
Basically I'm at the point where I've read through all the docs, have done various grakn queries from the console and in the visual interface and watched Haikal's Data Day Texas video twice in fact. I more or less get how things work and get the genius of it all . But I don't use and don't plan to use java! So I'd now like to build out an MVP of sorts where I test the idea of using grakn as the main database backing an application running in golang and/or python. (Happy to share more details of this privately.)
(Q3) Have you guys thought about having a GRPC endpoint at all? Have you come across dgraph.io for example? I like your approach to ontology and schema and inference and the like much more... but I've found using their graph database from python and go much easier due to their GRPC-based API. I could image this working really well for grakn, with the primary benefits being:
- it's a binary protocol, so fast! and you get back types - so client libraries get back whether data is bool/string/numeric/etc.
- from the specification you can generate client libraries in most languages automatically: e.g. python, C++, java, go, etc. So on the grakn server side you could make the endpoint with grpc's java library, and have the client libraries in other languages auto-generated.
Thanks a lot in advance