I am looking for the difference between the two - dont both do the same job iei classify the articles and the access to them?
I will take a stab at a non technical way to think about it. Article types are used to define different kinds of articles, from a simple FAQ to a complex procedure including the fields available and layouts to use per channel the article might be viewed in. As you rightly noted you can control visibility of article types at a user profile level or via permission sets.
When you search the knowledge base data categories come into play. search results can be refined to more relevant results quickly using data categories. For example, if you had 10000 faq articles on Italy, your profile might have access to those 10000 articles because your user profile permits you to see faq's. Using data categories at an article level, you attribute categories of 'north' (geography data category), 'accommodation' ( type data category) and 'summer' (season data category) to a particular article. If you filtered the faqs by one or more of these categories you'd quickly zero in on the relevant article for summer accommodation in northern italy.
Making more sense ?