It is never wrong to answer "I'm going camping, I have a hatchet" or "I'm going camping, I have a 5" folding knife" rather than just "yes" or "no" when you are asked a question like that verbally, by a person at your car window.
If you are filling out a form, you can check Yes and write under that what it is. I do this all the time with the Food question, writing "Candy" if that's what I have, for example. No border guard has ever complained. I think they actually like it because it saves them a step.
If you are using a computer terminal and have no opportunity for freeform answers, then in case of doubt, say yes, take the time hit, and let them establish that it's not a problem. As a bonus, when your secondary inspection is complete, you can ask them what to check for that item next time.
Here's one way to look at it: if you say Yes when No was the correct answer, you will spend perhaps one minute extra when someone says "what is this weapon you say you have" "a hatchet, I'm going camping" "oh dude, that's not a weapon, do you have like a gun?" "no" "ok, have a nice day" or possibly an extra 20 minutes waiting in a line and getting asked 5 or 6 questions before they agree a hatchet isn't a weapon. But if you say No when Yes was the correct answer, and for some reason they search you and find the hatchet, you could be denied entry -- and possibly not just on this trip but for a year or more, since you "lied to a border office" or "lied on your form". You could in theory be arrested for smuggling. These are unlikely, but they are so much worse than a little extra time at the border crossing saying Yes to something they don't actually think is a weapon. There is no penalty for being over cautious, but there's a huge one for trying to hide something.