In gen 3 the catagory a move is in is defined by its type i.e grass was special and poison was physical. Pokemon like sharpedo had a higher physical attack stat but could not use stab with it as both dark and water were special. Only gen 1-3 as that was before physical special split
(Please note: A Pokemon's name with a bullet point aside it means that the Pokemon can get STAB from the stat, but can't learn any STAB moves)
Hope this helps!