Ontology Is Overrated: Categories, Links, and Tags (2005)
shirky.com
shirky.com
When done correctly, ontology combined with knowledge graphs can make an impractical problem much more practical. Consider for the moment the problem of 'fake news'. What characterizes 'fake news' is that it has facts or concepts that are not in alignment with "true" facts (authoritative). And without getting into the debate of what is and isn't true, you can take a document, a knowledge base populated with trusted facts, and a topic ontology and score that document for alignment with the existing data set. Whether you use that for checking Wikipedia articles or flagging fake news its a very powerful combination.
You might be able to say that fake news doesn't align with true facts that aren't part of the facts being reported as news. That is you can tell that "the color of the sky unexpectedly changed from green to yellow yesterday" is fake news, but you can't use true facts to tell that ""the color of the sky unexpectedly changed from blue to yellow yesterday" is fake news. (I mean, yes, you might still use true facts about atmospheric composition, light scattering, and the spectrum of solar output, but you can't use "the sky is blue".)
If you get 5 streams of bits and four of them correlate with some epsilon number of new bits, and the fifth has 10x epsilon new bits, one of things is likely true. Either the odd stream out is corrupted or the stream has changed.
Apply that to news stories where the ontology (O) and knowledge graph (KG) are combined to "error correct" the content of the story. "Error bits" would be defined as relationships that don't match what the ontology says can be true, or facts that are different than those facts already in the knowledge base. You can flag the odd news story as lacking alignment with the existing KG&O, further you can quantify that lack of alignment fairly precisely.
So if the news story has 0 bits of information it correlates very strongly with other existing stories. If it has many bits of information it contrasts with other existing stories. At some number of stories on the same topic you can begin to reason about which are more likely 'true' and which are more likely 'false.'
To suggest a specific example, imagine a person living inside WWII-era Germany correlating a propaganda news article with every other news article they have read, all of which are also propaganda. Correlation-based news epistemology isn't even based on a prevailing social consensus, it's based on the consensus of broadcasters.
If we had a system like this that worked, we could at least leverage it to be able to quantify the coherence of a much larger set of inputs and with many controlled corpora at once.
It also fails when there are few streams to compare, as when a new story first breaks. Or when there is coordination of actors.
My suggestion is not that it is fail safe or perfect, only that is a useful application of an ontology which disputes the original author's thesis that they are overrated.
All of these things are hallmarks of fake news: it is claimed to be new (hence "news",) is not published very widely (you can't compare a aquariusrising.biz article on Green Space Aliens to a CNN article on the same, because there isn't a CNN article on that), and it's usually coordinated between copycat opportunists. Even worse, none of these things are distinguishable from a grassroots report unless you know the true news a-priori. This better not be a mechanism to ban everything that isn't on CNN.com.
This comment reminds me of another Shirky essay [1]. He says:
> [This is] the pattern for descriptions of the Semantic Web. First, take some well-known problem. Next, misconstrue it so that the hard part is made to seem trivial and the trivial part hard. Finally, congratulate yourself for solving the trivial part.
The difficult part is figuring out exactly what is and what isn't true. If we had a perfect map of reality it would be easy to detect fake news. In fact we wouldn't need any news at all or journalists or anyone else except the people who build the ontology.
[1] http://www.shirky.com/writings/herecomeseverybody/semantic_s...
It does amuse me how much this framing of problems happens. Both in the annoying cases of arm chair quarterbacks, and in the cases of folks that take on problems previously thought of as too difficult.
If that is indeed your argument, it is remarkably similar to the argument "Perfect security is impossible, this system is worthless." I think it is demonstrably obvious that there is a related parameter in both cases, which is the cost of overcoming the system is greater than the gain from overcoming said system.
As an example of how that argument fails in practice, consider textbooks. When I was working on this problem full time the organization had a relationship with a major publisher of textbooks. Consider the system which can construct an ontology and knowledge graph based on the contents of a text book. It may not be 'true' in the Aristotle sense, but it is an effective tool for evaluating whether or not a paper or essay correlates that ontology and knowledge graph or doesn't. In such a system there is value in evaluating the extent with which the knowledge in the textbook has been communicated to the person writing the essay.
Being able to automate the analysis has other benefits as well which extend beyond flagging documents which disagree a previous established canon.
Nice try, but this is missing the whole point. This is the crux of the matter and the problem with the category of "fake news", and precisely why this ontology is garbage.
The fact that you can read about the same topic in several (more often opposing) ways is already a reason to red-flag the piece in the first place. This isn’t readily available through any of the current newspapers. Everyone has an opinion.
I would happily pay for an aggregator that simply ejects facts (stated facts, not truths) from the stories. Then combines that with similar other pieces.
There is already the AP news ticker, or Reuters. Bloomberg has the same thing for financial matters. If you read only that, you will die of boredom.
Would you otherwise prefer to read Russian propaganda speaking of German authorities policing Germans of Russian heritage? Because that's exactly what they are currently doing.
0 facts, amazing opinionated narrative in multi-paragraph form. Pictures on top of that. But that definitely sounds more fun. Moreover - that sort of narrative is way closer to the general sentiment of the working classes who are generally predisposed towards learning about how "the Man" is taking advantage of them in the first place.
The only narrative is the selection of what facts to report. Without that you get lost in the deluge and get equally uninformed.
As a disclaimer, we tried to get this model off the ground in YC summer 2017 batch but were rejected after the phone interview. I did not assist in the research; only an effort to publicize.
I whole-heartedly believe this is our best bet at combatting "fake news" online for the moment. Taking the lessons of "The Most Human Human: What Artificial Intelligence Teaches Us About Being Alive" [2], we might tease out credibility instead of fact or fiction to help guide our biased/opinionated labels.
From the abstract:
"In other words, the language used by millions of people on Twitter has considerable information about an event’s credibility. For example, hedge words and positive emotion words are associated with lower credibility"
[1]: https://credcount.com/whitepaper.pdf
[2]: https://www.amazon.com/Most-Human-Artificial-Intelligence-Te...
Ten years ago, I would have said that this would not happen within 20 years, but now I am much less certain, due to a couple of profound breakthroughs: word embeddings (Glove etc), and their famous linear analogies, and sense disambiguation.
These have not only been achieved in the emergent "look how amazingly bizarre" sense, but have over the last few years gotten a much more rigorous footing: notably the papers:
[1] Linear Algebraic Structure of Word Senses, with Applications to Polysemy (RECOMMEND reading both first and last version, as some things are more lucid in the first version, and some in the last. The main takeaway is that the word vectors are linear combinations of a low number of sense vectors, and these sense vectors can be recovered by sparse coding)
[2] Towards Understanding Linear Word Analogies (Which finally explains the "king" + "woman" - "man" = "queen" phenommena)
Now consider physics for example, running text and equations, then consider
* an "overscored n": is this 1) normal vector or 2) an antineutron or 3) ... ?
* a greek beta symbol: is this 1) v/c as in relativity 2) kT as in thermmal or statistical physics or 3) ... ?
* an e symbol: is this the exponent function, or the electron or ... ?
With today's tools it should already be possible to make this: type a LaTeX formmula, or perhaps even a picture of a formula, then mouse-over an ambiguous symbol to see the sense of the symbol, or alternatively generate a wikipedia style list: "where ... is ..."
It should be possible to do this for math as well, and pretty soon software should be able to formalize quasi-formal mathematics books, papers, derivations, proofs ... into MetaMath, and the beautiful part? MetaMath contains the ground truth upon verifying so it can keep training the formalizer while formalizing without supervision! The verifier will become the supervisor!
Of course MetaMath will not tell you if your postulates and axioms are correct, but it will check if your reasoning is sound. The axioms or postulates will be what characterize the belief systems, and any rammifications or inconsistencies will be linked to in the "belief package" managers so that whenever you encounter a formalized claim you can then reply with how the claim does not follow in your own belief system, and it will hence become netiquette to not just share vague claims, but formalized ones and not just formalized ones but accompanying a reference to the claims proof and in which belief systems they hold, it will become much easier to identify exactly where people who disagree with you differ in assumptions or axioms, and hence easier to collaborate on identifying inconsistensies in the endless stream of forked belief systems to avoid being filtered by the reader's or platform's access to gossiped inconsistency proofs...
A corollary is that the semi-crackpot semi-true realpolitik interpretations from the lower regions of society will force the higher regions of society to either formalize explicit injustice and oppression, or else democractically cede the definition of the boundary between just and unjust to the populace, so that we can have a formalized egalitarian society...
Just like the printing press democratized communication, machine learning and formalization will democratize interpretation.
On top of that what might be considered fake news by some doesn't have to be by others because it might have utility.
And lats but not least. Combatting fake news would mean that you would be able to cover all contextual interpretations of a given statement which we simply don't have access to.
So from my perspective you can't battle fake news in any meaningful ways which won't end up doing more harm than good as "fake news" is not really fake in some objectively defined way.
Do you have an example of this in mind?
It's a hard problem.
Someone with an agenda in the symbolic vs statistic AI question could take this parallel as an example of how close ontology-based AI approaches are to the way humans think. And then someone with the opposite agenda would point out that the example is all hypothetical.
I’ve followed this topic off and on for 20 years, and I’ve yet to see a big success. I’ve only ever seen this cycle:
1) Someone discovers ontology and rdf,
2) They implement some obvious examples,
3) They get hyped and tell everyone,
4) They try to generalize their examples to real-world problems,
5) They get silent and disappear.
Fake news is a great example of how sloppy categorization can end up being. Fake news is mostly about creating clickbaity stories which will make people share and thus increase advertising revenue, yet today most people think about it as some sort of political propaganda.
Reality is more nuanced than our categories allow us to explore and often times they are limiting our ability to think about the world around us.
Clays point sees to be that the value of information is not in categorizing it but allowing for new relationships to be made, which is exactly what ontology can often hinder.
If your ontology is probabilistic and multi-dimensional, it's much more likely to represent truth.
I actually think ontologies are a trap for smart people. For people who like to systematize, they have an allure. Ontologies give you the illusion of putting the chaotic world into order. Even phrases like "true facts" - in reality, facts are hard to come by and change over time, and the closer you look at them the more woolly they get - predicates are far too abstract and simplistic, and when you dig in, the fractal messiness overwhelms.
It allows you to tag and manage everything you're reading and the primary management metaphor is the 'tag'.
It's a central repository for all your reading. PDFs, web content, and it supports annotation (highlights, comments, etc).
There are a bunch of clear wins here.
Related tags are awesome. You can build a bunch of really nice derived metadata just by managing your tags on the documents.
For example, I've been reading a lot about growth hacking as I'm trying to get Polar to 100k users. (We're officially 10% of the way there today!)
Since I have a bunch of documents named 'growth' Polar recommends startups, venturecapital, and marketing as secondary tags.
Also, since Anki supports tags (and Polar supports Anki sync) these systems are compatible.
Polar tags are also Twitter tags. While we haven't enabled this feature yet your annotations could be exported to Twitter and the systems are compatible.
We're still getting users that want hierarchy though. I'm not sure what I want to do here.
I'm considering building out algorithmic hierarchy.
For example, if you have two documents with the first tagged 'tech, microsoft' and the second tagged 'tech, linux' we can infer that tech is the parent of 'microsoft' and 'linux'
... and it would still support tags.
the problem I have now is that folder hierarchy is still being requested by our users but I'm resistant to implement it yet.
You're at the mercy of a search engine's implementation and index foibles for finding things through search queries.
A hierarchy maps onto our spatial memory, which we use to figure out where we've been and go back to it.
There's a lot to be said for maintaining spatial metaphors in information space.
Another little detail here is that spatial organisation (in meatspace) is a shared environment. A single 'shared' ontology is useful even if it's nonsense, because it's still a shared frame of reference in which navigational directions can be shared.
I clarified that there's a workaround to give hierarchy.
Have you considered hierarchical tags?
As an example:
https://dmitryfrank.com/projects/geekmarks/article
I use it for my bookmarks, and I find it is a suitable balance between having some kind of hierarchy, while allowing for resources to be classified under several categories.
How do you account for the availability effect [0]?
To use your example, let's say that I tagged a document 'tech, microsoft' and the second is tagged 'linux, tech', because of the availability effect -- it's been a long time since I tagged documents causing me to add the 'tech' tag as an afterthought rather than as the first tag?
Better to keep things simple.
This is what I see: https://archive.fo/rZchC over time: https://archive.fo/http://www.shirky.com/writings/ontology_o...
What browser and OS are you using?
Interestingly the wayback-machine snapshot is not affected: https://web.archive.org/web/20190123000016/http://www.shirky...
After digging a little it seems like the redirection is happening server side (302, 0 bytes e.g. not JS) and its controlled from a malicious site called google-static(.)com, if anybody wanna investigate this further it's this one:
http://google-static.com/search/?niche=unknown&page=http%3A%2F%2Fshirky.com%2Fwritings%2Fontology_overrated.html&h=shirky.com&p=%2Fwritings%2Fontology_overrated.html&ref=https%3A%2F%2Fwww.google.co.uk%2FBoth Ontology and Tagging have their place. The net is vast and infinite, sometimes it's nice to have a map.
For example if you're looking for the population of New York between 1850 and 1950, you would see a potentially dramatic shift of the population around the turn of the century, which would be misleading if you didn't already know the caveat about the consolidation of the city in 1898.
However that shouldn't discourage the tagging of data by city. It just means that a city, as metadata, is no more or less functional than country, as the grandparent comment suggests.
For example, take the locations used in time zone databases, where an official way to name a location is something like America/Los_Angeles. The assumption is that major cities don't get split across time zones and users know which cities they are nearby that they share a time zone with. Country names aren't used.
A lat/long pair would be more precise, but sometimes precision isn't needed.
I find this a strange assertion after several paragraphs which vociferously assert hierarchies are redundant in the virtual space. In fact, OS/400 is a 'single-level' store using objects, so it has even been shown in practice that you do not need filesystems to build a useful OS, if I am not mistaken.
Am I mistaken?
Another example is the Windows Start Menu. The hierarchy is basically useless and a huge pain to use. I have give up on maintaining a sensible hierarchy long ago. Windows 10's search is much better, except when it fails you're forced to go back to the hierarchy. One thing missing here is that you can't navigate from a search result to the hierarchy.
Two thoughts pop into my mind which guide me gently to the conclusion we need to be careful here.
1) every configuration is a set of trade-offs
2) any parameter or paradigm pushed to extreme produces perversion
On point number 1: categorization contains the benefit of discoveribility when you lack the information necessary to form the search query in the first place.On point number 2: search forces you to generate the query and direct your attention towards a given subject. However, some of the most important discoveries you have ever made in your life were when other people held your attention in conversation and kindly directed it in a direction it wasn't going but that arrived at an illuminating destination.
We need all implementations to some degree to get all possible benefits. I suspect this is why suggestion algorithms have flourished but in doing so they create echo chambers because they are a charicature of yourself bending your own ear.
If only algorithms could suggest what you needed to hear and not what you wanted to hear.
Some books I have bought at my local bookstore I never would have found on Amazon. It's amazing what being able to direct our own attention and have the world organized in exactly that way has done for us, and it is equally as amazing as the paths we are lead down when we let other people direct our attention.
Imagine if Google made you answer the question "Why?" five times before it showed you results. I wonder if a well trained network would produce such accurate results we would no longer need to see a list of results, and could simply hit the lucky button.
But good luck finding a user who's willing to answer "Why?" five times rather than brute-forcing a search engine into their "echo chamber," as you accurately described it.
My caution is that we have found the equivalent of cheap, fast, microwavable meals and we are now consuming them almost exclusively and in 15 ~ 20 years it's going to become painfully obvious what deleterious side-effects arise as a result of that. We can't see it now, so we don't feel the need not to do it, and that simply is what it is, but in time it will act as a control signal that nudges us to modify our behavior.
This is both a great and terrifying time to be alive. The 20th century was full of some pretty hefty social experiments and the thing with those were they were obvious and in your face. The 21st century versions are much less obvious and reveal themselves very slowly.
I've been thinking lately of how to remedy that and this post came up at just the right time to get the mind juices flowing. At a high level I see a decentralized community that doesn't rely on forums/tribes/subreddits and incentivizes tagging like old school del.iciou.us. This enables higher chance of cross pollination and less group think. I could really see it working well with some flavor of ethereum/ipfs/incentives.
Something something, everything is in cycles? Hah.
People seek a payoff. Even if you have some interconnect, that forces patterns of use, why are they crawling through your pipes?
For example, why is it not easy to add an "onClick" event handler method to a particular button in a Java GUI? One has to use lambdas instead. Attempts to reorg the GUI engine to remedy such create side-effects. Java's OOP model is simply not powerful enough to do GUI's naturally. Conway's Law seems to apply to domain structures as well. Fit matters.
Something like Lisp allows one to create behavior-containing "structures" that are customized to a domain or need, but can get too confusing. Lisp can easily get too hard to read and follow for most mortals, and is why it never became mainstream despite being around for 60-ish years.
We need something in between traditional OOP and "full meta".
I increasingly advocate F#, and many people recommend Elixir for these purposes too (though I'm not familiar with it myself).
The only real trick is to use delegation patterns instead of inheritance, i.e. dispatch requests to class members rather than super/subclasses.
It doesn't feel awkward or unnatural.
Then you could easily answer:
A) Show me all the GUI event handling code for all buttons. B) Show me all the event handling code for Form X. C) Show me all the event handling code for all buttons within forms having at least one drop-down list.
Similar goes for executing code (running business logic), not just code inspection. Then one doesn't have to crawl object graphs as often. Early databases did graph crawling, but then Dr. Codd showed a better way, and graph-DB's mostly withered. I'm waiting for the Dr. Codd of code and behavior dispatching management to come save the day.
I'd like to explore using relational modelling for behavior, not just attributes (data). I used to do such in xBase (dBASE, FoxPro, etc.) because of its dynamic nature and ease of editing tables, including code in tables. I thought that direction was the future, it looked bright to me. Then OOP came along and killed the seeming birth of table-oriented programming.
(It might seem like a security risk to put code in tables, but the difference between a file system and database are not different enough to say putting them in a database is "bad" while putting them in a file system is "good". I'd like to blur the distinction between a file system and database, but maybe that's a diff topic. Plus, one doesn't necessarily have to put code "in" the tables, just references to it in tables. One just needs a system/convention to track and map each to the other.)
Lack of pointers. An event reference is a double pointer: to the method and to the object that is "self" or "this" for the execution of the event handler. Since they refused to have pointers in the language, they devised that convoluted solution.
(One problem with traditional RDBMS and GUI's is that different widgets need a variety of similar and often overlapping attributes {columns}. It's not realistic to have a table dedicated to each widget "type". Thus, I propose using "dynamic relational" instead, in which column existence is optionally situational.)
It's "sold" as enabling extensibility and code reuse, but the only feature it adds to good old-fashioned composition is 'open recursion' a.k.a. late binding, which inherently leads to the "fragile base class" problem-- making behavior of base-class implementations dependent on preserving complex and generally unspecified invariants in the derived classes - so it's basically never what you actually want!
Full-blown OOP (including implementation inheritance and polymorphism) doesn't work. It's a terrible idea that only ever became popular because we didn't quite grok its implications.
"Female Viagra UK, Buy Viagra - Online Pharmacy, Best Offer"
When pasting in a notes app. Couldn't tell if it was an inside joke with regards to the subject matter.
> This piece is based on two talks I gave in the spring of 2005 -- one at the O'Reilly ETech conference in March, entitled "Ontology Is Overrated", and one at the IMCExpo in April entitled "Folksonomies & Tags: The rise of user-developed classification." The written version is a heavily edited concatenation of those two talks.
https://www.google.com/search?source=lnt&tbs=cdr:1,cd_min:1/...
The problem with the thesis is that just because classical ontology doesn't work for the entire internet, doesn't mean that we can't apply it in many domains.
Formal ontology could be used very well in a variety of areas.
Informal, or less concise ontology again in many areas.
And leave tagging for the rest.
The point being - more rigorous methods can definitely be valuable in areas, and I don't think it's a good idea to ignore this fact.
It's a bygone issue because there wasn't a critical mass in place to make it work, but there could be.