I am new to Neo4j and I am currently working on building an ontology using OWL in Protege 5. However, I encountered a problem about creating individuals programmtically, thus I attempt to try Neo4j and really need some kind advice.
Specifically, in Neo4j, I have a node with Label "Task", a relation named "isConstrainedBy", and another node with Label "Constraints". Then, if I define a logic rule which says that any node labelled by "Task" should be related to at least one node labelled by "Constraints" with the relation "isConstrainedBy".
Then, when I create a new node labelled by "Task", and suppose there is no node labelled by "Constraints". Is it possible that Neo4j can automatically reason that there should be another new node, say "constraints_1" labelled by "Constraints", create it, and establish the relation "isConstrainedBy" between the two new nodes?
The process above seems to be quite difficult to realize in OWL due to the Open World Assumption (despite it can be done using Jena or other external packages). However, I found that the APOC library of Neo4j seems to be able to create, update and delete nodes porgrammtically. What concerns me is the reasoning capacity of Neo4j, can Neo4j automatically detect the implicit fact that there should be a new node labelled by "Constraints", and then realize the automatic node and relation creation??
I apologize that this question maybe stupid and any suggestions will be much appreciated, thanks a lot in advance!!