How a software patent attorney protects abstract ideas