[{"data":1,"prerenderedAt":436},["ShallowReactive",2],{"navigation":3,"i-mdi:linkedin":215,"nav-docs":219,"i-mdi:chevron-down":294,"i-lucide:search":296,"/blog/graph-visualization-tooling-gap":298,"i-lucide:hash":432,"i-mdi:arrow-back":434},[4],{"title":5,"path":6,"stem":7,"children":8,"page":31},"Documentation","/docs","docs",[9,14,32,148],{"title":10,"path":11,"stem":12,"icon":13},"Getting Started","/docs/getting-started","docs/1.getting-started","mdi:rocket-launch",{"title":15,"path":16,"stem":17,"children":18,"page":31},"Adding Your Data","/docs/adding-your-data","docs/2.adding-your-data",[19,23,27],{"title":20,"path":21,"stem":22},"Overview","/docs/adding-your-data/overview","docs/2.adding-your-data/01.overview",{"title":24,"path":25,"stem":26},"Demo Databases","/docs/adding-your-data/demo-databases","docs/2.adding-your-data/02.demo-databases",{"title":28,"path":29,"stem":30},"Custom Databases","/docs/adding-your-data/custom-databases","docs/2.adding-your-data/03.custom-databases",false,{"title":33,"path":34,"stem":35,"children":36,"page":31},"Analysing Your Data","/docs/analysing-your-data","docs/3.analysing-your-data",[37,40,58,142],{"title":20,"path":38,"stem":39},"/docs/analysing-your-data/overview","docs/3.analysing-your-data/00.overview",{"title":41,"path":42,"stem":43,"children":44},"Querying","/docs/analysing-your-data/querying","docs/3.analysing-your-data/01.querying/index",[45,46,50,54],{"title":20,"path":42,"stem":43},{"title":47,"path":48,"stem":49},"Visual Queries","/docs/analysing-your-data/querying/visual-queries","docs/3.analysing-your-data/01.querying/01. visual-queries",{"title":51,"path":52,"stem":53},"Cypher Queries","/docs/analysing-your-data/querying/cypher-queries","docs/3.analysing-your-data/01.querying/02.cypher-queries",{"title":55,"path":56,"stem":57},"Natural Language","/docs/analysing-your-data/querying/natural-language","docs/3.analysing-your-data/01.querying/03.natural-language",{"title":59,"path":60,"stem":61,"children":62},"Visualizing","/docs/analysing-your-data/visualizing","docs/3.analysing-your-data/02.visualizing/index",[63,64,68,82,94,106,118,130],{"title":20,"path":60,"stem":61},{"title":65,"path":66,"stem":67},"Colors","/docs/analysing-your-data/visualizing/colors","docs/3.analysing-your-data/02.visualizing/00.colors",{"title":69,"path":70,"stem":71,"children":72},"Node-Link Diagram","/docs/analysing-your-data/visualizing/node-link","docs/3.analysing-your-data/02.visualizing/01.node-link/index",[73,74,78],{"title":20,"path":70,"stem":71},{"title":75,"path":76,"stem":77},"Use Cases","/docs/analysing-your-data/visualizing/node-link/use-cases","docs/3.analysing-your-data/02.visualizing/01.node-link/01.use-cases",{"title":79,"path":80,"stem":81},"Features","/docs/analysing-your-data/visualizing/node-link/features","docs/3.analysing-your-data/02.visualizing/01.node-link/02.features",{"title":83,"path":84,"stem":85,"children":86},"Adjacency Matrix","/docs/analysing-your-data/visualizing/matrix","docs/3.analysing-your-data/02.visualizing/02.matrix/index",[87,88,91],{"title":20,"path":84,"stem":85},{"title":75,"path":89,"stem":90},"/docs/analysing-your-data/visualizing/matrix/use-cases","docs/3.analysing-your-data/02.visualizing/02.matrix/01.use-cases",{"title":79,"path":92,"stem":93},"/docs/analysing-your-data/visualizing/matrix/features","docs/3.analysing-your-data/02.visualizing/02.matrix/02.features",{"title":95,"path":96,"stem":97,"children":98},"PAOHVis","/docs/analysing-your-data/visualizing/paohvis","docs/3.analysing-your-data/02.visualizing/03.paohvis/index",[99,100,103],{"title":20,"path":96,"stem":97},{"title":75,"path":101,"stem":102},"/docs/analysing-your-data/visualizing/paohvis/use-cases","docs/3.analysing-your-data/02.visualizing/03.paohvis/01.use-cases",{"title":79,"path":104,"stem":105},"/docs/analysing-your-data/visualizing/paohvis/features","docs/3.analysing-your-data/02.visualizing/03.paohvis/02.features",{"title":107,"path":108,"stem":109,"children":110},"Sankey Diagram","/docs/analysing-your-data/visualizing/sankey","docs/3.analysing-your-data/02.visualizing/04.sankey/index",[111,112,115],{"title":20,"path":108,"stem":109},{"title":75,"path":113,"stem":114},"/docs/analysing-your-data/visualizing/sankey/use-cases","docs/3.analysing-your-data/02.visualizing/04.sankey/01.use-cases",{"title":79,"path":116,"stem":117},"/docs/analysing-your-data/visualizing/sankey/features","docs/3.analysing-your-data/02.visualizing/04.sankey/02.features",{"title":119,"path":120,"stem":121,"children":122},"Semantic Substrates","/docs/analysing-your-data/visualizing/semantic-substrates","docs/3.analysing-your-data/02.visualizing/05.semantic-substrates/index",[123,124,127],{"title":20,"path":120,"stem":121},{"title":75,"path":125,"stem":126},"/docs/analysing-your-data/visualizing/semantic-substrates/use-cases","docs/3.analysing-your-data/02.visualizing/05.semantic-substrates/01.use-cases",{"title":79,"path":128,"stem":129},"/docs/analysing-your-data/visualizing/semantic-substrates/features","docs/3.analysing-your-data/02.visualizing/05.semantic-substrates/02.features",{"title":131,"path":132,"stem":133,"children":134},"Map Visualization","/docs/analysing-your-data/visualizing/map","docs/3.analysing-your-data/02.visualizing/06.map/index",[135,136,139],{"title":20,"path":132,"stem":133},{"title":75,"path":137,"stem":138},"/docs/analysing-your-data/visualizing/map/use-cases","docs/3.analysing-your-data/02.visualizing/06.map/01.use-cases",{"title":79,"path":140,"stem":141},"/docs/analysing-your-data/visualizing/map/features","docs/3.analysing-your-data/02.visualizing/06.map/02.features",{"title":143,"path":144,"stem":145,"children":146},"Exploring","/docs/analysing-your-data/exploring","docs/3.analysing-your-data/03.exploring/index",[147],{"title":20,"path":144,"stem":145},{"title":149,"path":150,"stem":151,"children":152,"page":31},"Deployment","/docs/deployment","docs/4.deployment",[153,156,160,173,190],{"title":20,"path":154,"stem":155},"/docs/deployment/overview","docs/4.deployment/01.overview",{"title":157,"path":158,"stem":159},"Web Version","/docs/deployment/web-version","docs/4.deployment/02.web-version",{"title":161,"path":162,"stem":163,"children":164,"page":31},"Deployment types","/docs/deployment/deployment-types","docs/4.deployment/3.deployment-types",[165,169],{"title":166,"path":167,"stem":168},"Private Azure","/docs/deployment/deployment-types/private-cloud","docs/4.deployment/3.deployment-types/01.private-cloud",{"title":170,"path":171,"stem":172},"Self-Hosted","/docs/deployment/deployment-types/self-hosted","docs/4.deployment/3.deployment-types/02.self-hosted",{"title":174,"path":175,"stem":176,"children":177,"page":31},"Technology","/docs/deployment/technology","docs/4.deployment/4.technology",[178,182,186],{"title":179,"path":180,"stem":181},"Architecture","/docs/deployment/technology/architecture","docs/4.deployment/4.technology/01.architecture",{"title":183,"path":184,"stem":185},"Security","/docs/deployment/technology/security","docs/4.deployment/4.technology/02.security",{"title":187,"path":188,"stem":189},"Authentication","/docs/deployment/technology/authentication","docs/4.deployment/4.technology/03.authentication",{"title":191,"path":192,"stem":193,"children":194,"page":31},"Devops","/docs/deployment/devops","docs/4.deployment/5.devops",[195,199,203,207,211],{"title":196,"path":197,"stem":198},"Kubernetes Guide","/docs/deployment/devops/kubernetes-deployment","docs/4.deployment/5.devops/01.kubernetes-deployment",{"title":200,"path":201,"stem":202},"Azure Guide","/docs/deployment/devops/azure-deployment","docs/4.deployment/5.devops/02.azure-deployment",{"title":204,"path":205,"stem":206},"Architecture Reference","/docs/deployment/devops/architecture-reference","docs/4.deployment/5.devops/03.architecture-reference",{"title":208,"path":209,"stem":210},"Security Reference","/docs/deployment/devops/security-reference","docs/4.deployment/5.devops/04.security-reference",{"title":212,"path":213,"stem":214},"Authentication Setup","/docs/deployment/devops/authentication-setup","docs/4.deployment/5.devops/05.authentication-setup",{"left":216,"top":216,"width":217,"height":217,"rotate":216,"vFlip":31,"hFlip":31,"body":218},0,24,"\u003Cpath fill=\"currentColor\" d=\"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93zM6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37z\"/>",[220],{"title":5,"path":6,"stem":7,"children":221,"page":31},[222,223,228,274],{"title":10,"path":11,"stem":12,"icon":13},{"title":15,"path":16,"stem":17,"children":224,"page":31},[225,226,227],{"title":20,"path":21,"stem":22},{"title":24,"path":25,"stem":26},{"title":28,"path":29,"stem":30},{"title":33,"path":34,"stem":35,"children":229,"page":31},[230,231,237,271],{"title":20,"path":38,"stem":39},{"title":41,"path":42,"stem":43,"children":232},[233,234,235,236],{"title":20,"path":42,"stem":43},{"title":47,"path":48,"stem":49},{"title":51,"path":52,"stem":53},{"title":55,"path":56,"stem":57},{"title":59,"path":60,"stem":61,"children":238},[239,240,241,246,251,256,261,266],{"title":20,"path":60,"stem":61},{"title":65,"path":66,"stem":67},{"title":69,"path":70,"stem":71,"children":242},[243,244,245],{"title":20,"path":70,"stem":71},{"title":75,"path":76,"stem":77},{"title":79,"path":80,"stem":81},{"title":83,"path":84,"stem":85,"children":247},[248,249,250],{"title":20,"path":84,"stem":85},{"title":75,"path":89,"stem":90},{"title":79,"path":92,"stem":93},{"title":95,"path":96,"stem":97,"children":252},[253,254,255],{"title":20,"path":96,"stem":97},{"title":75,"path":101,"stem":102},{"title":79,"path":104,"stem":105},{"title":107,"path":108,"stem":109,"children":257},[258,259,260],{"title":20,"path":108,"stem":109},{"title":75,"path":113,"stem":114},{"title":79,"path":116,"stem":117},{"title":119,"path":120,"stem":121,"children":262},[263,264,265],{"title":20,"path":120,"stem":121},{"title":75,"path":125,"stem":126},{"title":79,"path":128,"stem":129},{"title":131,"path":132,"stem":133,"children":267},[268,269,270],{"title":20,"path":132,"stem":133},{"title":75,"path":137,"stem":138},{"title":79,"path":140,"stem":141},{"title":143,"path":144,"stem":145,"children":272},[273],{"title":20,"path":144,"stem":145},{"title":149,"path":150,"stem":151,"children":275,"page":31},[276,277,278,282,287],{"title":20,"path":154,"stem":155},{"title":157,"path":158,"stem":159},{"title":161,"path":162,"stem":163,"children":279,"page":31},[280,281],{"title":166,"path":167,"stem":168},{"title":170,"path":171,"stem":172},{"title":174,"path":175,"stem":176,"children":283,"page":31},[284,285,286],{"title":179,"path":180,"stem":181},{"title":183,"path":184,"stem":185},{"title":187,"path":188,"stem":189},{"title":191,"path":192,"stem":193,"children":288,"page":31},[289,290,291,292,293],{"title":196,"path":197,"stem":198},{"title":200,"path":201,"stem":202},{"title":204,"path":205,"stem":206},{"title":208,"path":209,"stem":210},{"title":212,"path":213,"stem":214},{"left":216,"top":216,"width":217,"height":217,"rotate":216,"vFlip":31,"hFlip":31,"body":295},"\u003Cpath fill=\"currentColor\" d=\"M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z\"/>",{"left":216,"top":216,"width":217,"height":217,"rotate":216,"vFlip":31,"hFlip":31,"body":297},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"/>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"/>\u003C/g>",{"page":299,"surround":426},{"id":300,"title":301,"body":302,"date":414,"description":415,"draft":31,"extension":416,"image":417,"meta":418,"navigation":373,"path":421,"seo":422,"stem":423,"text":424,"toc":31,"__hash__":425},"blog/blog/202606.graph-visualization-tooling-gap.md","We've had graph visualization for 20 years. Why are you still exporting CSVs into Cytoscape?",{"type":303,"value":304,"toc":405},"minimark",[305,309,316,321,324,327,331,334,341,347,350,354,357,360,367,381,385,392,395],[306,307,301],"h1",{"id":308},"weve-had-graph-visualization-for-20-years-why-are-you-still-exporting-csvs-into-cytoscape",[310,311,312],"p",{},[313,314,315],"em",{},"You already know you need a graph. That is not the argument. You have been drawing node-link diagrams since grad school, and you do not need a vendor to explain that relationships matter. So here is the question nobody answers honestly: why, in 2026, does looking at your own connected data still involve an export button, a CSV, and a tool that has never once seen your database?",[317,318,320],"h2",{"id":319},"the-tools-are-not-new","The tools are not new",[310,322,323],{},"Graph visualization is not emerging technology. It is old. Cytoscape was rendering protein-interaction networks for biologists two decades ago, back when \"big data\" was still a conference buzzword. Gephi became the academic's default soon after. Graphviz and Pajek reach back further still. Graph databases have been in general hands for the better part of twenty years. This is mature, well-trodden ground.",[310,325,326],{},"So why does the work still feel like assembly by hand?",[317,328,330],{"id":329},"every-tool-picks-a-side","Every tool picks a side",[310,332,333],{},"Because each one solved half the problem. They either store the graph or they draw it. Never both, and never in a loop.",[310,335,336,340],{},[337,338,339],"strong",{},"Graph databases store."," Neo4j and the ones after it hold your relationships beautifully, then hand you a query language. You write Cypher, you get a result set, and if you want to see it as a structure you ship it somewhere else.",[310,342,343,346],{},[337,344,345],{},"Visualization tools draw."," Cytoscape, Gephi, Tulip were born on the lab bench, built to render a network that someone had already assembled. They have never been wired to your live data source. So your real workflow looks like this: query the database, export, import into the viz tool, spot a modeling mistake, go back, rewrite the query, export again, import again.",[310,348,349],{},"The disconnect is not a missing feature. It is the entire shape of the category. You are the integration layer. Your afternoon is the API between two tools that were never designed to talk to each other.",[317,351,353],{"id":352},"the-vendors-who-noticed-mostly-solved-a-slice","The vendors who noticed mostly solved a slice",[310,355,356],{},"A few saw the gap. They each took a corner of it.",[310,358,359],{},"The lightweight layers, Neo4j Bloom and Explore among them, give you a cleaner view sitting on top of a single database. That is a viewer, not an exploration platform; the loop still terminates at one store you already had to build. The others went vertical. Linkurious, Hume, and the investigation-focused tools are genuinely sharp inside fraud or intelligence work and stop at the edge of that domain. Useful, but narrow.",[310,361,362,363,366],{},"Nobody built the ",[337,364,365],{},"general-purpose platform"," where connecting, querying, shaping the schema, and visualizing all happen in one continuous loop. That is the category that was missing, and it is the one worth leading.",[368,369,375,376],"video",{"className":370,"autoPlay":373,"loop":373,"muted":373,"playsInline":373,"ariaLabel":374},[371,372],"w-full","rounded-lg",true,"The loop in action: query, shape the schema, and watch the graph update live, with no export step.","\n  ",[377,378],"source",{"src":379,"type":380},"/images/resources/blog/graph-tooling-gap-demo.mp4","video/mp4",[317,382,384],{"id":383},"what-end-to-end-actually-means","What end-to-end actually means",[310,386,387,388,391],{},"End-to-end is not \"we also ship a graph view.\" It is this: point at your data, including the relational data you already have, build and rip up a schema as fast as you can think, ask the question, see the structure, change the question, and watch the picture move with you. No export, no second tool, no afternoon spent being the glue. It is the ",[337,389,390],{},"hypothesis-and-experiment loop"," the field described more than 25 years ago, finally living in one place instead of being stitched together by the analyst.",[310,393,394],{},"The graph was never the hard part; the missing piece was the platform to actually use it.",[310,396,397,398],{},"It exists now. See it working on real connected data. ",[399,400,404],"a",{"href":401,"rel":402},"https://demo.graphpolaris.com",[403],"nofollow","Watch the demo →",{"title":406,"searchDepth":407,"depth":408,"links":409},"",2,3,[410,411,412,413],{"id":319,"depth":407,"text":320},{"id":329,"depth":407,"text":330},{"id":352,"depth":407,"text":353},{"id":383,"depth":407,"text":384},"2026-06-01T00:00:00.000Z","Graph tooling is two decades old. The reason looking at your own connected data still feels like manual labor is that every tool picked a side: store the graph, or draw it. Never both, never in a loop.","md","/images/resources/blog/graph-tooling-gap.svg",{"author":419,"type":420},"Hans De Leenheer","insights","/blog/graph-visualization-tooling-gap",{"title":301,"description":415},"blog/202606.graph-visualization-tooling-gap",null,"ihEUN4yOAwk68237mGUhWRqTxQnXVOfS0vAUIqu2YSs",[427,424],{"title":428,"path":429,"stem":430,"description":431,"children":-1},"Your BI Gives Business Information, Not Intelligence","/blog/bi-business-information-not-intelligence","blog/202604.bi-business-information-not-intelligence","Twenty-five years after the paper that launched self-service analytics, the industry still has not delivered the Intelligence part. Generative AI is not going to rescue it either.",{"left":216,"top":216,"width":217,"height":217,"rotate":216,"vFlip":31,"hFlip":31,"body":433},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 9h16M4 15h16M10 3L8 21m8-18l-2 18\"/>",{"left":216,"top":216,"width":217,"height":217,"rotate":216,"vFlip":31,"hFlip":31,"body":435},"\u003Cpath fill=\"currentColor\" d=\"M20 11v2H8l5.5 5.5l-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5L8 11z\"/>",1780315705866]