4 ms·
A good question! In a simple analogy its a bit like where neural networks were not very long ago, a nice idea with potential but wasn't quite there, many said
by mehh 8y ago
A good question!
In a simple analogy its a bit like where neural networks were not very long ago, a nice idea with potential but wasn't quite there, many said it was a dead end. Some technology simply takes longer to mature, or is dependent on missing bits of the puzzle to emerge before they can be properly utilised.
So what are these 'missing bits':
1. Ease of use, RDF, Semantics, description logic, OWL, Ontologies, Controlled Vocabularies, Taxonomies, Turtle (the supposed easy to read format), JSON-LD etc have a steep learning curve and no good non academic path to adoption. It takes a good amount of effort and time to see why this is useful. Its not the sort of tech a developer is going to have a crack at on his next project, and if they did they would fail and then reinforce the impression that it doesn't work. Even some of the fundamental principles are hard for many developers to get their head around, i.e. Closed World Assumption vs Open World Assumption (CWA is a problem I see so often by devs outside in general when dealing with data).
2. Tools, helps with the above, but also the options for a decent open source triple store that support the operations you need has been challenging. Then trying to run this operationally in the time of the Cloud is a ball ache most don't want. AWS Neptune possibly helps with this, otherwise I would recommend Blazegraph. Hmm and then there is creating a Ontology yourself, Protege which is mehh but free, or Topbraid which is expensive and meh! Programming language support, it is assumed you will do al your work in Java, if not good luck. Tools and libraries are not well maintained in general, large due to academic funded rounds of work, people move on, lots get abandoned.
3. Obvious gaps in the tech, for example one that SHACL has filled, also rules which arguably SWRL is filling, all a bit ad-hoc and takes years to get consensus, I'm sure there are others that I haven't hit and that in itself is a worry.
4. Understanding problems this tech is good for. Personally I think the Semantic Web, as described in general, isn't very practical and seems to mask what the tech is good for. Which again in my opinion is Enterprise Data Integration. Joining up lots of different data sources into something well defined (tends to be really poor semantics in traditional DBs), which is particularly a problem in conglomerates. Bringing together data from many places, and mapping them together means you don't need to go out and make everyone agree to your standard model.
I'll now give some hand wavy ideas:)
Its often said this is for machines to communicate and make decisions which is correct, not sure RDF on web page is particularly useful in this context, APIs are. So much labour goes into connecting one API to another API, there is no discovery or means of a machine understanding what the data comes in actually means, nor would it with the current approach to having a son blob, and a page of documentation that poorly describes it. I think there is a massive opportunity here, and if it is solved it would dramatically disrupt how backend engineering works.