patent software