В наши дни множество людей жалуется на паршивые патенты на программное обеспечение (ПО). А а говорю: «Прекратите жаловаться и начните уничтожать их». У меня заняло приблизительно 15 минут времени, чтобы предотвратить подтверждение одного дрянного патента Microsoft. Есть 15 минут? Можете тоже сделать это.
Через минуту я расскажу вам эту историю. Но сперва — подоплёка этого дела.
Разработчики ПО, в действительности, не изобретают очень много. Количество фактически новых, не очевидных изобретений в индустрии ПО, которые в некоторых областях заслуживают предоставляемой государством монополии, возможно равно двум.
Остальные 40 тыс. странных патентов на ПО, выдаваемые каждый год, по большей части — мусор, который любой работающий программист может «изобрести» три раза перед завтраком. Большинство выдаваемых патентов на ПО не являются «изобретениями», в том смысле, в котором большинство людей понимает это слово. Это простые вещи, которые любой студент-первокурсник изучающий Java, должен сделать как заданную домашнюю работу за два часа.
Тем не менее, множество компаний, больших и малых, поняли, что патенты стоят денег, и они пытаются зарегистрировать так много патентов, как смогут. Они полагают, что смогут получить большую кучу патентов, как недорогой побочный продукт работы (которая всё равно должна быть выполнена) отдела исследований и разработки (R&D), просто послав несколько юристов пробежаться по комнатам и поспрашивать программистов над чем они работают, и затем попытаться всё это запатентовать. Почти всё, что они найдут является либо очевидным, либо уже сделанным до этого, и таким образом не подлежащим патентованию. Но они используют низкие уловки, чтобы провести это через патентное бюро.
Первая техника, которую они используют — это сделать язык изложения патента сбивающим с толку и запутанным, насколько это возможно. Это действительно усложняет экспертам идентификацию прототипа (prior art) или оценку, если изобретение очевидно.
Приятный побочный эффект от составления малопонятного патента — это то, что он скорее работает как ловушка нарушителей патентов. Многочисленные владельцы патентов, особенно «патентные тролли», в действительности не хотят, чтобы их патенты не нарушались. Очень часто они хотят, чтобы вы нарушили их патент и построили на его основе большой бизнес, а только потом обнаружили это, и таким образом оказались в наиболее плохой, с юридической точки зрения, позиции и могли быть успешно шантажированы ими. Чем труднее прочитать патент, тем вероятнее он будет нарушен.
Вторая техника для получения плохих патентов на ПО — это использование тезауруса. Часто заявители патентов изобретают новые термины для описания хорошо известных вещей. Большинство экспертов ищут прототипы, используя поисковые инструменты/системы. Они вынуждены. Ни один эксперт не может быть осведомлен о более чем (округляя к ближайшему целому) 0% прототипов, которые могут отклонить заявку.
Так как эксперты сильно полагаются на поиск по ключевым словам, то если при подаче заявки вы сможете изменить некоторые из ключевых слов в вашем патенте, чтобы они отличались от всех остальных, уже использованных, то сможете провести свой патент, даже если он явно основывается на существующем [чужом] прототипе, потому что используя неестественные придуманные термины вы делаете поиск прототипов значительно труднее.
Теперь о третьей технике. Вы когда-нибудь видели заявку на патент, покрывающий широкую до нелепого область? («Боже, они пытаются запатентовать движущееся средство!»). И вот почему. Заявка преднамеренно «растянута», то есть, присутствует стремление получить наиболее «широкий» патент, зная, что в худшем случае эксперт сузит их притязания до тех, что они в любом случае получат.
Позвольте проиллюстрировать это простым, насколько смогу, примером. В основе патента лежит список притязаний: вещи, которые вы заявляете изобретенными вами, и на которые получите монополию, в случае подтверждения патента.
Например, представьте простую заявку с этими тремя притязаниями (иначе — патентной формулой):
1. Средство передвижения.
2. Средство передвижения из п.1, где двигатель соединен с колесами.
3. Средство передвижения из п.2, где двигатель работает на воде.
Обратите внимание, что пункт 2 ссылается на пункт 1 и сужает его. Другими словами, он претендует на ограниченное множество вещей из пункта 1.
Теперь, предположим, что вы изобрели автомобиль, работающий на воде. Когда вы подаете заявку на патент, вы можете сделать это вышеуказанным образом, даже зная, что уже есть прототип (prior art) для «средства передвижения», и вы в действительности не можете притязать на все это, как ваше изобретение. Теория заключается в том, что
(а) эй, вам может повезти!
(б) даже если вам не повезёт и первый пункт будет отклонен, то остальные, более конкретные, останутся.
То, что вы наблюдаете, является рискованной игрой (однако в случае выигрыша дающей крупный куш), и вы вынуждены смотреть на более конкретные претензии, чтобы понять, что в действительности они ожидают получить. И вы никогда не знаете, вдруг патентный эксперт заснет за рулем, и — БУМ, вы получаете право вымогать деньги у всех, кто делает, продает или использует транспортные средства.
Так что всё равно большое количество паршивых патентов на ПО выдается ежегодно, и чем больше выдается, тем хуже приходится разработчикам ПО.
Патентное бюро было немного раздражено этим. «America Invents Act» изменил закон, позволяя общественности заявлять примеры прототипов (prior art) во время рассмотрения заявки на патент. Вот почему бюро патентов и торговых марок США попросило нас создать Ask Patents — раздел сайта Stack Exchange, где разработчики ПО вроде вас могут привести примеры прототипов, чтобы предотвратить выдачу всяких паршивых патентов.
Кажется трудным, не так ли?
Честно, я сначала думал, что это будет трудно. Будем ли мы способны даже найти уязвимые заявки? Забавно то, что когда я наугад выбирал из пачки заявок на патент на ПО, то пришел к выводу, что все они паршивые, и это сделало нашу работу гораздо проще.
Возьмём заявку на патент US 20130063492 A1, поданную Microsoft. Один из пользователей Ask Panents сделал запрос на прототип по этому патенту 26 марта.
Я попытался найти прототип для этой заявки на патент, просто чтобы узнать, насколько сложно это сделать. Сначала я прочитал заявку. Ну, если честно, я просто пробежал ее глазами. На самом деле я пропустил реферат и описание, и перешел сразу к притязаниям. Dan Shapiro написал отличную статью в блоге «Как прочитать патент за 60 секунд», которая научила меня как сделать это.
Текст был типично запутан, и использовались термины вроде «плотность пикселей» для того, что все остальные программисты в мире называют «разрешение», либо случайно (потому что юристы Microsoft не были программистами), либо, что более вероятно, потому, что запутывание усложняет поиск.
Не углубляясь в текст я понял, что этот патент по существу пытается сказать: «Допустим у вас есть картинка, которую вы хотите привести к другому разрешению. И допустим вы хотите иметь различные версии картинки для различных разрешений, тогда вы можете выбрать одну из версий картинки, наиболее близкую разрешением к требуемому, и масштабировать её».
Это не оказалось новым для меня. Я был уверен, что Win32 API уже имеет подобную функциональность. Я помнил, что это было обычным делом, обеспечивать разные иконки для разных разрешений, и, фактически, я был убеждён, что операционная система может выбирать иконку, основываясь на разрешении экрана. Итак, я истратил около минуты на гугление и, в конечном счёте (бинго!), нашёл этот интересный документ «Разработка DPI-независимых Win32 приложений [PDF]», написанный Ryan Haveson и Ken Sykes из, по случайному стечению обстоятельств, Microsoft.
И он был написан в 2008 году, в то время как новая заявка Microsoft на патент пыталась заявить, что это «изобретение» было «изобретено» в 2011. Бум. Прототип найден, и указан.
Общее потраченное время, может быть, составило 10 минут. Один из участников Ask Patents указал, что заявка на патент ссылается на нечто, называемое «серии масштабирований». Я не был уверен, что это предполагало означать, но я нашёл характерный раздел более раннего документа Microsoft, который демонстрировал это «изобретение» без использования этих слов. Итак, я немного отредактировал мой ответ, чтобы указать это. Вот мой полный ответ на Ask Patents.
Непостижимо, но кто бы ни был этот человек, разместивший запрос на прототип, он нажал кнопку «Принято» на Stack Exchange. Мы думали, что это мог быть эксперт по патентам, но он действовал с обычной учетной записи.
В тот момент я сразу же забыл об этом, до 21 Мая (два месяца спустя), когда получил это письмо от Micah Siege (Micah работает нашим экспертом по патентам на полную ставку):
Micah показал мне документ из Бюро патентов США, подтверждающий, что они отклонили заявку на патент, в значительной степени основываясь на документе, что я нашёл. Это было первое «подтвержденное убийство» от Ask Patents, и это было удивительно легко. Я не выполнял тяжёлой работы по изучению заявки на патент и тщательного подтверждения, что существует прототип — эксперт сделал это за меня.
В этом, однако, есть интересный урок. Заявки на патенты ПО являются однородно плохого качества. Для них удивительно просто найти прототип. Ask Patents может быть использован для их отклонения с очень малыми усилиями. И это отчасти индивидуальное истребление одной заявки на патент, за раз может сделать трещину в горах плохих патентов.
Я мечтаю, что когда большие компании услышат о том, как чертовски просто блокировать заявку на патент, они будут использовать Ask Patents против своих конкурентов. Как здорово будет, если Apple, Samsung, Oracle и Google попадут на Ask Patents в «мексиканское противостояние». Если каждая из этих компаний выделит три или четыре инженера на несколько часов в день для разборки с заявлениями на патенты от их конкурентов, то количество выданных патентов этим компаниям уменьшится вдвое. Не будет ли это что-то!
Есть 15 минут? Открой Ask Patents прямо сейчас и посмотри, не относится ли один из тех запросов к теме, о которой ты хоть немного знаешь, и напиши о примерах, которые сможешь найти. Они спрятаны в плоском списке; большинство прототипов можно найти в Google. Удачной охоты!
Через минуту я расскажу вам эту историю. Но сперва — подоплёка этого дела.
Разработчики ПО, в действительности, не изобретают очень много. Количество фактически новых, не очевидных изобретений в индустрии ПО, которые в некоторых областях заслуживают предоставляемой государством монополии, возможно равно двум.
Остальные 40 тыс. странных патентов на ПО, выдаваемые каждый год, по большей части — мусор, который любой работающий программист может «изобрести» три раза перед завтраком. Большинство выдаваемых патентов на ПО не являются «изобретениями», в том смысле, в котором большинство людей понимает это слово. Это простые вещи, которые любой студент-первокурсник изучающий Java, должен сделать как заданную домашнюю работу за два часа.
Тем не менее, множество компаний, больших и малых, поняли, что патенты стоят денег, и они пытаются зарегистрировать так много патентов, как смогут. Они полагают, что смогут получить большую кучу патентов, как недорогой побочный продукт работы (которая всё равно должна быть выполнена) отдела исследований и разработки (R&D), просто послав несколько юристов пробежаться по комнатам и поспрашивать программистов над чем они работают, и затем попытаться всё это запатентовать. Почти всё, что они найдут является либо очевидным, либо уже сделанным до этого, и таким образом не подлежащим патентованию. Но они используют низкие уловки, чтобы провести это через патентное бюро.
Первая техника, которую они используют — это сделать язык изложения патента сбивающим с толку и запутанным, насколько это возможно. Это действительно усложняет экспертам идентификацию прототипа (prior art) или оценку, если изобретение очевидно.
Приятный побочный эффект от составления малопонятного патента — это то, что он скорее работает как ловушка нарушителей патентов. Многочисленные владельцы патентов, особенно «патентные тролли», в действительности не хотят, чтобы их патенты не нарушались. Очень часто они хотят, чтобы вы нарушили их патент и построили на его основе большой бизнес, а только потом обнаружили это, и таким образом оказались в наиболее плохой, с юридической точки зрения, позиции и могли быть успешно шантажированы ими. Чем труднее прочитать патент, тем вероятнее он будет нарушен.
Вторая техника для получения плохих патентов на ПО — это использование тезауруса. Часто заявители патентов изобретают новые термины для описания хорошо известных вещей. Большинство экспертов ищут прототипы, используя поисковые инструменты/системы. Они вынуждены. Ни один эксперт не может быть осведомлен о более чем (округляя к ближайшему целому) 0% прототипов, которые могут отклонить заявку.
Так как эксперты сильно полагаются на поиск по ключевым словам, то если при подаче заявки вы сможете изменить некоторые из ключевых слов в вашем патенте, чтобы они отличались от всех остальных, уже использованных, то сможете провести свой патент, даже если он явно основывается на существующем [чужом] прототипе, потому что используя неестественные придуманные термины вы делаете поиск прототипов значительно труднее.
Теперь о третьей технике. Вы когда-нибудь видели заявку на патент, покрывающий широкую до нелепого область? («Боже, они пытаются запатентовать движущееся средство!»). И вот почему. Заявка преднамеренно «растянута», то есть, присутствует стремление получить наиболее «широкий» патент, зная, что в худшем случае эксперт сузит их притязания до тех, что они в любом случае получат.
Позвольте проиллюстрировать это простым, насколько смогу, примером. В основе патента лежит список притязаний: вещи, которые вы заявляете изобретенными вами, и на которые получите монополию, в случае подтверждения патента.
Например, представьте простую заявку с этими тремя притязаниями (иначе — патентной формулой):
1. Средство передвижения.
2. Средство передвижения из п.1, где двигатель соединен с колесами.
3. Средство передвижения из п.2, где двигатель работает на воде.
Обратите внимание, что пункт 2 ссылается на пункт 1 и сужает его. Другими словами, он претендует на ограниченное множество вещей из пункта 1.
Теперь, предположим, что вы изобрели автомобиль, работающий на воде. Когда вы подаете заявку на патент, вы можете сделать это вышеуказанным образом, даже зная, что уже есть прототип (prior art) для «средства передвижения», и вы в действительности не можете притязать на все это, как ваше изобретение. Теория заключается в том, что
(а) эй, вам может повезти!
(б) даже если вам не повезёт и первый пункт будет отклонен, то остальные, более конкретные, останутся.
То, что вы наблюдаете, является рискованной игрой (однако в случае выигрыша дающей крупный куш), и вы вынуждены смотреть на более конкретные претензии, чтобы понять, что в действительности они ожидают получить. И вы никогда не знаете, вдруг патентный эксперт заснет за рулем, и — БУМ, вы получаете право вымогать деньги у всех, кто делает, продает или использует транспортные средства.
Так что всё равно большое количество паршивых патентов на ПО выдается ежегодно, и чем больше выдается, тем хуже приходится разработчикам ПО.
Патентное бюро было немного раздражено этим. «America Invents Act» изменил закон, позволяя общественности заявлять примеры прототипов (prior art) во время рассмотрения заявки на патент. Вот почему бюро патентов и торговых марок США попросило нас создать Ask Patents — раздел сайта Stack Exchange, где разработчики ПО вроде вас могут привести примеры прототипов, чтобы предотвратить выдачу всяких паршивых патентов.
Кажется трудным, не так ли?
Честно, я сначала думал, что это будет трудно. Будем ли мы способны даже найти уязвимые заявки? Забавно то, что когда я наугад выбирал из пачки заявок на патент на ПО, то пришел к выводу, что все они паршивые, и это сделало нашу работу гораздо проще.
Возьмём заявку на патент US 20130063492 A1, поданную Microsoft. Один из пользователей Ask Panents сделал запрос на прототип по этому патенту 26 марта.
Я попытался найти прототип для этой заявки на патент, просто чтобы узнать, насколько сложно это сделать. Сначала я прочитал заявку. Ну, если честно, я просто пробежал ее глазами. На самом деле я пропустил реферат и описание, и перешел сразу к притязаниям. Dan Shapiro написал отличную статью в блоге «Как прочитать патент за 60 секунд», которая научила меня как сделать это.
Текст был типично запутан, и использовались термины вроде «плотность пикселей» для того, что все остальные программисты в мире называют «разрешение», либо случайно (потому что юристы Microsoft не были программистами), либо, что более вероятно, потому, что запутывание усложняет поиск.
Не углубляясь в текст я понял, что этот патент по существу пытается сказать: «Допустим у вас есть картинка, которую вы хотите привести к другому разрешению. И допустим вы хотите иметь различные версии картинки для различных разрешений, тогда вы можете выбрать одну из версий картинки, наиболее близкую разрешением к требуемому, и масштабировать её».
Это не оказалось новым для меня. Я был уверен, что Win32 API уже имеет подобную функциональность. Я помнил, что это было обычным делом, обеспечивать разные иконки для разных разрешений, и, фактически, я был убеждён, что операционная система может выбирать иконку, основываясь на разрешении экрана. Итак, я истратил около минуты на гугление и, в конечном счёте (бинго!), нашёл этот интересный документ «Разработка DPI-независимых Win32 приложений [PDF]», написанный Ryan Haveson и Ken Sykes из, по случайному стечению обстоятельств, Microsoft.
И он был написан в 2008 году, в то время как новая заявка Microsoft на патент пыталась заявить, что это «изобретение» было «изобретено» в 2011. Бум. Прототип найден, и указан.
Общее потраченное время, может быть, составило 10 минут. Один из участников Ask Patents указал, что заявка на патент ссылается на нечто, называемое «серии масштабирований». Я не был уверен, что это предполагало означать, но я нашёл характерный раздел более раннего документа Microsoft, который демонстрировал это «изобретение» без использования этих слов. Итак, я немного отредактировал мой ответ, чтобы указать это. Вот мой полный ответ на Ask Patents.
Непостижимо, но кто бы ни был этот человек, разместивший запрос на прототип, он нажал кнопку «Принято» на Stack Exchange. Мы думали, что это мог быть эксперт по патентам, но он действовал с обычной учетной записи.
В тот момент я сразу же забыл об этом, до 21 Мая (два месяца спустя), когда получил это письмо от Micah Siege (Micah работает нашим экспертом по патентам на полную ставку):
Бюро патентов и торговых марок США отклонило заявку Microsoft на патент «Изменение размеров изображений»!
Эксперт сослался конкретно на Прототип (Prior Art) процитированный в ответе Joel («Haveson и др.»).
Вот сам документ, отклонивший патент. Начиная со страницы 4 и далее, в основном, цитирование отменяет заявку, очевидно, принимая во внимание Haveson.
Micah показал мне документ из Бюро патентов США, подтверждающий, что они отклонили заявку на патент, в значительной степени основываясь на документе, что я нашёл. Это было первое «подтвержденное убийство» от Ask Patents, и это было удивительно легко. Я не выполнял тяжёлой работы по изучению заявки на патент и тщательного подтверждения, что существует прототип — эксперт сделал это за меня.
(Если хотите посмотреть отказ, зайдите на Public Pair и ищите публикацию (по типу publication number) номер US 20130063492 A1. Кликните на закладке «Image File Wrapper» и смотрите на не окончательный отказ от 11.04.2013. Microsoft, излишне говорить, обжалует это решение, и может быть этот паршивый патент опять всплывёт на поверхность.)
В этом, однако, есть интересный урок. Заявки на патенты ПО являются однородно плохого качества. Для них удивительно просто найти прототип. Ask Patents может быть использован для их отклонения с очень малыми усилиями. И это отчасти индивидуальное истребление одной заявки на патент, за раз может сделать трещину в горах плохих патентов.
Я мечтаю, что когда большие компании услышат о том, как чертовски просто блокировать заявку на патент, они будут использовать Ask Patents против своих конкурентов. Как здорово будет, если Apple, Samsung, Oracle и Google попадут на Ask Patents в «мексиканское противостояние». Если каждая из этих компаний выделит три или четыре инженера на несколько часов в день для разборки с заявлениями на патенты от их конкурентов, то количество выданных патентов этим компаниям уменьшится вдвое. Не будет ли это что-то!
Есть 15 минут? Открой Ask Patents прямо сейчас и посмотри, не относится ли один из тех запросов к теме, о которой ты хоть немного знаешь, и напиши о примерах, которые сможешь найти. Они спрятаны в плоском списке; большинство прототипов можно найти в Google. Удачной охоты!