SliccDB | Light Embedded Graph Database for .net | Graph Database library

 by   pmikstacki C# Version: 0.1.1 License: MIT

kandi X-RAY | SliccDB Summary

kandi X-RAY | SliccDB Summary

SliccDB is a C# library typically used in Database, Graph Database applications. SliccDB has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Light Embedded Graph Database for .net with support for OpenCypher Query Language

            kandi-support Support

              SliccDB has a low active ecosystem.
              It has 57 star(s) with 10 fork(s). There are 3 watchers for this library.
              It had no major release in the last 12 months.
              There are 1 open issues and 11 have been closed. On average issues are closed in 50 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of SliccDB is 0.1.1

            kandi-Quality Quality

              SliccDB has no bugs reported.

            kandi-Security Security

              SliccDB has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              SliccDB is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              SliccDB releases are available to install and integrate.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of SliccDB
            Get all kandi verified functions for this library.

            SliccDB Key Features

            No Key Features are available at this moment for SliccDB.

            SliccDB Examples and Code Snippets

            No Code Snippets are available at this moment for SliccDB.

            Community Discussions


            Can I create a knowledge graph in Memgraph?
            Asked 2022-Mar-28 at 11:17

            I know that knowledge graphs are represented in RDF, but I am wondering whether Memgraph as a graph database can store this kind of data?



            Answered 2022-Mar-28 at 11:17

            While Memgraph is not an RDF store, it is capable of handling this kind of data with the labeled property graph model (LPG). LPG is represented by a set of nodes, relationships, properties (key-value attributes) and labels. RDF statements can be directly treated as nodes, relationships and properties of the graph, which are explored using the Cypher query language. Therefore, both RDF and LPG allow the creation of a knowledge graph.



            Using a graph database to store and retrieve sorted users by personality scores
            Asked 2022-Mar-13 at 07:12

            I am interested in storing a set of users that have personality scores. I would like to get them to be more connected (closer?) to each other based on formulas that are applied to their scores. The more similar the users are, the more connected or closer to each other they are (like in a cluster). The closest nodes are to one-another, the more similar they are.

            I currently do this over multiple steps (some in SQL and other in code) from a relational database.

            Most posts out there and documentation seems to focus on how to get started and what the advantages are at a high level compared to relational databases.

            I am wondering if Graph databases are better suited for this and would do most of the heavy lifting out of the box or more natively. Any details are greatly appreciated.



            Answered 2022-Mar-13 at 07:12

            You could consider modeling it like this:

            Where a vertex type/label named Score_range was introduced, together with the label User(with property score).

            User vertices are connected to Score_range vertex like User with score: 101 is connected to Score_range(vertexID=100) which stands for [100, 110).

            Thus, those vertices with closer score are more connected/clusterred in this graph, and in your applicaiton, you need to make connection changes when the score are recaculated/changed to the graph database.

            Then, either to run cluster algorithm(i.e. Louvain) on the whole graph or graph query to find path between any two user nodes(i.e. FIND PATH in Nebula Graph, an opensource distributed graph database speaks opencypher), the closeness will be reflected.

            But, I think due to this connection/closness is actually numerical/sortable, simply handling this closeness relationship may not need a graph database from the context you already provided.

            PS. I drew a picture of a graph in the above schema:



            idiomatic way to atomically create a table that as a record that is associated to other tables
            Asked 2022-Feb-23 at 17:11

            I am coming from graph databases and postgres is still super foreign to me.

            I have the following tables



            Answered 2022-Feb-23 at 17:11

            Example of using DEFERRABLE:



            Gremlin query language - how to limit/filter path or start from specific verticle in chain?
            Asked 2022-Feb-12 at 21:05

            I am new to the graph databases and Gremlin. What I am trying to achieve is to ask a simple question to the database. Provided id of the Entity and id of the File, I want to find all other entites who have access to this file via the Share and return the result with the property "type" of the share. Here is the graph itself:

            What I tried:


            This returns me:



            Answered 2022-Feb-12 at 21:05

            You just need to tell path step where to start from. You can do something like this:



            SQL Graph Database VS Cosmos Gremlin graph DB
            Asked 2022-Feb-09 at 07:07

            I have been thinking about what are the pros and cons of SQL Graph Database and Cosmos Graph Database, as far as I understand, SQL graph database is using nodes and vertex, but it still stores all of the information in tables.

            So my question would be if the graph data can be handled by graph Db, what are the advantages of using SQL graph database? What is the added value of it compared with the original graph Database ?



            Answered 2022-Feb-09 at 07:07

            SQL Graph Database and Cosmos Graph Database both are almost same kind of services, just the structure of handling the data is different. As such there are no advantages and disadvantages, but choosing the right service based on your use-case is the key factor.

            Azure Cosmos DB's Gremlin API combines the power of graph database algorithms with highly scalable, managed infrastructure to provide a unique, flexible solution to most common data problems associated with lack of flexibility and relational approaches.

            So, by using Azure Cosmos DB Gremlin API, you will get more leverage on the datasets with additional features. On the top of that, all the prerequisites will be taken care by CosmosDB while creating the database using Gremlin API.

            In SQL Graph DB, nodes and edges are in tabular form, whereas in Cosmos DB it is in JSON like format.

            I would highly encourage you to analyze how these databases support graph database models and the mechanism to exploit the maximum potential of these database systems for the right use-cases.

            Please refer below articles to get the better understanding of both the services.

            SQL Graph Architecture

            Introduction to Gremlin API in Azure Cosmos DB



            AWS Neptune performance / Comparing to Neo4j AuraDB
            Asked 2022-Feb-01 at 14:30

            We use Neo4j AuraDB for our graph database but there we have issues with data upload. So, we decided to move to AWS Neptune using the migration tool.

            We have 3.7M nodes and 11.2M relations in our database. The DB instance is db.r5.large with 2 CPUs and 16GiB RAM.

            The same AWS Neptune OpenCypher queries are much slower than AuraDB Cypher queries (about 7-10 times slower). Also, we tried to rewrite the queries to Gremlin and test performance but it is still very slow. We have node and lookup indexes on AuraDB but we can't create them on AWS Neptune as it handles them automatically.

            Is there any way to reach better performance on AWS Neptune?


            Example of Gremlin query: g.V().hasLabel('Member').has('address', eq('${address}')).outE('HAS').as('member_has').inV().as('token').hasLabel('Token').inE('HAS').as('other_member_has').outV().as('other_member').hasLabel('Member').where('member_has').where(neq('other_member_has'))).select('other_member', 'token').group().by('other_member').local('member', 'number_of_tokens').by(__.unfold().select('other_member').choose(neq('cypher.null'), __.local('token').count())).unfold().select(values).order().by('number_of_tokens'), desc).limit(20)

            Example of Cypher query: MATCH (member:Member { address: '${address}' })-[:HAS]->(token:Token)<-[:HAS]-(other_member:Member) RETURN PROPERTIES(other_member) as member, COUNT(token) AS number_of_tokens ORDER BY number_of_tokens DESC LIMIT 20



            Answered 2022-Feb-01 at 14:30

            As discussed in the comments, as of this moment, the openCypher support is a preview, not quite GA level. The more recent engine versions do have some significant improvements but more are yet to be delivered. As to the Gremlin query, tools that convert Cypher to Gremlin tend to build quite complex queries. I think the Gremlin equivalent to the Cypher query is going to look something like this.



            @Async method inside synchronized method Java
            Asked 2022-Jan-26 at 12:47

            To summarize the problem, I am trying to call some method which is annotated with @async in a synchronized method. Reason for using @async was because I wish to return the response of the post method (to reduce waiting time on client’s side) and continue doing some post processing work (resetting certain properties). However, as the POST method involve altering a graph database, I declare the method with synchronized keyword to prevent altering of the graph database while another computation is going on. The result of this seem to be that two threads are entering the synchronized method, which shouldn’t be occurring?



            Answered 2022-Jan-26 at 12:45

            When you call the asynchronous method reset() within the synchronized method compute() the latter method will not wait for reset() to finish. Instead it will spawn a new thread that handles the code execution of reset() and then immediately proceeds to the next line Return(“===== > done computing”). After that the method will complete. When it completes a new thread will be allowed to call compute(), even when the reset() call of the previous thread that entered compute() is still running in the separate thread.

            So to be more clear, The method compute() is not entered by two threads simultaneously. It only looks that way because part of the text prints from thread http-nio-10080-exec-3 come before the Done Resetting print of thread Async-1. So your code is working as intended.



            NEO4J find records that not exist in other pattern result
            Asked 2022-Jan-19 at 10:25

            I'm new to Graph Database world, i just started to learn neo4j.

            For example. I have a list of all video and a list of user watched video. How do I write pattern to query a list of not watched video based on specifed user id ?



            Answered 2022-Jan-19 at 10:25

            I assume that your labelled property model looks something like this:

            • Some nodes with label "USER" for the users
            • Some nodes with label "MOVIE" for the movies
            • Some Relations of type "Has_Watched" to indicate a user has seen the movie

            Then you can do something like this:



            Check if Neighbors have subset of connected nodes
            Asked 2022-Jan-13 at 18:57

            I currently have a Neo4J Graph Database that stores 4 different kind of nodes that are connected via edges. Yellow/Red nodes that are connected to blue nodes and the yellow/red nodes have green nodes connected that give additional info on them.

            What I want to do is to check if the selected node(either yellow or red) has a neighbor that is connected via the blue node, has a subset of common connected green nodes.

            For example if I select the lower red node the upper red node would be returned as they both share the same far left green node neighbor which is a subset of the green node neighbors of the selected red node.

            Example Graph Structure

            I currently have the following Cypher query, where the table nodes are the yellow and red nodes and the keyNode are the green nodes. The blue node is the objectType.



            Answered 2022-Jan-13 at 18:57

            I think I have found a solution.

            I thought it the other way around. So instead of searching via the blue node that is connected to both my nodes I went via the green node.

            The green neighbors of the other nodes can only be a subset of the selected nodes green neighbors if all of the other nodes neighbors are also connected to the selected node. You can find the used cypher query below. The interesting part where the subset is tested is:

            Match (table) WHERE NOT ALL(t2key in t2keys WHERE (table)-[:IS_DEFINED_BY_KEY]->(t2key)).



            Cytoscape Integration with Neo4j
            Asked 2022-Jan-13 at 16:27

            I'm trying to build a webpage on which embed a visualization window for my local graph database. The graph database I'm using is Neo4j and for visualization I'm trying to use Cytoscape. Until now, I embedded a test graph in a webpage thanks to Cytoscape.js by putting some nodes and relationships directly in the JavaScript code. The only thing I still have problem with is the connection between Cytoscape and my local Neo4j Database. Which would be the best way to do this?



            Answered 2022-Jan-13 at 16:27

            Typically, I answer Cytoscape desktop (not Cytoscape.js) questions, but I have built a web site (see that does exactly what you are proposing. For a number of reasons, we implemented it with an intermediate REST interface so that we don't have to expose our Neo4J database. The REST interface does all of the queries and spits out cytoscape.js JSON formatted networks...

            -- scooter


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install SliccDB

            You can download it from GitHub.


            Think of it like SQLite for graph databases. There were some efforts to build something like this (such as Graph Engine) but Microsoft decided to abandon all of their graph database related projects. Be aware that I have no intention to make this some sort of Neo4J .net Clone. It will be not fully compliant with features of mentioned database. I intend on integrating Cypher, because it is an ISO standard GQL (Graph Query Language). More info and resources about cypher can be found on their site (
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone pmikstacki/SliccDB

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link