Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Will inference ever be supported? #15

Open
CestLucas opened this issue May 5, 2023 · 5 comments
Open

Will inference ever be supported? #15

CestLucas opened this issue May 5, 2023 · 5 comments
Labels
enhancement New feature or request

Comments

@CestLucas
Copy link

CestLucas commented May 5, 2023

First of all big thanks to SliccDB devs! We were looking at server-less solution to Neo4j but we need to be able to infer concept relations, i.e. check if two concepts are connected via a path. Thank you.

@pmikstacki
Copy link
Owner

pmikstacki commented May 9, 2023

Hi @CestLucas!

If you mean this feature of Neo4J - https://neo4j.com/labs/neosemantics/4.0/inference/ it looks very interesting and worth implementing into SliccDB.

I have two ideas how this could work, but I will gladly welcome any input on your part:

Categories
I will define new Entity type called category. It would contain a list of Labels that fit the specific category. You could then query by category and it would return all nodes with labels specified in the category.

Families
Similair to categories, but we could define supersets of categories called families, that would include all nodes in categories assigned to each family. Or maybe just allow categories to hold also other categories. It would allow to specify sets, subsets and supersets. It could open SliccDB for some data scientists

Happy to hear your feedback or propositions tho!

Kind Regards

@pmikstacki pmikstacki added the enhancement New feature or request label May 9, 2023
@CestLucas
Copy link
Author

CestLucas commented May 9, 2023

Thanks for the write up @pmikstacki ! Much appreciated.

I think a simple route finder similar to https://github.com/jchristn/LiteGraph can be a great start:

// Find a route
RouteFinder rf = new RouteFinder(graph);
rf.FromGuid = "joel";
rf.ToGuid = "maria";
GraphResult result = rf.Find();

This would tell if two concepts are connected via any multi-hop path, for instance pug->dog->canine->animal so a pug is an animal ;)

@pmikstacki
Copy link
Owner

pmikstacki commented May 10, 2023

Oh, I see that this is just graph traversal. Actually I've never thought of that because I use sliccDB for use cases not requiring this feature. I will try to implement it by next week :)
This RouteFinder seems like a good abstraction it would allow for different algorithms to walk the graph.

Kind Regards

@BY-DevInnovation
Copy link

Any news on this feature ?

@MovGP0
Copy link

MovGP0 commented Aug 10, 2024

I am currently working around this issue by using QuikGraph. That is I transform the SliccDB graph into a QuikGraph data structure and then do the interference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants