In this thesis we present a range of different knot theories and then generalise them. Working with this, we focus on biquandles with linear and quadratic biquandle functions (in the quad- ratic case we restrict ourselves to functions with commutative coefficients). In particular, we show that if a biquandle is commutative, the biquandle function must have non-commutative coefficients, which ties in with the Alexander biquandle in the linear case. We then describe some computational work used to calculate rack and birack homology.