Lợi thế trong việc là người đầu tiên sao chép một thuật toán mới? [đóng cửa]


18

Nói rằng tôi đã tạo ra một thuật toán (DSP) mới. Tôi sẽ có một số lợi thế nếu tôi mở nguồn thuật toán theo giấy phép copyleft (GPL, v.v.)? Từ những gì tôi biết về việc cấp phép, điều này sẽ khóa mọi người khỏi việc sử dụng mã chính xác giống như nguồn đóng, nhưng liệu họ có thể "viết lại" thuật toán thành nguồn đóng không?

Lưu ý: Tôi thực sự không biết liệu thuật toán này có mới hay không nhưng nó chưa được phát hành dưới dạng nguồn mở. Vì tôi đến từ Liên minh Châu Âu, tôi có cần tìm kiếm bằng sáng chế phần mềm nếu tôi muốn sao chép nó không?


21
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì nó đang yêu cầu tư vấn pháp lý. Nó chỉ có thể được trả lời chính xác bởi một luật sư IP cho một phạm vi quyền hạn cụ thể.

1
Tôi khuyên bạn nên nghiên cứu lịch sử của kỹ thuật đảo ngược hộp đen. Mặc dù nó không giống với những gì bạn đang hỏi, nhưng có rất nhiều thông tin thú vị về luật IP, hợp đồng, kỹ thuật đảo ngược, bằng sáng chế, v.v ... có liên quan.

2
@Snowman: như bạn có thể thấy ở đây, meta.programmers.stackexchange.com/questions/1655/ , không phải mọi câu hỏi liên quan đến chủ đề pháp lý nói chung đều lạc đề. Tôi đoán, ít nhất là đối với những phần thiết yếu của câu hỏi này, cộng đồng của chúng tôi có một số kiến ​​thức để chia sẻ. Mặc dù tôi đồng ý rằng để có câu trả lời sâu sắc, người ta có thể sẽ cần một luật sư.
Doc Brown

2
Câu hỏi này đã được hỏi 8 giờ trước và nó đã có 1880 lượt xem. Đây có vẻ là một câu hỏi rất phổ biến và cần thiết. Vui mừng ai đó đã hỏi nó.
Hội chợ Gabriel

2
Mặc dù câu hỏi này có thể phổ biến và thú vị, nhưng các câu trả lời "gây tranh cãi" dưới đây minh họa chính xác lý do tại sao các loại câu hỏi về tính hợp pháp này không phù hợp với PSE và tại sao chúng lại lạc đề ở đây.
Eric King

Câu trả lời:


27

Các hạn chế trong giấy phép copyleft như GPL áp dụng cho các phiên bản sửa đổi của mã cũng như mã gốc của bạn. Vì vậy, họ không thể điều chỉnh kiểu khoảng trắng hoặc dấu ngoặc và sau đó xóa câu lệnh cấp phép của bạn.

Tuy nhiên, bạn không thể sáng chế / bản quyền / copyleft / bất cứ "thuật toán" nào theo nghĩa trừu tượng nhất của nó. Bạn có thể đặt giấy phép cho việc triển khai quicksort yêu thích của mình, nhưng bạn không thể tự cấp phép quicksort. Nếu ai đó đọc mã của bạn chỉ để tìm hiểu thuật toán, và sau đó viết lại thuật toán từ đầu theo cách riêng của họ, điều đó tốt.

Theo như tôi biết, không có "lợi thế" nào khi là người đầu tiên xuất bản một thuật toán ngoài danh tiếng và danh tiếng (thế giới thực) nếu nó đặc biệt đáng chú ý. Là người đầu tiên sao chép, nó chắc chắn không mang lại cho bạn bất cứ điều gì, nhưng thực tế là ai đó đã sao chép nó sẽ được coi là một lợi ích cho cộng đồng phần mềm miễn phí.


27
Câu trả lời này chứa một số thông tin chính xác và gây tranh cãi, vì vậy hãy cẩn thận. AFAIK, các bằng sáng chế đã được cố gắng áp dụng cho các phần mềm ít quan trọng hơn nhiều và chúng đã được thử cho các ý tưởng trừu tượng, không chỉ là triển khai. Điều này phụ thuộc rất nhiều vào luật địa phương và rất khác nhau ngay cả ở các quốc gia khác nhau ở châu Âu. Xuất bản một thuật toán mới là lần đầu tiên có thể tạo ra một trường hợp cho "nghệ thuật trước" ( en.wikipedia.org/wiki/P Warrior_art ) khi ai đó sau đó cố gắng sáng chế cùng một ý tưởng trong một triển khai khác.
Doc Brown

10
Oracle v Google không nói về việc triển khai Java; hoàn toàn ngược lại, đó là về API. Tôi sẽ rất miễn cưỡng khi nói rằng các thuật toán không được cấp bằng sáng chế nói chung, đặc biệt là ở Hoa Kỳ.
sapi

9
Thuật toán bằng sáng chế không thể? Chúng ta đã quên các bằng sáng chế GIF và MP3 chưa?
Andrew Medico

2
@Bakuriu: bạn đã bỏ lỡ điểm. Cả hai chủ sở hữu bằng sáng chế GIF và MP3 đã kiện các công ty khác vì sử dụng thuật toán (hoặc ít nhất là bị đe dọa kiện họ), không phải vì các công ty khác đã sao chép một triển khai cụ thể.
Doc Brown

4
@AbhinavGauniyal: Sáng chế một cách làm việc gì đó là hoàn toàn bình thường. Nó được gọi là bằng sáng chế quy trình / phương pháp. Ví dụ, nếu bạn có một cách mới để làm cho cản xe bạn có thể cấp bằng sáng chế cho nó. Không phải cản xe, quá trình sản xuất cản xe. Bằng sáng chế quy trình là một trong những nền tảng của bằng sáng chế phần mềm. Nhưng ý tưởng về bằng sáng chế phần mềm đụng độ với một khía cạnh khác của luật sáng chế: bạn không thể sáng chế các công thức toán học (ít nhất là ở Mỹ). Và có thể lập luận rằng thuật toán là một phần của toán học thuần túy mà chúng ta gọi là "khoa học máy tính".
slebetman

12

Nếu bạn muốn ngăn chặn một bằng sáng chế được cấp bằng sáng chế và sau đó "đóng cửa" khỏi cộng đồng lớn hơn, bạn có thể thực hiện một tiết lộ phòng thủ. Ví dụ, Cuis Smalltalk đã làm điều này với một số kỹ thuật khử răng cưa mới:


3
Nếu bạn phát hành một cái gì đó, de jure nó không thể được cấp bằng sáng chế nữa bởi vì nghệ thuật trước đó tồn tại. Trên thực tế, các văn phòng bằng sáng chế trên toàn thế giới thường không quan tâm đủ để nghiên cứu điều này (vì họ sẽ không nhận được tiền cho việc đó) và cho phép khá nhiều tất cả các bằng sáng chế trông không quá tanh. Nếu người giữ bằng sáng chế sau đó kiện ai đó, bằng sáng chế sẽ không giữ tại tòa (nếu có quy trình của tòa án. Họ tốn rất nhiều tiền ...)
Josef

2
@Josef Không hoàn toàn đúng, hầu hết các văn phòng bằng sáng chế (chắc chắn là đúng ở Hoa Kỳ và EU) là lần đầu tiên nộp đơn, nhưng điều này chỉ quan trọng đối với các phát minh xảy ra gần nhau. Nếu ai đó xuất bản (nhưng không cấp bằng sáng chế) một thuật toán, người khác có thể cấp bằng sáng chế cho nó vào ngày hôm sau và có thể thoát khỏi nó. Các vấn đề pháp lý cụ thể xung quanh vấn đề này rất phức tạp và người ta chắc chắn nên tham khảo ý kiến ​​luật sư IP nếu cố gắng giải quyết vấn đề này.

@Snowman để tránh bằng sáng chế vào ngày hôm sau, nó có giúp xuất bản ở dạng mã hóa và sau đó xuất bản khóa một vài tháng sau không?
trichoplax

1
@trichoplax Tôi không biết thành thật. Tôi cố gắng cập nhật các luật này, nhưng đây là một thay đổi gần đây tại Hoa Kỳ nơi tôi sống. Nếu tôi định thử làm điều này, tôi sẽ hỏi ý kiến ​​luật sư IP, người biết nhiều hơn. Theo cách tôi hiểu thì đó là một khu vực màu xám lớn và một người chuyên về luật sẽ cần hướng dẫn tôi.

Để làm rõ, tôi dự định câu trả lời của mình sẽ nói cụ thể về ý tưởng, thuật toán, v.v., bởi vì nhiều người bắt đầu nói về mã nguồn trong khi OP đang hỏi về thuật toán . Nếu nghi ngờ (và bạn nên như vậy), hãy hỏi ý kiến ​​luật sư IP.
Frank Shearar

9

Tôi thấy một số thông tin có giá trị trong các câu trả lời khác và các bình luận, nhưng cũng có một số thông tin sai lệch, vì vậy tôi cố gắng đưa ra một bản tóm tắt và thêm một số điều bổ sung.

Tôi sẽ có một số lợi thế nếu tôi mở nguồn thuật toán theo giấy phép copyleft (GPL, v.v.)?

Bằng cách xuất bản mã nguồn của việc triển khai thuật toán của bạn theo GPL (tôi cho rằng đó là ý bạn), bạn có được lợi thế khi chứng minh thuật toán của bạn hoạt động như dự định và mọi người có thể kiểm tra mã nguồn của bạn để đảm bảo rằng nó không chứa bất cứ thứ gì "Không bình thường" như lỗi nghiêm trọng hoặc phần mềm độc hại. Có thể bạn sẽ nhận được một số người đóng góp để cải thiện hơn nữa. Và vì bạn là người giữ bản quyền, bạn vẫn có thể tự do xuất bản hoặc bán bản triển khai của mình cho người khác theo một giấy phép khác.

Một câu hỏi khác là nếu nó mang lại cho bạn bất kỳ lợi thế nào để trở thành thuật toán xuất bản đầu tiên . Bằng cách đầu tiên, bạn có thể cố gắng ngăn người khác lấy bằng sáng chế về thuật toán đó, vì việc triển khai của bạn sẽ đóng vai trò là một loại bằng chứng mà bạn là nhà phát minh. Nhưng như @Snowman đã chỉ ra một cách chính xác trong một bình luận, do chính sách đầu tiên (trái ngược với phát minh đầu tiên) của nhiều quy định bằng sáng chế châu Âu, có thể thực sự không hiệu quả.

Từ những gì tôi biết về việc cấp phép, điều này sẽ khóa mọi người khỏi việc sử dụng mã chính xác giống như nguồn đóng, nhưng liệu họ có thể "viết lại" thuật toán thành nguồn đóng không?

Bạn khóa mọi người khỏi việc xuất bản mã nguồn của bạn hoặc sửa đổi nó trong nguồn đóng, không sử dụng nó trong một tổ chức thương mại. Bạn khóa mọi người khỏi xuất bản nó dưới dạng nguồn mở hoặc đóng theo giấy phép khác với GPL. Tuy nhiên, bạn không khóa mọi người xuất bản một triển khai "phòng sạch" mới của thuật toán của bạn theo giấy phép tùy ý, đây là một triển khai được thực hiện từ mô tả thuật toán của bạn, mà không thực sự nhìn vào mã nguồn.

Vì tôi đến từ Liên minh Châu Âu, tôi có cần tìm kiếm bằng sáng chế phần mềm nếu tôi muốn sao chép nó không?

Mặc dù luật pháp của nhiều quốc gia châu Âu chính thức cấm bằng sáng chế về thuật toán thuần túy, rất nhiều công ty đã lách luật đó trong quá khứ bằng cách tuyên bố các thuật toán cụ thể là "phát minh do máy tính thực hiện". AFAIK, các cơ quan sáng chế châu Âu đã không chấp nhận nhiều bằng sáng chế thuật toán như các văn phòng bằng sáng chế của Hoa Kỳ trong quá khứ, tuy nhiên họ đã chấp nhận hàng ngàn bằng sáng chế trong nhiều năm có thể được hiểu là bằng sáng chế về thuật toán. Nếu những bằng sáng chế đó thực sự giữ trong tòa án là một câu hỏi khác, nhưng ai đó muốn tìm hiểu thường sẽ phải đưa nó ra xét xử, với tất cả các rủi ro liên quan. Hai trong số các nhóm ví dụ phổ biến nhất đã được đề cập trong các bình luận, các bằng sáng chế liên quan đến nén ảnh GIF và các bằng sáng chế liên quan đến nén / giải nén MP3, xem tại đây để biết thêm ví dụ.

Vì vậy, nếu bạn muốn giảm nguy cơ bị kiện, trước khi xuất bản một phần mềm có chứa một thuật toán cụ thể, có lẽ bạn nên xem liệu có ai đó đang giữ bằng sáng chế về nó, ngay cả ở EU.


Thực sự tốt câu trả lời toàn diện. Tôi chỉ gặp một số rắc rối với đoạn cuối: Làm thế nào để tôi tìm kiếm bằng sáng chế mà tôi có thể vi phạm? Tôi, trước hết, không thể suy luận từ tiêu đề của họ nếu họ có thể áp dụng cho mã của tôi. Tôi cũng không biết về một chỉ số chuyên đề toàn diện cho họ. Tìm kiếm từ khóa sẽ không cắt nó, vì vậy ngay cả Google cũng vô dụng, từ ngữ có thể hoàn toàn không thể tưởng tượng được đối với tôi. Và được cấp hàng ngàn bằng sáng chế, tôi không thể kiểm tra tất cả. Afaik thật sự không thể tìm kiếm bằng sáng chế mà tôi có thể đang vi phạm, tôi chỉ có thể chờ xem ai đó kiện tôi :-(
cmaster - phục hồi monica

1
@cmaster: cơ hội tốt nhất của bạn ở châu Âu có lẽ là công cụ tìm kiếm của văn phòng bằng sáng chế châu Âu, xem epo.org/searching.html
Doc Brown

1
@cmaster: Bạn phải chi hàng triệu đô la cho các luật sư thực hiện đánh giá bằng sáng chế, bằng cách thực sự đọc các bằng sáng chế. Tôi hiểu điều này thậm chí hoạt động trong các dự án lớn bên ngoài phần mềm (hãy tưởng tượng một chiếc xe mới), bởi vì chúng được phát triển theo cách "thác nước" hơn và có ít ý tưởng hơn. Nhưng tất nhiên, điều đó không thực tế đối với phần mềm, vì vậy các công ty lớn thường chỉ cấp bằng sáng chế và các công ty nhỏ không thể tự bảo vệ mình.
Blaisorblade

5

Bạn không thể "copyleft" một thuật toán. "Copyleft" phụ thuộc vào bảo vệ bản quyền cho khả năng thực thi của nó, nhưng các thuật toán không có bản quyền, vì vậy bạn không thể "copyleft" một thuật toán. Nói cách khác, câu hỏi của bạn có thể dựa trên tiền đề bị lỗi.

Bản quyền chỉ có thể được sử dụng để bảo vệ một triển khai cụ thể, không phải là ý tưởng của thuật toán. Vì vậy, bạn có thể bảo vệ việc triển khai cụ thể thuật toán bằng các giấy phép dựa trên bản quyền (chẳng hạn như giấy phép kiểu "copyleft"), nhưng điều đó sẽ không ngăn cản bất kỳ ai khác xây dựng một triển khai khác của cùng một thuật toán. Do đó, không có cách nào để "sao chép một thuật toán".

Đặc biệt, giấy phép GPL được xây dựng dựa trên nền tảng của luật bản quyền. Luật bản quyền nói (đại khái): không ai có thể sao chép nội dung có bản quyền của bạn mà không có sự cho phép của bạn. Giấy phép GPL cho biết: Tôi cho phép sao chép nội dung có bản quyền (mã) theo các điều kiện nhất định (các điều kiện của giấy phép "copyleft"). Vì vậy, đối với những thứ có thể có bản quyền, điều này cho phép bootstrapping giấy phép "copyleft" theo luật bản quyền hiện có. Nhưng, đối với những thứ không có bản quyền, phương pháp này là vô ích. Luật bản quyền chỉ bảo vệ sự thể hiện sáng tạo, không phải ý tưởng. Đặc biệt, nó không bảo vệ các thuật toán.


Luật sáng chế là một vấn đề khác. Trong một số khu vực tài phán, có thể có được bằng sáng chế cho một thuật toán. Điều này sẽ phụ thuộc rất nhiều vào thẩm quyền pháp lý và có thể phụ thuộc vào chi tiết cụ thể về tình huống của bạn. Nói chung, xuất bản thuật toán của bạn có thể giúp thiết lập nghệ thuật trước đó ngăn người khác sáng chế thuật toán, nhưng các chi tiết về điều này là khó khăn và tốt nhất là tham khảo ý kiến ​​luật sư. Nói chung, nếu bạn muốn tư vấn chắc chắn về bất cứ điều gì liên quan đến bằng sáng chế thuật toán, tôi khuyên bạn nên liên hệ với luật sư IP, vì điều này quá rộng để trả lời chung mà không có kiến ​​thức về thông tin đó.


IMHO câu hỏi không dựa trên "tiền đề bị lỗi", nó chỉ không được nói chính xác. Tôi khá chắc chắn rằng OP thực sự có nghĩa là để mở nguồn thực hiện thuật toán của mình.
Doc Brown

1
@DocBrown: OP cũng quan tâm đến việc thực thi Giấy phép chống lại mọi triển khai thuật toán trong phòng sạch của anh ấy (viết lại). Vì vậy, giải thích DW của câu hỏi là chính xác.
slebetman

3

Copyleft không liên quan gì đến bảo vệ bản quyền hoặc bằng sáng chế. Nó không cung cấp bất kỳ sự bảo vệ nào cho bạn, người giữ bản quyền, nếu không bạn sẽ không có.

Nó có mọi thứ để làm với phân phối, tuy nhiên. Copyleft bảo vệ người dùng mã của bạn bằng cách yêu cầu bạn và bất kỳ ai khác sử dụng mã của họ để phân phối toàn bộ mã nguồn của công việc tập thể của họ và mọi thay đổi họ thực hiện đối với mã đó. Không có bất cứ điều gì để nói về bảo vệ bản quyền hoặc bằng sáng chế, ngoài việc cung cấp cho người dùng của bạn một số quyền cụ thể mà họ có thể không có, chẳng hạn như quyền tự do kỹ sư đảo ngược DRM trong GPL3.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.