Eine Bibliothek stellt Dir eine Menge an Funktionen zur Verfügung und überlässt es Dir, wie Du sie nutzt und wie Du dein Programm strukturierst.
Ein Framework ist eine Sonderform einer Bibliothek: es gibt Dir auch die Struktur vor, wie Du dein Programm bauen musst, damit die darin enthaltenen Funktionen sinnvoll funktionieren (z.B. dass Du bestimmte Prototypen für Objekte verwenden musst, oder dass Du überhaupt Objekte für bestimmte Aufgaben verwenden musst (Model, View, Controller, etc).
jQuery ist eine Bibliothek.
Knockout oder Angular sind Frameworks (wobei Knockout ca 1% des Volumens von Angular abdecken dürfte :) ).
Rolf