--
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/CAA-H4380r95sG7Pzk%3DcvrMF6jTcfanoNiMb4_NGJGMA3BP7kgA%40mail.gmail.com.
Hi Nikolay,As Stephen says, there hasn't been a lot of emphasis on a formal, vendor-agnostic property graph data model and schema language in TinkerPop. IMO, this is something we should, and can fix. Developers love the simplicity of property graphs (vis-a-vis RDF), but when you start getting serious about "knowledge graphs", the lack of a schema language really becomes a hindrance, as you have found.In general, I don't think it is necessary to embed a schema representation in the graph database (so long as you have some external representation, like a set of files, which is in sync with it). However, back when we were using JanusGraph (which does have an embedded schema) at Uber, we used the approach of computing a semantic diff between consecutive versions of a schema, which were then used to patch the database as we moved from one version to the next.Stay tuned for more information on the schema language we developed at Uber, and for the paper ("Algebraic Property Graphs") Ryan mentioned, which formalizes the graph data model. It has been a goal of mine for a while now to provide a common schema API in TinkerPop4, and I think we are pretty close.Josh
On Mon, Aug 26, 2019 at 3:50 AM Stephen Mallette <spmal...@gmail.com> wrote:
There definitely aren't many schema management tools in the graph world that I'm aware of, at least not on the level of what exists for RDBMS. I'd imagine that for TinkerPop one mostly relies on scripts executed in some form of administrative fashion It's not especially nice or well automated in a structural way but I'm pretty sure that's what folks have always done. TinkerPop itself doesn't focus on "tools" all too much and given that TinkerPop 3.x and earlier versions have also not concerned themselves with trying to create an agnostic approach to graph schemas we have typically relied on graph providers and their tools as well as third-party development to help build out this space.
On Sat, Aug 24, 2019 at 10:51 AM Nikolay Valchev <nvva...@gmail.com> wrote:
Hello folks,--I am looking into Gremlin and graph DBs as a foundation for a Knowledge Graph focused project. I've started with the definition of initial schema of the graph - defining some static vertices and edges. Then would ingest concrete data entries (vertices) linked to the static ones. The decision I've made was to not rely on any graph DB provider schema definition specifics, but rather implement the schema directly in the graph as vertices and edges. The approach is similar to the one here.Now comes the topic of graph schema evolution - at some point of time I'd like to add new schema vertices and refactor the old ones. For that purpose there are multiple database refactoring tools for relational databases like liquibase or flyway that I used before. However, there are not so much in the graph DB domain. One prominent is liquigraph for Neo4j, but I found nothing based on Gremlin except for this one, which seems promising, but not active/maintained or used.So, could you point me to some change management tools, based on Gremlin? Or share some strategies for evolving the graph schema...Thank you,Nikolay
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremli...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/9bf116b6-35e9-45fe-9ced-e498b31e693b%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremli...@googlegroups.com.
Hi Josh, hi Ryan,Thanks for the resources! You are doing really amazing work! Looking forward to see certain aspects embodied in TinkerPop 4. Btw, could you share what are the plans for that? The latest info I see here is maybe not full or outdated.
Are there some plans to add further semantic restrictions (OWL style) and inference API?
I agree that embedding the schema in the graph is not necessary. However, it might be beneficial. Why? In our particular case (which is a standard for a knowledge graph system) we have two-fold usage of the graph schema:
- Semantic validation - validate new incoming changes (on transactional level) to the graph or via scheduled integrity checks that might scan the whole graph in OLAP manner.
- Inferencing - derive new relations, based on the existing ones and some semantic rules.
Our first naive approach is to define the schema as embedded in the graph and implement 1. and 2. via gremlin queries on the graph. On the contrary, if the schema is defined outside the graph then the validation and inferencing would be theoretically more complex. I say theoretically, because we might have some problems expressing the validations and inferencing purely as queries, which read the schema and then apply it to the data at hand. Time would show if the approach falls short for that.
Josh, as I get it your approach currently at Uber is to have a proprietary schema definition language (yaml-based) for your models. Then there are dedicated generators for the other schema representations. Are you then generating graph db specific schema or some custom schema validation logic for the Property Graph format? (I'm referring to the slide here)
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/8eee642b-d157-4f65-ba01-78af610cd519%40googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/8eee642b-d157-4f65-ba01-78af610cd519%40googlegroups.com.
Not proprietary for too much longer, but yes that is accurate. At present in the knowledge graph project at Uber, we actually have an additional YAML format which is used in connection with property graph data models. The tooling carries schemas between the model-agnostic ("logical") model (which is APG with some additional bells and whistles like collection and enum types) and the property graph format, along with all of the others. I would like to implement a similar, open-source and JVM-based framework for TP4.
--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/5ebb93a7-9d57-47ca-81b7-b0861c41626c%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/CAPc0OuvFdynm8bvqUSk4-2vanbkS7Sum4CCYVQxMG%3DaqsQJXwg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/CABfroMuVM6raW6jFrY-_Uvs6cHPpxfXuMqSY%2BxTZ6hbWS8%2BUjQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/CAA-H43_t-sEpEnNs30_Z1Z8F7hVYEi6F8sE6odVf4jwN%3DtOT4Q%40mail.gmail.com.