I have no solution to propose, but it looks like you need a graph database, vs a more traditional relational database. Independent tools used in different orders and situations. There are several versions of graph databases, but as I have no need I've not researched them.
Graph databases have nodes and edges. The edges allow you to define relationships between nodes, in a much more organic way. Your graph database can then be rendered in a 3d model, which is always cool to see. You should still be able to do a linear keyword search when you wish a specific node/skill.
Don