asami

Asami, the graph database https://github.com/threatgrid/asami
quoll 2021-05-07T01:30:33.330Z

Asami 2.0.3 is out. • This fixes a bug where the internal ID generator was not initializing correctly when reconnecting to a persistent store. • Also fixes ID collisions after importing data that was exported from another store.

1🪨
2021-05-07T15:28:43.330600Z

👋 Not actually doing this yet; but I was considering running naga over some RDF stores, e.g. rdf4j’s native store, and possibly arbitrary sparql repositories

quoll 2021-05-07T15:31:06.330900Z

That’s an adapter that I always intended to write. It’s where all of this started, after all

quoll 2021-05-07T15:32:50.331100Z

Let me know if I should put some time into it 🙂

2021-05-07T15:33:16.331300Z

yeah, it looked like it would be relatively easy to add to what is there already. I think the bulk of it would be coercing the naga keywords into URIs via a registry of prefixes

quoll 2021-05-07T15:34:32.331500Z

If using the rule language, then yes. But if using the API, then it’s not needed, since URIs can be provided directly

2021-05-07T15:34:53.331700Z

yeah, agreed, I was meaning via pabu

quoll 2021-05-07T15:35:21.331900Z

The rule language (Pabu) was literally a 30 minute hack just so I had a quick way to write and modify rules :rolling_on_the_floor_laughing:

quoll 2021-05-07T15:35:37.332100Z

Somehow, it stayed with us! 😳

2021-05-07T15:36:09.332300Z

I guess, it’s almost good enough 😆

quoll 2021-05-07T15:36:36.332500Z

Pabu was also a good opportunity to learn about parser combinators! (I used to work with Nate Young who wrote the Parsatron)

2021-05-07T15:36:38.332700Z

I just like that it’s so similar to prolog

2021-05-07T15:37:04.332900Z

though it probably does cause me more grief than using the API

quoll 2021-05-07T15:37:31.333100Z

The syntax is specifically taking the same format as QNames, intentionally

2021-05-07T15:38:20.333300Z

yeah, which again is nice for me because I’m using RDF 🙂

2021-05-07T15:39:08.333500Z

though if I were to actually use any of the rules I’ve written I’ll need to coerce them into URIs on whatever backend I use (Jena/RDF4j)

quoll 2021-05-07T15:39:09.333700Z

It’s missing the PREFIX part, so I should add that

2021-05-07T15:39:46.333900Z

yeah I was going to mention that; though you’ll need a way to register / hook in URI constructors

2021-05-07T15:40:05.334100Z

though that sort of thing might be better bolted on rather built in

quoll 2021-05-07T15:41:20.334300Z

I was thinking of the @prefix syntax, to distinguish it from rules