Consider the drop down menus for geography that we see in many sites. There is box. When we click on the box it shows a drop down menu of different countries. And we pick a country, a box below the first box appears and here a drop down menu of the states in the country we chose is displayed. And we choose a state, a third box appears showing the cities in the state.
This is a nice simple way of capturing precise information. The presentation includes a logical organization of data (countries, states and cities) in the backend and presentation for people to pick precise information led by the choices we make.
Lets take another example of representation of information - maps. Here the representation is not hierarchical but also graphical. We can see the cities, also see cites nearby. We can zoom in and zoom out to see cities in other countries and states. Make inference on the distances between different cities.
Like this data can presented in different ways. And how they are presented depends on the purpose we want to achieve and the nature of data itself.
In the case of Skills we do not have just a hierarchical construct but also a graphical construct. This means that an entity is a like a person. A person has ancestors, children and grand children. A person also has relatives - cousins, nephews, nieces, uncle aunts. A person also has friends.
And they then could be having similar relationships with others entities.
We need to organize the skills considering these complexities yet keep it simple for the frontend users.