I've been trying to figure this out through examples, but can't get confident about it. What is the difference between "etw ziehen" and "an etw (Dat) ziehen"?
PONS provides examples of "etw (Akk) ziehen" as being "to pull" in what appears the be the exact same usages as Linguee provides for "an etw (Dat) ziehen"
- den Choke/Starter ziehen
- das Kind zog die Tischdecke vom Tisch
- den Ring vom Finger ziehen
- Sie müssen an der Tür ziehen, um sie zu öffnen.
- Ich zog am Seil, bis es straff war.
(Side note, PONS also provides an interesting jdn an etw Dat ziehen as to drag someone to somewhere so the meaning of an etw Dat ziehen appears to change if you add a direct object as well.
My best guess is that etw ziehen is if you're applying force away from the object toward your body (horses pulling a carriage, you pulling a box of packed books along the ground) but an etw Dat ziehen is more if you're jerking it the same way, or applying an unusual amount of force (i.e., a door that is stuck, and you have to pull it beyond a normal "door pulling force" for it to open.)
This still doesn't entirely fit with den Choke ziehen above, but maybe this mirrors somewhat the difference between drücken and shieben for pushing? You would drücken something along its fixed path, but you'd schieben something in a more free direction, like pushing a kid on a bicycle or schieb ihn in den Ofen rein :)