Paten perangkat lunak
Paten perangkat lunak saat ini masih merupakan kontroversi, dan belum ada konsensus mengenai definisi dari paten perangkat lunak. Hal ini terjadi karena sering klaim untuk sebuah paten mengandung elemen yang melarang implementasi paten tersebut dalam berbagai media (misalnya, invensi dapat diimplementasikan berupa rangkaian elektronik, tetapi dapat pula diimplementasikan sebagai perangkat lunak), sehingga sulit untuk ditarik garis batas yang jelas antara apa yang termasuk paten perangkat lunak, dan apa yang bukan.

FOLDOC mendefinisikan paten perangkat lunak sebagai "paten yang dimaksudkan untuk menghalangi orang lain untuk menggunakan suatu teknik pemrograman". Namun definisi ini belum diterima secara universal.

Pokok kontroversi 
Pendukung paten perangkat lunak mempunyai argumen antara lain:
 Perlindungan invensi perangkat lunak akan mendorong investasi pengembangan perangkat lunak
 Paten akan membuat invensi menjadi pengetahuan umum, sehingga dapat mendidik penemu lainnya.
 Perbedaan antara perangkat lunak dan bukan perangkat lunak adalah artifisial, keduanya membutuhkan investasi.
 Jika perangkat lunak dianggap tidak dapat dipatenkan, maka akan ada banyak tipe invensi lainnya yang kehilangan proteksi paten
 Organisasi mempunyai hak untuk melindungi kekayaan intelektual yang dimilikinya.

Penolak paten perangkat lunak mempunyai argumen antara lain:
 Dalam praktik, dalam sejarah paten tidak pernah diperlukan untuk mendorong invensi dalam pengembangan perangkat lunak.
 Perangkat lunak secara fundamental adalah tentang pengembangan sistem, dan bukan merupakan gagasan individual
 Dalam praktik, sebagian besar paten yang diberikan tidak memasukkan "langkah invensi" yang signifikan.
 Penggunaan jalur hukum adalah sangat mahal, lambat dan tidak dapat diprediksi
 Paten perangkat lunak meningkatkan risiko bisnis yang menghambat investasi

Kekayaan intelektual