XML as a Stop-gap Measure
The first attempt at helping computers understand semantics was to create a method for describing things to computers. It was called XML and it helped people mark up things like “Hung Up by Madonna” like this:
<song>Hung Up</song> by <artist>Madonna</artist>
To a computer, this means that there is a song called “Hung Up” and an artist called “Madonna”. Great! Problem solved, right?! Unfortunately, this meant that somebody would have to create a language for describing things. XML was so free form that it was easy to create these languages, but incredibly difficult to agree on which language to use when describing songs and artists. Add to this in-fighting, corporate greed, and a healthy flame-war or two and you get 10 XML languages that all describe the same thing in different ways.
So, how do you get people to agree on one language?