Neosemantics Web Ontology,data and SCHAL in a single DB (Pros and Cons)

Hi All,

I have the following query:
Problem Statement:

  1. We have created an ontology using Protege and imported it to neo4j.
  2. We are loading the data from an external data source.
  3. We have imported the appropriate SCHAL validations as per ontology.


  1. On each data import, we need a unique URI to be generated. Currently, I am using a custom code to generate and host the URIs. Is there any suggested tool that can be used for this purpose?
  2. Since I am loading my ontology and data in the neo4j DB - one from owl file and other from API. So what is the expected Pros and Cons of it? How an ontology residing in DB will help in long run owing to the fact that we have SCHAL validations are in place?


Hi @saurav7055,
Thanks for sharing your experience.
Let me ask you a quick question. When you say "the appropriate SCHAL validations as per ontology", what to you mean exactly? Do you have a systematic/automated way of generating SHACL constraints from an OWL ontology?

Also answering your questions:

  1. I'm not aware of any tool that could do this for you. Normally this is something you want to control, so custom code makes sense to me. But thinking about it, do you think it would make sense to include some capability in n10s that could help with that? If so what would it look like? would you expect the uris to be just random guids? or would you want them to be based on a given id provided by you and a namespace schema? It would be great if you could share your ideas on this.
  2. ontologies are used to drive inference, while SHACL shapes define data integrity constraints. The first would need to be combined with some inferencing engine to derive new facts from the ones existing in your graph (here are a couple of examples), the second can be used to detect integrity constraint violations or even to prevent them from being introduced in the graph. Check here how n10s does it.