A positive way to describe a know it all

Solution 1:

I haven't been able to find a single word that positively describes someone willing to correct others in conversation, but meticulous is a good adjective for someone who cares about details and correctness.

You could combine it with a noun describing what the person is particularly knowledgeable about, e.g. a meticulous grammarian or a meticulous fact-checker.

Solution 2:

A guru on everything, a modern oracle, a smart man's man?

Solution 3:

Erudite is close though it does not have all the connotations you ask for (you are asking for quite a few):

adjective

having or showing great knowledge or learning: Ken could turn any conversation into an erudite discussion.
She was very erudite.


Another possibility is the term Renaissance man:

Renaissance man n.
A man who has broad intellectual interests and is accomplished in areas of both the arts and the sciences.

Solution 4:

Perhaps sage

One venerated for experience, judgment, and wisdom

Solution 5:

What about brainiac? It lists it as being "sometimes derogatory", but I usually hear it as an affectionate term, especially for someone younger than the person speaking.

Noun:

brainiac (plural brainiacs): (slang, sometimes derogatory) a very intelligent and usually studious, erudite person.

Edit:

I can't actually think of a time I've heard it used in a derogatory manner. I'm not really sure how to use it in such a way without it sounding weird.