//Accounting Equation in Neo4j Cypher syntax CREATE (Assets:Term {name: "Assets", balance: "debit", period:"instant"}) CREATE (Liabilities:Term {name: "Liabilities", balance: "credit", period:"instant"}) CREATE (Equity:Term {name: "Equity", balance: "credit", period:"instant"}) CREATE (Term:Term {name: "Term"}) CREATE (Report:Term {name: "Report"}) CREATE (Association:Term{name: "Association"}) CREATE (Structure:Term {name: "Structure"}) CREATE (Rule:Term {name: "Rule"}) CREATE (Fact:Term {name: "Fact"}) CREATE (BalanceSheetBalances:Rule {name: "Assets = Liabilities + Equity"}) CREATE (BalanceSheet:Structure {name: "Balance Sheet"}) CREATE (Assets)-[:IS_A]->(Term) CREATE (Liabilities)-[:IS_A]->(Term) CREATE (Equity)-[:IS_A]->(Term) CREATE (Term)-[:PART_OF]->(Association) CREATE (Association)-[:PART_OF]->(Structure) CREATE (Structure)-[:PART_OF]->(Report) CREATE (Rule)-[:PART_OF]->(Report) CREATE (Fact)-[:PART_OF]->(Report) CREATE (BalanceSheetBalances)-[:IS_A]->(Rule) CREATE (BalanceSheet)-[:IS_A]->(Structure) CREATE (BalanceSheetBalances)-[:PART_OF]->(BalanceSheet) CREATE (ID1001:Fact {name: 'Assets for ABC company as of December 31, 2020 $5,000', concept:'ae:Assets', entityScheme:'http://standards.iso.org/iso/17442', entity:'GH259400TOMPUOLS65II', period:'2020-12-31', rounding:'INF', units:'iso4217:USD', value:'5000'}) CREATE (ID1002:Fact {name: 'Liabilities for ABC company as of December 31, 2020 $1,000', concept:'ae:Liabilities', entityScheme:'http://standards.iso.org/iso/17442', entity:'GH259400TOMPUOLS65II', period:'2020-12-31', rounding:'INF', units:'iso4217:USD', value:'1000'}) CREATE (ID1003:Fact {name: 'Equity for ABC company as of December 31, 2020 $4,000', concept:'ae:Equity', entityScheme:'http://standards.iso.org/iso/17442', entity:'GH259400TOMPUOLS65II', period:'2020-12-31', rounding:'INF', units:'iso4217:USD', value:'4000'}) CREATE (ID1001)-[:IS_A]->(Fact) CREATE (ID1002)-[:IS_A]->(Fact) CREATE (ID1003)-[:IS_A]->(Fact) CREATE (ID1001)-[:IS_A]->(Assets) CREATE (ID1002)-[:IS_A]->(Liabilities) CREATE (ID1003)-[:IS_A]->(Equity) CREATE (Assets)-[:IS_A]->(BalanceSheet) CREATE (Liabilities)-[:IS_A]->(BalanceSheet) CREATE (Equity)-[:IS_A]->(BalanceSheet) WITH "$Assets = $Liabilities + $Equity" as Formula CALL apoc.cypher.run("return " + Formula + " as value", { Assets: 5000, Liabilities: 1000, Equity: 4000 }) yield value as result RETURN result.value