How Intellectual Property Rights Apply to Software