WEBVTT
00:00.410 --> 00:05.326
Good
00:05.348 --> 00:08.686
day and welcome to the Patently Strategic Podcast, where we discuss all things at the
00:08.708 --> 00:12.126
intersection of business, technology and patents. This podcast is
00:12.148 --> 00:15.930
a monthly discussion amongst experts in the field of patenting. It is for inventors,
00:16.010 --> 00:19.466
founders and IP professionals alike, established or aspiring.
00:19.578 --> 00:22.846
And in today's episode, we're talking about software and the
00:22.868 --> 00:26.534
convoluted risk reward interplay between patents, copyrights and
00:26.572 --> 00:30.162
open source. Use of free open source code can be an invaluable
00:30.226 --> 00:33.986
tool when building complex software applications. Why reinvent
00:34.018 --> 00:37.574
wheels and depending on resources and budget? Sometimes it's the only
00:37.612 --> 00:41.494
practical way. Like with most things, free often isn't
00:41.542 --> 00:45.162
really free the cost is just transferred somewhere else.
00:45.296 --> 00:49.142
When it comes to open source, these short term savings can have significant
00:49.206 --> 00:52.358
long term consequences for your intellectual property rights.
00:52.454 --> 00:56.202
Can you mix open source with commercial software and still keep your code private?
00:56.346 --> 00:59.674
Can you patent your own software that uses open source software?
00:59.802 --> 01:03.166
If so, could you ever actually assert those rights? Can you
01:03.188 --> 01:07.098
patent open source software that you author? And why would you be on
01:07.124 --> 01:10.306
this being one of the most common areas we get questions about when we give
01:10.328 --> 01:13.774
talks on software patenting. This is a point of confusion I'm personally
01:13.822 --> 01:17.406
and deeply empathetic toward. As someone who spent well over 20 years
01:17.448 --> 01:21.174
building software. As a contributor, manager, and eventually executive, I came
01:21.212 --> 01:24.706
to embrace open source not only as an accelerant to releasing
01:24.738 --> 01:28.482
products, but also sometimes even as a necessity to building solutions
01:28.546 --> 01:32.326
that would not have been possible for a small team without leveraging
01:32.358 --> 01:36.358
open source libraries that had been in development for decades by highly skilled,
01:36.454 --> 01:39.866
passionate armies of OSS developers. Adoption of
01:39.888 --> 01:43.706
open source and commercial applications initially started out pretty Wild West,
01:43.818 --> 01:46.874
but eventually legal teams started raising concerns,
01:47.002 --> 01:50.494
particularly around the use of copy left licenses, which we'll talk about
01:50.532 --> 01:53.402
a little later. But the guidance was legalistically,
01:53.466 --> 01:57.374
vague, often paralyzing as developer, and never included guidance
01:57.422 --> 02:00.658
around implications for patents. Flash forward to present,
02:00.744 --> 02:03.794
and if you look around for resources on the web, you'll find that things
02:03.832 --> 02:07.966
unfortunately haven't changed much. This is dangerous, and it's creating
02:07.998 --> 02:11.682
a massive blind spot for many startups that aren't having the conversation
02:11.746 --> 02:15.442
they don't even know they need to be having around the risk reward balance
02:15.506 --> 02:18.986
of the use of open source and applications that are intended to be
02:19.008 --> 02:22.694
commercial, proprietary and protected with assertable
02:22.742 --> 02:26.166
patent rights. For some licenses, if open source
02:26.198 --> 02:30.086
is included and combined with other proprietary software, the combination
02:30.118 --> 02:33.406
of that software becomes bound by the open source license terms.
02:33.588 --> 02:37.562
This viral, infectious attribute can have profound implications
02:37.626 --> 02:41.646
for code intended to be proprietary and protected. Consequences can
02:41.668 --> 02:45.406
include being required to release your code to the public domain as open source,
02:45.518 --> 02:49.054
automatic patent licenses for other users of the open source,
02:49.182 --> 02:52.706
and an inability to assert patent rights against infringers of your
02:52.728 --> 02:56.146
invention. The scope can be so surprisingly broad that
02:56.168 --> 02:59.570
it can include both existing patents as well as future acquired
02:59.650 --> 03:03.474
patents. These risks are in play whether you knowingly or unknowingly
03:03.522 --> 03:07.606
included open source in your software and whether it was done by your employees or
03:07.628 --> 03:11.226
by third party developers who understandably love to leverage open
03:11.248 --> 03:15.002
source for faster turnarounds and reduced labor costs. The bottom
03:15.056 --> 03:18.506
line is that the open source license governs what you can legally do with
03:18.528 --> 03:22.502
a particular piece of OSS code. Understanding the associated risks
03:22.566 --> 03:26.474
and knowing the limits of these licenses can help inventors navigate which innovations
03:26.522 --> 03:30.078
to patent and which innovations to leave for use in the public space.
03:30.244 --> 03:33.326
This episode is the beginning of our attempt to shine some light and
03:33.348 --> 03:36.514
start facilitating the important conversations startups need to be having
03:36.552 --> 03:39.966
around these concerns. Some of these concepts are super muddy
03:39.998 --> 03:43.666
and still largely untested by the courts. Further, the answers on
03:43.688 --> 03:47.518
your scenario will be highly dependent on things like license type, what you're
03:47.534 --> 03:51.170
doing with the code, how you're invoking it, and how it's being distributed.
03:51.250 --> 03:54.598
So while there's not yet a black and white recipe backed by case law,
03:54.684 --> 03:58.242
there is a lot of gray to at least be aware of and known potential
03:58.306 --> 04:02.246
risks startups should be discussing when using or contributing to open source.
04:02.358 --> 04:06.314
It is our goal to highlight some of those risks and provide practical pointers around
04:06.352 --> 04:09.786
how you can then apply that knowledge to better understand how using or
04:09.808 --> 04:13.390
contributing to open source could drastically impact your intellectual property
04:13.460 --> 04:16.986
rights. Kristen Hansen, patent strategist and software patent
04:17.018 --> 04:20.382
guru here at Aurora, leads a discussion today along with our all star
04:20.436 --> 04:24.090
patent panel exploring the fundamentals of open source licensing and
04:24.100 --> 04:28.478
how certain viral license types can require you to publicly make available your company's
04:28.494 --> 04:31.966
source code, how copyrights patents and open source licenses
04:31.998 --> 04:35.522
differ in terms of software protection strategies, and whether
04:35.576 --> 04:38.862
or not and why you might patent open source software
04:38.926 --> 04:42.326
and often the proprietary code that leverages it, as well as the
04:42.348 --> 04:45.894
associated patent right assertion risks that can come with doing so.
04:46.012 --> 04:49.734
This is done in part through a working example around using and patenting
04:49.782 --> 04:52.982
software that includes OSS and is rounded out by a conversation
04:53.046 --> 04:56.406
with practical tips on source code scanning, working with third party
04:56.438 --> 04:59.990
developers, and understanding license specific implications.
05:00.150 --> 05:03.274
We look at concerns through the eyes of both users and authors
05:03.322 --> 05:07.390
of Open Source and Pragmatically as we can highlight how it's possible
05:07.460 --> 05:11.626
to construct a strategy where open source innovation is encouraged without foregoing
05:11.658 --> 05:15.646
all future earning power and without blocking others from using it. Kristen has
05:15.668 --> 05:18.898
worked both as a software engineer and a software patent agent for the
05:18.904 --> 05:22.386
last two decades. She's worked closely with software inventors from some of
05:22.408 --> 05:25.762
the big Tech Valley giants looking to utilize open source software while
05:25.816 --> 05:28.966
still maintaining their assertable patent portfolios. We couldn't think
05:28.988 --> 05:33.046
of a better person to lead this conversation. Kristen is also joined today by
05:33.068 --> 05:36.262
our always exceptional group of IP experts, including Dr.
05:36.316 --> 05:39.682
Ashley Sloat, president and Director of Patent Strategy at Aurora.
05:39.826 --> 05:43.306
Dr. David Jackrel, president of Jack Roll Consulting and
05:43.328 --> 05:46.182
Ty Davis patent Strategy Associate at Aurora.
05:46.326 --> 05:49.766
In future analysis, we plan to go even deeper around the patent
05:49.798 --> 05:52.826
specific concerns of express license grants,
05:52.858 --> 05:56.254
which could trigger an implied license of your software for any other
05:56.292 --> 05:59.150
competitor software using the same open source library.
05:59.490 --> 06:02.926
Patent retaliation. Clauses that can invalidate your use of
06:02.948 --> 06:06.974
an open source license should you choose to exert your patent rights on infringers
06:07.102 --> 06:10.386
and how these concerns apply and differ in scope when
06:10.408 --> 06:13.538
it comes to some of the more permissive licenses. Like Apache 20,
06:13.624 --> 06:17.750
which surprisingly, includes both retaliation and patent grant clauses,
06:18.890 --> 06:22.514
as well as the usual suspect strong and weak copy left licenses
06:22.562 --> 06:26.054
like GPL and LGPL. This is screaming for a really nice
06:26.092 --> 06:29.282
visual table like we published for foreign filing license concerns.
06:29.346 --> 06:34.074
If you have or know of one, please drop us a line at podcast@aurorapattens.com.
06:34.192 --> 06:38.342
Otherwise we'll get to work on that. All right, without further ado,
06:38.406 --> 06:41.662
take it away, Kristen. Okay, so today we're going to talk about
06:41.716 --> 06:46.030
patents and copyrights and open source and how they interact and relate.
06:46.770 --> 06:50.074
Okay, quick overview patents, copyrights and open source
06:50.122 --> 06:53.646
differentiation and how to protect open source software and
06:53.668 --> 06:57.490
when you might want to patent something that you will eventually open source.
06:58.710 --> 07:02.386
So, just to start, let's get some definitions out
07:02.408 --> 07:06.226
of the way. The panel here is well aware of all of these definitions,
07:06.258 --> 07:10.230
but if we have anyone listening who actually wants a quick
07:10.380 --> 07:14.434
read down in a slide or two that shows you the differences,
07:14.562 --> 07:15.640
this is it.
07:17.390 --> 07:21.222
So, utility patents
07:21.286 --> 07:25.130
basically protect the functioning of software design.
07:25.200 --> 07:29.062
Patents protect the ornamental aspects or the look of a component or animations,
07:29.126 --> 07:32.414
or graphical user interfaces. Trademarks are
07:32.452 --> 07:35.434
used to protect slogans, brand names, logos,
07:35.562 --> 07:39.530
sounds. Trade secrets are to protect innovations
07:39.610 --> 07:42.566
that are not patent eligible or not ready for patenting,
07:42.618 --> 07:46.366
or are more valuable as a secret. And copyright protects
07:46.398 --> 07:49.854
original works of authorship, such as software code and unique software
07:49.902 --> 07:53.540
code, expressions or music, things like that.
07:55.770 --> 07:59.234
Open source software licenses actually are royalty
07:59.282 --> 08:02.434
free copyright licenses that grant third parties
08:02.482 --> 08:05.814
the rights to copy, modify, and distribute software code.
08:06.012 --> 08:09.850
And these can be the gamut. These are not
08:10.000 --> 08:13.162
the exact same protections in every case. They are different
08:13.216 --> 08:16.506
licenses, different wording, different language. So you
08:16.528 --> 08:20.010
do have to be wary of those occasionally. And copy left
08:20.080 --> 08:23.594
is actually a type of open source software license that requires
08:23.642 --> 08:27.326
derivative works, which is anything generated using a piece of
08:27.348 --> 08:31.486
that open source software. And it requires that
08:31.508 --> 08:35.154
you distribute using the exact same license terms as the
08:35.192 --> 08:38.226
code that you're using to create your derivative works.
08:38.408 --> 08:42.530
So these can be really insidious and they can make your software open source
08:43.350 --> 08:47.430
for everyone, and they can eliminate some proprietary rights.
08:47.850 --> 08:51.574
So if you learn anything from this list of content,
08:51.772 --> 08:55.160
be really careful with Copy left. Copy left
08:55.610 --> 08:59.206
tends to be the most narrow and the most difficult
08:59.308 --> 09:03.082
to get around to try to get a patent on something,
09:03.136 --> 09:06.602
to try to enforce something that you do have patented because it maybe
09:06.656 --> 09:10.060
had a piece of copy left covered code.
09:10.830 --> 09:13.120
It just can be kind of a problem.
09:14.290 --> 09:18.394
Okay? So because this distinction is a big point of confusion for inventors
09:18.442 --> 09:22.154
and it's important to understand that some of the open source
09:22.202 --> 09:25.762
considerations that we'll later describe, I'm going to go through another way
09:25.816 --> 09:29.614
to look at this software versus copyrights versus open source.
09:29.742 --> 09:33.666
So when I think of copyrights, I think of protecting the expression so the
09:33.688 --> 09:37.206
actual source code and of an idea and to
09:37.228 --> 09:40.280
guard against the exact replication of that source code.
09:40.730 --> 09:44.694
Okay? When you think
09:44.732 --> 09:48.566
of source code in general, you should think copyrights
09:48.598 --> 09:50.890
because source code is not patentable,
09:52.910 --> 09:56.778
only the functionality that comes out of that source code is actually
09:56.864 --> 10:00.714
patentable or attempted to be patentable.
10:00.762 --> 10:04.494
It doesn't mean it will be patentable. So patents actually protect
10:04.532 --> 10:08.026
the idea and the functionality implemented
10:08.058 --> 10:11.674
by that source code. And open source software
10:11.722 --> 10:15.554
licenses actually protect the expression of an idea
10:15.752 --> 10:19.166
but function as royalty free copyright licenses.
10:19.278 --> 10:23.380
So again, your open source software is protecting the code
10:23.990 --> 10:28.246
in a manner of speaking, but not the functionality and
10:28.268 --> 10:30.840
it's only protecting that exact code.
10:31.850 --> 10:35.554
Okay? And the same with copyright and open source software,
10:35.602 --> 10:39.878
licensing tends to be something that
10:39.964 --> 10:43.366
everybody likes because they get free code, they get a quicker
10:43.398 --> 10:46.586
start to their product, they get to see what other people did and
10:46.608 --> 10:50.734
then they get to build on it. But there are some things that can
10:50.772 --> 10:54.158
be problematic about it and you do want
10:54.164 --> 10:58.030
to watch how you're using them and make sure to read all of your licenses.
10:59.730 --> 11:02.586
Yeah, for copyrights with code,
11:02.708 --> 11:06.562
obviously the copyright law also
11:06.616 --> 11:10.802
protects against derivations of the copyrighted material for
11:10.856 --> 11:13.860
code. How far does that go? You know what I mean?
11:17.690 --> 11:21.462
My understanding is if I were to write that
11:21.516 --> 11:25.110
exact piece of code in one language and
11:25.180 --> 11:29.162
I wrote it, somebody else wrote it in a second language, it would not
11:29.216 --> 11:32.634
necessarily cover that second language. Okay?
11:32.752 --> 11:37.402
But there are aspects of copyright where the
11:37.456 --> 11:40.838
literal code looks almost identical
11:40.934 --> 11:44.254
because it will be maybe the same function. And so there are
11:44.292 --> 11:48.000
cases where you do have arguments over that and you do have
11:48.770 --> 11:52.030
some wiggle room with saying, well, that's the exact
11:52.100 --> 11:56.834
same function, but it's just in a different language that
11:56.872 --> 12:00.654
languages wouldn't be covered. But we are a different creative expression.
12:00.702 --> 12:04.942
Right? I know that different languages have very different constraints, more object
12:05.016 --> 12:07.000
oriented versus yes.
12:08.330 --> 12:13.218
So if you have like two object oriented software
12:13.314 --> 12:16.866
tools you might see them slightly
12:16.898 --> 12:20.358
differently. But maybe it's just how it's encased in a for loop,
12:20.454 --> 12:25.034
maybe it's just how
12:25.072 --> 12:28.458
you're outputting at the end. And so if it outputs different, it's going to
12:28.464 --> 12:31.910
be differently copyrighted and copyrightable,
12:32.070 --> 12:36.400
if it outputs the same, it looks the same and you really just have this
12:37.170 --> 12:40.654
little bit of if then code or it's never
12:40.692 --> 12:44.066
that simple. But if it were that simple, there is a
12:44.088 --> 12:47.730
way where you could get dinged for
12:47.800 --> 12:50.900
infringing on a copyright because of something that small.
12:51.670 --> 12:55.654
It's highly unlikely. And usually copyright stuff, you're talking
12:55.692 --> 12:58.966
about lengthy works. And so it's unlikely that
12:58.988 --> 13:02.342
you're going to exactly replicate somebody else's code without
13:02.396 --> 13:06.790
actually having that code, right? I mean, you can, but it's unlikely.
13:07.950 --> 13:08.700
Okay,
13:11.710 --> 13:16.246
look at a quick brief history. So open source
13:16.438 --> 13:19.962
kind of came out of the early 1980s with a couple
13:20.016 --> 13:23.822
of people who had the concept of, hey, whatever you
13:23.876 --> 13:26.926
do or make, give it away for free so others can build with it and
13:26.948 --> 13:30.990
make it better. About 1998,
13:31.060 --> 13:34.530
I believe, the Bay Area is the
13:34.680 --> 13:38.942
kind of home of the real open source concepts
13:39.006 --> 13:42.610
that we know today. But they had this same
13:42.760 --> 13:45.574
idea that said we want to share it, we want to give it away.
13:45.612 --> 13:49.842
We want this to be collaborative and make this all improvable
13:49.906 --> 13:51.080
across the board.
13:53.210 --> 13:56.774
So there are two schools of thought. The pro argument for
13:56.812 --> 13:59.958
saying that, hey, I really do want open source. I think
13:59.964 --> 14:03.702
it's the best way to release software and the best way to do software.
14:03.846 --> 14:07.754
That argument is that collaboration drives innovation. And what
14:07.792 --> 14:11.374
better way to collaborate, right, than give away free code and let people build
14:11.412 --> 14:15.614
upon it? And any
14:15.652 --> 14:19.520
of that will drive innovation, but it will also
14:21.170 --> 14:24.574
result in industry growth, right? So that's that concept.
14:24.702 --> 14:28.994
The con argument for that is that instead of collaboration, they think
14:29.112 --> 14:32.606
competition drives innovation. They want everything patented
14:32.638 --> 14:36.280
and secreted and not given away. They want to use
14:37.210 --> 14:41.430
application programming interfaces of others if they need free software.
14:41.770 --> 14:44.662
So that basically means somebody wrote the code,
14:44.716 --> 14:48.330
they hid it, but they give you the hooks to
14:48.400 --> 14:51.914
use the code to get inputs in and outputs out.
14:52.112 --> 14:54.602
So that's covered under this.
14:54.656 --> 14:57.834
Competition drives innovation. Because I as a
14:57.952 --> 15:02.218
developer might have created that API, and I
15:02.304 --> 15:05.998
don't mind if people use it, but I don't want to give the functionality away
15:06.084 --> 15:09.642
for free. I want to sell it in a package.
15:09.706 --> 15:12.986
Or even if I give it away for free, I don't want them to
15:13.028 --> 15:16.098
know how I put this code together, right?
15:16.264 --> 15:20.098
So that's a little more secretive. That is the same as
15:20.184 --> 15:23.714
a company creating products that have chips with
15:23.752 --> 15:26.974
firmware in them and without reverse engineering
15:27.022 --> 15:30.038
what's going on in there. You really don't know how that firmware works,
15:30.124 --> 15:32.550
right? You just get an output and outcome.
15:32.890 --> 15:36.182
So that's the typical way of product
15:36.236 --> 15:39.978
development. That's the typical way of industry for a long, long time.
15:40.144 --> 15:43.530
But the con argument to that is saying, okay,
15:43.600 --> 15:47.398
competition drives innovation and therefore that results
15:47.414 --> 15:50.714
in industry growth. So honestly, I think
15:50.752 --> 15:54.320
they're both right. But I think there's a time and a place for both.
15:55.810 --> 15:59.006
I don't know if anybody else has any input on that. I just
15:59.028 --> 16:01.280
kind of threw it at you. No,
16:03.190 --> 16:06.514
I think one can lead to the other as well. Right. Because I think part
16:06.552 --> 16:10.414
of the patent system, for example, is to ultimately derive
16:10.462 --> 16:14.260
collaboration, right. Because it says,
16:15.750 --> 16:19.010
everybody's acknowledging that I invented this thing and I want to collaborate,
16:19.510 --> 16:22.834
I want to manufacture, I want to build onto this thing. So you create licensing
16:22.882 --> 16:26.310
agreements, but I think also open source,
16:27.850 --> 16:31.158
there's a lot of people who are just innovating on
16:31.164 --> 16:34.586
the side and do different things to be able to incorporate their
16:34.608 --> 16:37.386
stuff and get a leg up. I think there's a lot of value there as
16:37.408 --> 16:39.820
well. So I think one can kind of lead to the other.
16:41.250 --> 16:43.390
I think you need both. Honestly,
16:45.010 --> 16:48.862
I've always struggled with, you know, what's what's the incentive for for
16:48.916 --> 16:51.950
open source? I mean, through like, the company lens,
16:54.470 --> 16:58.260
I understand, as like a greater good, but through the company.
17:01.030 --> 17:04.850
Yeah, go ahead, Ashley. One thing that I've heard is
17:05.000 --> 17:08.102
build goodwill in the developer community, right.
17:08.156 --> 17:11.778
And even like a recruiting tool and things like that, if you're
17:11.794 --> 17:15.480
releasing certain things as open source, or even some companies have
17:16.250 --> 17:19.554
programs or days or parts of days where they tell developers
17:19.602 --> 17:23.110
to build whatever your heart desires, like get the creative juices flowing,
17:23.190 --> 17:26.666
and those things might be released as open source. But again, kind of a way
17:26.688 --> 17:29.530
of I think, like I said, kind of building goodwill,
17:29.950 --> 17:33.098
recruiting, encouraging employees to
17:33.104 --> 17:36.320
be creative. I think that's part of it,
17:37.650 --> 17:41.278
yeah. The other big piece is if you're thinking of
17:41.284 --> 17:44.834
your Apples and your Google's. So let's think back to when
17:44.872 --> 17:48.562
iOS first came out and you needed
17:48.696 --> 17:52.754
developers to create apps and software so that it could be used.
17:52.872 --> 17:56.606
Apple wanted this thing in everybody's hands. Now they're
17:56.638 --> 18:00.406
a proprietor that wants also their hardware in your hands. But that
18:00.428 --> 18:03.654
doesn't mean that that's the only platforms they want their stuff
18:03.692 --> 18:07.286
to work on. Right. So if they can open source some things, they can get
18:07.308 --> 18:10.854
those developers up and running pretty quickly and using and creating
18:10.902 --> 18:14.620
apps for that iOS software. Right. The operating system.
18:14.990 --> 18:18.810
If they can do that, they can sell more apps, they can sell more devices.
18:19.710 --> 18:23.438
So it really does drive a lot of things for
18:23.524 --> 18:26.654
new technology. Right. The same might
18:26.692 --> 18:29.120
not be said if you're trying to sell something,
18:30.050 --> 18:34.142
I don't know, something open source for an old search engine
18:34.196 --> 18:37.826
that nobody uses anymore. Right. That might be
18:37.848 --> 18:41.282
kind of ridiculous. Also, it might not be useful to not have it open
18:41.336 --> 18:45.460
source unless you're going to try to get a patent on it and enforce it.
18:48.950 --> 18:51.474
A good example of your first one there,
18:51.512 --> 18:54.886
Kristen. The phone probably too,
18:54.908 --> 18:57.960
but I more closely remember the Apple Watch.
18:58.410 --> 19:02.300
Oh, yeah. People to do Apple Watch apps. Right. It was like
19:03.470 --> 19:06.906
encouraging people to throw stuff out there and get stuff.
19:07.088 --> 19:10.746
So the Watch had utility right outside of just being another interface for your
19:10.768 --> 19:13.450
phone. Yeah, an early adoption.
19:14.270 --> 19:18.206
The other side of the coin on that is what Tesla did back
19:18.228 --> 19:21.726
in 2014. I have a colleague who actually worked for Tesla for
19:21.748 --> 19:25.506
a few years right in and before and right as that was happening.
19:25.688 --> 19:29.182
And he was in the patent department, running the patent department
19:29.246 --> 19:33.070
actually. And it was just decided
19:33.150 --> 19:36.822
from the top, as you all know the story, they were going to open
19:36.876 --> 19:40.566
up their electric vehicle tech and their patents and they
19:40.588 --> 19:44.166
weren't going after people. And some
19:44.188 --> 19:48.298
of that, that also meant they were abandoning large
19:48.384 --> 19:52.122
portions of their portfolio and allowing it to just
19:52.256 --> 19:55.466
go to the public forum right, as soon
19:55.488 --> 19:59.066
as it abandoned. And that was done
19:59.168 --> 20:02.862
to produce industry standards that could be
20:02.996 --> 20:05.200
pervasive in others technology.
20:05.570 --> 20:09.242
Right. If you think about creating an electric vehicle,
20:09.386 --> 20:12.718
it's pretty complex. If three other people have to
20:12.884 --> 20:15.330
pardon the pond, reinvent that wheel,
20:15.910 --> 20:19.810
that's going to be maybe three more standards.
20:20.150 --> 20:23.454
And at some point they're going to have to standardize. Nobody as a consumer
20:23.502 --> 20:27.298
will tolerate four different plugs and the mini
20:27.314 --> 20:30.646
mart doesn't have my plug. Right, things like
20:30.668 --> 20:34.054
that. So they did it, it was
20:34.092 --> 20:37.030
altruistic, but it was also to drive the industry.
20:37.390 --> 20:40.618
Yeah, but also from like a data
20:40.704 --> 20:43.706
mining sense, I mean, the further it gets out there,
20:43.728 --> 20:47.366
the more users right, the more you're gaining
20:47.398 --> 20:49.100
there. Yes,
20:50.370 --> 20:53.966
absolutely. So if there's good and
20:53.988 --> 20:57.338
bad, the bad part is people don't get paid for their ideas
20:57.434 --> 21:01.226
and it's a little harder to enforce
21:01.258 --> 21:04.782
if somebody's taking advantage of your code, your software,
21:04.846 --> 21:07.810
your time. Okay,
21:07.880 --> 21:11.058
so basically open source licenses in general, let's go through these a
21:11.064 --> 21:14.622
little bit. They do comply with an open source definition,
21:14.686 --> 21:17.814
and that definition was something from before that was basically like,
21:17.852 --> 21:20.680
put this in the public forum, let everyone have it,
21:21.610 --> 21:25.334
and basically publicize your code. Okay? It's not just
21:25.372 --> 21:28.970
here, you can have this executable, it's publicize your actual
21:29.040 --> 21:32.746
code, which means somebody can take it, change it, improve it,
21:32.848 --> 21:35.020
and implement something else with it.
21:36.990 --> 21:40.346
Open source licenses also allow software to be freely
21:40.378 --> 21:43.966
used, modified, and shared, and they must be approved by an
21:43.988 --> 21:47.662
initiative. The open source initiative actually goes through
21:47.716 --> 21:50.960
a full process of review to get
21:51.810 --> 21:55.006
any license that's new. And so what they've
21:55.038 --> 21:58.818
done is they've got some standardized stuff. If you've ever seen a new
21:58.904 --> 22:02.734
open license, GNU, that's one type of copy
22:02.782 --> 22:06.034
left license that goes out there and
22:06.072 --> 22:10.006
you can write some code and adopt that license for your
22:10.028 --> 22:12.994
code, or you can adopt another license, and if you have a new license,
22:13.042 --> 22:15.080
you have to get that through this review process.
22:16.890 --> 22:20.294
Okay, so there are many different flavors, as I alluded to
22:20.332 --> 22:23.834
before, but the following principle is that OSLs do not
22:23.872 --> 22:27.546
bar a software author from obtaining patent protection. So you can still
22:27.568 --> 22:32.046
go get a patent if you're the author of this content and
22:32.068 --> 22:35.966
they don't bar a programmer from including their patented features when
22:35.988 --> 22:39.226
they modify somebody else's software and they distribute
22:39.258 --> 22:42.586
it under the licenses as long as it's distributed appropriately,
22:42.698 --> 22:46.674
they don't bar any of that. But they do have statements that
22:46.712 --> 22:50.450
say, like any patent obtained using this OSS content
22:50.520 --> 22:54.162
must be licensed for everyone's, free use or not licensed at all.
22:54.296 --> 22:58.086
Which means it's very difficult to attempt to
22:58.108 --> 23:01.510
get a patent and then attempt to license that patent.
23:02.650 --> 23:05.810
You can still do it, it's just less enforceable.
23:05.890 --> 23:09.222
Right. There are other reasons maybe to go after a patent
23:09.286 --> 23:13.446
for some of your OSS content as an author, and I'll
23:13.478 --> 23:17.514
get into those a little bit later, but they just are
23:17.552 --> 23:20.730
less enforceable and not always.
23:20.800 --> 23:24.666
There are always things you can do to improve upon what's
23:24.698 --> 23:27.918
going on and to use something that I would call is a
23:27.924 --> 23:31.040
little bit tangential to the OSS content.
23:31.410 --> 23:36.210
So if you create something that could
23:36.280 --> 23:40.274
function and execute on something the OSS content made,
23:40.392 --> 23:44.500
but it's actually all in itself
23:45.130 --> 23:48.994
its own innovation, and it could be ported to another interface
23:49.042 --> 23:53.222
that isn't the OSS interface there may be some wiggle room
23:53.276 --> 23:57.046
there where as long
23:57.068 --> 24:00.294
as your product isn't created on that
24:00.332 --> 24:04.026
platform of the OSS, you could have some innovation there that
24:04.048 --> 24:07.322
is patentable and protectable. Okay. And we'll get into an example
24:07.376 --> 24:10.814
or two of that to make that a little more clear.
24:11.012 --> 24:14.590
Kristen, it's kind of weird offshoot. Maybe you'll talk about this later.
24:14.740 --> 24:18.990
Sure. A lot of AI ML,
24:19.570 --> 24:23.490
a lot of people, when they innovate in that space, they're using off the shelf
24:23.830 --> 24:27.634
AI ML models and using
24:27.672 --> 24:31.774
them in a new way. Are typical AIML
24:31.822 --> 24:36.070
governed by particular OSS license, or is that in a separate category?
24:36.890 --> 24:40.534
Not always. And often they are
24:40.572 --> 24:43.682
not. And it isn't because they're in a separate category.
24:43.746 --> 24:47.670
It's usually because when you generate
24:48.750 --> 24:52.426
a neural network of sorts to do what
24:52.448 --> 24:56.266
you need it to do, you're usually going to need to tweak that.
24:56.368 --> 25:00.406
So if you use OSS code for your ML and
25:00.528 --> 25:03.280
you tweak that, but it's still that code,
25:05.890 --> 25:09.546
you will have to adhere to the licensure of that machine
25:09.578 --> 25:13.230
learning software because your works
25:13.300 --> 25:16.560
are derivative of that. If you look at that,
25:17.030 --> 25:20.306
you actually aren't implementing it that way, but you look at
25:20.328 --> 25:24.194
it to understand how it works, then you go off and you maybe create
25:24.232 --> 25:27.958
your own two stage neural network. That does not function
25:28.044 --> 25:31.574
like this. It does not use the code like the OSS content,
25:31.772 --> 25:35.174
but you learned from it.
25:35.372 --> 25:39.510
I think there's an ethical obligation there that splits.
25:39.590 --> 25:43.242
I don't think that you have this ethical obligation to say, I use this
25:43.296 --> 25:47.194
OSS content to learn how to
25:47.232 --> 25:50.330
create my own content. If you created your own content,
25:50.400 --> 25:53.694
you created your own content. Remember, OSS stuff is
25:53.732 --> 25:57.134
like copyright in that it is the exact code,
25:57.332 --> 26:00.382
okay? And derivatives of the exact code.
26:00.436 --> 26:04.314
So even if you're adding a chunk that is a derivative. And some licenses
26:04.362 --> 26:08.542
say you have to adhere to my license
26:08.606 --> 26:11.986
of my code if you're going to even make a derivative of my code.
26:12.168 --> 26:16.366
But if you go off, you do your own thing, it really doesn't resemble
26:16.398 --> 26:20.146
this other code. And you didn't start with that code. I don't
26:20.178 --> 26:23.778
think you have that ethical obligation, and you certainly don't have the legal
26:23.874 --> 26:27.974
obligation. Some people say, Well, I got the idea because
26:28.012 --> 26:31.506
I was looking at this, and I think that's okay. I think in the patent
26:31.538 --> 26:34.874
scope we do that all the time. I was looking at how they did this
26:34.912 --> 26:38.026
saw, and I got this idea to try it another way, and then you go
26:38.048 --> 26:41.294
and get a patent on that. I think if somebody is
26:41.332 --> 26:44.762
using an ML or AI
26:44.826 --> 26:48.046
model, then they might not be able to
26:48.068 --> 26:51.582
patent that model if it's OSL especially. But they might
26:51.636 --> 26:55.170
still be able to model a way of training to patent a way of training
26:55.240 --> 26:59.730
that model or a way of post processing the data or
26:59.800 --> 27:03.300
a way of using the output in a particular way which I think
27:03.670 --> 27:07.506
more and more, I think, is how machine
27:07.538 --> 27:11.478
learning and neural net AI patents are going because
27:11.564 --> 27:15.394
the core models themselves are so developed
27:15.442 --> 27:19.420
and sophisticated and covered already.
27:19.790 --> 27:23.974
But a lot of individual specific applications can benefit
27:24.022 --> 27:26.934
from different ways to train, et cetera.
27:26.982 --> 27:30.194
Right? Yeah, sure, agreed.
27:30.342 --> 27:34.574
Question does training change
27:34.692 --> 27:38.494
a model enough? Right? Because training
27:38.612 --> 27:41.998
kind of causes the model to kind
27:42.004 --> 27:45.250
of learn a new set of boundaries, a new set of parameters.
27:45.750 --> 27:49.022
And yes, you're not changing the configuration of the layers necessarily,
27:49.086 --> 27:52.386
but a model that's not trained for
27:52.408 --> 27:55.494
your intended use is not going to necessarily give the
27:55.532 --> 27:59.622
correct output. So does training change
27:59.676 --> 28:03.030
it enough to not be governed by that original license?
28:03.530 --> 28:04.280
Well,
28:07.210 --> 28:09.420
if you're not training it the exact way,
28:10.830 --> 28:13.340
then it's different. But also,
28:14.750 --> 28:19.340
if the code is not a method of training and
28:19.870 --> 28:22.734
of training to do what exactly you're doing,
28:22.932 --> 28:25.360
right, that's different.
28:25.970 --> 28:29.774
I think if you're going
28:29.812 --> 28:32.350
after a method of training in a patent,
28:32.870 --> 28:36.574
you likely are not going to claim your actual network.
28:36.702 --> 28:40.450
You will likely only claim it as inputs and outputs
28:41.430 --> 28:44.610
because it'll be a method if it were a device.
28:45.050 --> 28:48.546
I still don't think you would claim the neural
28:48.578 --> 28:51.560
network unless you're doing an actual,
28:53.930 --> 28:57.490
maybe computer piece,
28:57.660 --> 29:01.260
something that's actually tangible. I don't know,
29:03.870 --> 29:07.514
as an individual company or whoever is training a
29:07.552 --> 29:11.566
model, maybe what they're changing or developing there is sort
29:11.588 --> 29:15.022
of like their own proprietary data set. But the
29:15.076 --> 29:18.800
functional code underneath that the mechanistic stuff
29:19.330 --> 29:22.094
is static, more or less. You know what I mean?
29:22.132 --> 29:22.720
Yeah.
29:25.990 --> 29:28.930
Okay, so moving on.
29:29.000 --> 29:33.554
So one thing I wanted to say about this, though, is if
29:33.592 --> 29:37.842
you are an author or a modifier who distributes software
29:37.906 --> 29:41.234
under this license, you typically can't assert
29:41.362 --> 29:45.414
your patent rights against other users and redistributors of
29:45.452 --> 29:48.922
that actual license software, okay? So you can't go after
29:48.976 --> 29:52.282
anybody else in the open source community doing this with the same
29:52.336 --> 29:56.330
content. If the license is written
29:56.750 --> 30:00.442
correctly and a
30:00.496 --> 30:04.506
little less narrow, you should be able to assert
30:04.538 --> 30:07.818
your rights against somebody who is just doing this in the industry,
30:07.914 --> 30:10.574
not using this OSS content code,
30:10.692 --> 30:14.190
okay? So if somebody reinvents your wheel out in the industry
30:14.350 --> 30:18.194
and you have patented a
30:18.232 --> 30:22.162
piece of this OSS code as the author, you can
30:22.216 --> 30:26.162
actually go after and assert your rights against these other
30:26.216 --> 30:30.278
competitors that are not using your actual code to do the same thing.
30:30.444 --> 30:34.642
So there is wiggle room there. It depends on the license language.
30:34.786 --> 30:38.502
But it's one reason you might actually want to go after a patent
30:38.566 --> 30:41.100
if you are an author of this OSS code.
30:41.550 --> 30:43.900
Okay? I think Kristen too,
30:47.310 --> 30:51.466
if you're using OSS for a to be patented
30:51.658 --> 30:55.230
product, presumably that OSS.
30:55.650 --> 30:59.530
If you're filing date and the date that that OSS
30:59.610 --> 31:03.246
code is made public, those aren't the same. But that OSS code anyways,
31:03.278 --> 31:06.610
is prior art to your later filing
31:07.590 --> 31:11.106
anyways, right? It is prior art to
31:11.128 --> 31:14.338
your later filing. It could be used
31:14.424 --> 31:18.374
by an examiner or by a litigant to say,
31:18.412 --> 31:22.226
hey, this is already out there, so your stuff isn't new anyway, it shouldn't
31:22.258 --> 31:26.530
have been patented or you're infringing on XYZ.
31:26.690 --> 31:31.238
But remember, OSS and OSL
31:31.334 --> 31:34.854
license software is a copyright.
31:34.982 --> 31:38.682
So you have to have the patent to go after that
31:38.736 --> 31:42.038
kind of infringement because they didn't
31:42.054 --> 31:45.274
use your code. So they're not infringing on that license.
31:45.402 --> 31:48.254
They would be infringing on the patent that you got.
31:48.452 --> 31:52.046
Okay? You could it was an extension beyond that code if it
31:52.068 --> 31:53.150
pre existed.
31:55.810 --> 31:59.426
So it's dicey, it's why everybody has questions on it
31:59.448 --> 32:03.314
and every situation isn't the same because the
32:03.352 --> 32:07.286
license might be different, the code might be the same, but the
32:07.388 --> 32:10.738
patent might be different than the code or the actual OSS
32:10.834 --> 32:14.342
content. Right? It's not an easy
32:14.396 --> 32:17.510
topic. Okay?
32:17.580 --> 32:21.306
And like we were saying before, open source content can be and
32:21.328 --> 32:24.742
is patented for offensive, defensive, altruistic, and commercial
32:24.806 --> 32:28.074
reasons. A patent provides additional control over
32:28.112 --> 32:31.930
the software and the underlying innovation. So if you have a patent,
32:32.010 --> 32:35.390
you are going to be protecting not the software code,
32:35.460 --> 32:38.586
but the actual functionality and what's
32:38.618 --> 32:42.474
going on with the software. Okay? So using patents, it is
32:42.532 --> 32:45.874
possible to construct a strategy where open source innovation is
32:45.912 --> 32:49.346
encouraged without irreversibly foregoing all
32:49.368 --> 32:53.090
your future possible earning power and without
32:53.160 --> 32:57.366
blocking others to use it. So that being said,
32:57.548 --> 33:00.920
why patent software that uses OSS code and content?
33:01.290 --> 33:04.582
Like I said before, the author can use patent rights against
33:04.636 --> 33:08.086
a competitor who sells a competing product that incorporates the
33:08.108 --> 33:11.526
invention, but that is not a derivative work of the author's
33:11.558 --> 33:15.018
original code. So that guy figured out how to do it a different way.
33:15.184 --> 33:18.540
You can go after somebody doing that
33:19.070 --> 33:22.714
if you have a patent that's. On your OSS content as
33:22.752 --> 33:26.414
well, okay? You could not do that with just the OSS content because
33:26.452 --> 33:29.678
you only have a copyright. But if you do get a patent to that,
33:29.764 --> 33:32.430
you can protect your algorithms in that way.
33:32.580 --> 33:37.166
And another way that's protective is altruistic.
33:37.198 --> 33:40.434
And that is okay, I gave this open
33:40.472 --> 33:43.954
source content to the community. I don't want anybody coming in telling us
33:43.992 --> 33:47.314
we can't use it. I'm going to patent it so other people can't
33:47.362 --> 33:51.622
patent it and block my users from even implementing my code.
33:51.756 --> 33:54.898
Okay? So it does protect a little bit of the OSS
33:54.994 --> 33:55.640
community.
34:00.110 --> 34:03.802
It's always questionable which techniques and which
34:03.856 --> 34:07.126
aspects are most important to an open source
34:07.158 --> 34:10.534
community, right? So like, which ones do I go after on a patent? Which ones
34:10.592 --> 34:14.720
do I leave on the table? And like anything,
34:16.050 --> 34:19.498
it's all probability and it's all risks.
34:19.594 --> 34:22.862
Like what's going to be important in this industry in five years,
34:22.916 --> 34:26.942
right? And you don't know. So you do have to take some calculated
34:27.006 --> 34:29.620
risks if you're going to do patents in this space.
34:31.030 --> 34:34.302
And then again, typically the license
34:34.366 --> 34:38.018
for open source content only precludes the patent holder from asserting
34:38.034 --> 34:41.558
his rights against people who are practicing the invention by using
34:41.644 --> 34:45.126
the software. Okay, so you don't want to take out
34:45.148 --> 34:47.640
your own people, is basically what they're saying.
34:49.310 --> 34:52.922
So there's two schools here.
34:53.056 --> 34:56.618
One is from the perspective of the user of OSS content,
34:56.704 --> 35:00.460
and the other is from the perspective of the author of the content.
35:00.830 --> 35:04.154
So from the perspective of the user, the user
35:04.202 --> 35:08.094
may want to actually defend open source software. Like I was just saying,
35:08.212 --> 35:11.946
they may go after a patent for certain pieces
35:12.138 --> 35:16.050
that they've even added to the OSS software if
35:16.120 --> 35:19.998
they can, if the license doesn't preclude
35:20.014 --> 35:24.002
them from doing so, they can go after their own patents in this field too.
35:24.056 --> 35:27.366
They just can't use them against the community, right? The assertion rights are
35:27.388 --> 35:29.510
gone for that aspect.
35:30.890 --> 35:35.286
The user of OSS might want to
35:35.308 --> 35:38.678
patent content because copyright and open source licenses like we've
35:38.694 --> 35:42.070
just referred to really are ineffective for protecting
35:42.150 --> 35:45.894
software. And I have software
35:45.942 --> 35:49.930
code there, but I really do mean software. I don't mean just the code
35:50.080 --> 35:53.422
because copyright will protect your code. But anybody can come by,
35:53.476 --> 35:57.086
change three words and have different code, right, and get around a lot of
35:57.108 --> 36:01.326
things. So a patent would be an effective way to protect some
36:01.348 --> 36:04.802
of these innovations. Some of the industry standards around
36:04.856 --> 36:08.706
this would be I guess when Bluetooth came
36:08.728 --> 36:12.962
out, maybe everyone was trying to figure out a new short
36:13.016 --> 36:16.226
band wireless tech and Bluetooth came out
36:16.248 --> 36:18.406
and said, we do this, we do this and we do this. And there was
36:18.428 --> 36:22.466
a handful of other innovations on top of Bluetooth,
36:22.498 --> 36:26.294
but Bluetooth comes out to be the best of
36:26.332 --> 36:30.538
those sort of short range things. So they
36:30.624 --> 36:33.786
had a lot of open source back in the day and because they did
36:33.808 --> 36:38.086
that it was something that was glommed
36:38.118 --> 36:41.638
onto by a lot of programmers in the community and everyone loved
36:41.654 --> 36:43.406
it and they wanted to try it and they wanted to do it and well,
36:43.428 --> 36:47.710
it was free, right? And it became the standard basically
36:47.780 --> 36:52.602
pushing out almost every other short wave short technology
36:52.756 --> 36:56.542
except for things that need to work with antennas and RF
36:56.606 --> 37:00.066
based technology. Sometimes it's just better to
37:00.088 --> 37:04.546
have RF instead of Bluetooth, but it
37:04.568 --> 37:08.754
just would have been better that they went after patents to protect that
37:08.792 --> 37:12.086
content because it was going to be so important. And I don't know if
37:12.108 --> 37:16.054
they did, I actually didn't look that up. That would be interesting to know
37:16.252 --> 37:19.478
if you had open source content over the years where
37:19.564 --> 37:23.242
people did decide to patent and it was extremely important and worked
37:23.296 --> 37:26.794
out really well for them. So also you may
37:26.832 --> 37:30.720
have code as a user that is not based on the
37:31.890 --> 37:35.342
open source software code, the base
37:35.396 --> 37:39.006
of that. And that code may have functionality that is patentable and
37:39.028 --> 37:42.254
it may not be subject to the license of
37:42.292 --> 37:46.514
that free open software. So if you have pieces like
37:46.552 --> 37:49.954
that, you want to consider not putting those out
37:49.992 --> 37:53.266
in the public domain because you may want to keep that for
37:53.288 --> 37:57.414
yourself and actually patent it. And a piece of that
37:57.612 --> 38:00.870
can be patented if it is different enough from
38:00.940 --> 38:05.334
the OSS code and it is not considered derivative for
38:05.372 --> 38:08.946
the license. Right. There's going to be different licenses and different levels
38:08.978 --> 38:12.746
of derivative, but there are pieces out there
38:12.768 --> 38:16.346
where you can and I'll give you an example in a few minutes where you
38:16.368 --> 38:19.434
can understand how well that shouldn't be subject to that
38:19.472 --> 38:23.326
open source license, right? That's just completely different. Okay? And the
38:23.348 --> 38:27.402
other site is the author of the content. The author may plan to license
38:27.546 --> 38:30.634
the patent to actually generate revenue.
38:30.682 --> 38:34.850
So this is actual licensing. Even if they open source it,
38:35.000 --> 38:38.942
and they open source it under a certain actual license
38:39.006 --> 38:44.286
that says you cannot patent or you cannot assert
38:44.318 --> 38:47.958
your rights if you do patent. They can actually
38:48.044 --> 38:51.654
do their own patent on their
38:51.692 --> 38:55.378
content to generate revenue and license it proprietaries
38:55.554 --> 38:58.826
to separate people here and there. They can open a version of it to the
38:58.848 --> 39:02.822
community and they can make multiple proprietary
39:02.886 --> 39:06.122
versions of it for the non open source community
39:06.256 --> 39:09.850
and that they can generate revenue off of from their patents.
39:10.990 --> 39:15.050
The author also may plan to assert his patent rights against redistributors
39:15.130 --> 39:18.782
who do not conform to the license. So if you have a patent on
39:18.836 --> 39:20.240
some of the OS content,
39:22.130 --> 39:25.794
you might be able to knock out some distributors and some people who are
39:25.832 --> 39:29.346
stealing your ideas and not following the license, right? And I call it
39:29.368 --> 39:33.650
stealing because if you're not following the license as intended, you are stealing.
39:34.310 --> 39:37.720
It was intended to be open and usable by all.
39:39.050 --> 39:42.466
The author also may plan to obtain patent rights
39:42.498 --> 39:45.974
to use offensively or defensively against infringers who are
39:46.012 --> 39:49.626
not using the software. Like I alluded to before. If you
39:49.648 --> 39:52.540
have people who figured out how to do this on their own,
39:53.070 --> 39:56.246
then they can come after you. They can cease
39:56.278 --> 40:00.154
and desist on you if they were first.
40:00.272 --> 40:04.410
Right. Somehow it turns out your software was released in February
40:04.490 --> 40:07.994
and they were out in December prior the year prior,
40:08.042 --> 40:12.074
you're in trouble. So there's good things about patenting
40:12.122 --> 40:16.106
open source here and there, and a lot of them are strategic,
40:16.218 --> 40:19.154
and you hope to not have to use some of those. But if you do,
40:19.192 --> 40:22.914
and you have an important enough piece of your product, or piece
40:22.952 --> 40:26.550
of the industry for that matter, if it's very successful,
40:27.290 --> 40:30.806
you might want to patent some things. And then
40:30.828 --> 40:34.294
again, just as they said before, the author might plan to distribute a
40:34.332 --> 40:38.294
non licensed version of that, which usually means it's quite
40:38.332 --> 40:41.990
different. Maybe it has more features.
40:42.070 --> 40:45.226
Maybe it has fewer features, but they're different features. Right.
40:45.328 --> 40:48.922
Okay, so let's do an example because this one will be interesting to
40:48.976 --> 40:52.718
get everybody's input on. So let's say you use
40:52.884 --> 40:56.462
open source software to build a search engine, okay? Search engine
40:56.516 --> 40:59.934
is here in the green, and you design
41:00.052 --> 41:03.406
and code up an algorithm that performs searches
41:03.438 --> 41:07.246
in the search engine in a new way. So innovation one uses
41:07.278 --> 41:09.410
a search engine, performs searches,
41:10.550 --> 41:13.854
and it will probably display those on a browser.
41:13.902 --> 41:17.814
Right. And algorithm two is for a new way to display search
41:17.852 --> 41:22.838
results. So algorithm two would actually probably
41:22.924 --> 41:26.198
just receive search results from a search engine and then figure out a
41:26.204 --> 41:30.486
way to display it on the browser. So do you think either of your algorithms
41:30.518 --> 41:33.814
are patentable if they were found new and non obvious at the PTO,
41:33.942 --> 41:37.690
and to what extent? What if one of them uses Chat GPT?
41:38.110 --> 41:38.860
Yeah.
41:43.490 --> 41:44.910
Then you're in trouble.
41:49.170 --> 41:53.550
I would say yes. If you're not claiming the search
41:53.620 --> 41:57.314
engine, I guess how much the overlap there is between
41:57.512 --> 42:01.214
what the search engine does and the algorithm that performs
42:01.262 --> 42:05.234
the searches in the search engine. Right. Like, I don't know how much
42:05.272 --> 42:07.938
overlap there is there, but the new way to display it.
42:08.024 --> 42:11.366
Presumably, yes, but again, depending on how much overlap there is
42:11.388 --> 42:15.510
in the access search engine versus that algorithm right. I don't know the line
42:15.580 --> 42:19.178
there, but that would be my $0.02 maybe design
42:19.264 --> 42:22.186
patent on the display. Yeah,
42:22.288 --> 42:25.594
it seems like if they were new and non obvious, it seems
42:25.632 --> 42:29.242
like they would be patentable like,
42:29.296 --> 42:32.686
yeah, maybe it's in the display, it's a Gui or
42:32.708 --> 42:35.742
a design patent, but right,
42:35.796 --> 42:41.338
I guess right. Because they're
42:41.354 --> 42:44.494
not trying to patent the
42:44.532 --> 42:47.826
code or the OSS code. They're trying to patent something that could
42:47.848 --> 42:51.682
be used with plugged into a different front end,
42:51.736 --> 42:55.446
if you will. Right, right. That's exactly it. So to
42:55.468 --> 42:59.080
give a clear answer, to make it crystal clear,
42:59.850 --> 43:03.570
the algorithm for a new way to display search results
43:03.730 --> 43:07.938
could be patent eligible because the algorithm to display
43:08.114 --> 43:12.106
would simply interact with the browser in
43:12.128 --> 43:15.898
order to display some content. And it would only receive actual
43:15.984 --> 43:19.562
content from the search engine coded with OSS, it would receive search
43:19.616 --> 43:23.454
results. That algorithm actually
43:23.652 --> 43:27.146
creates a way to display those and lay those out. And the graphical user
43:27.178 --> 43:30.394
interface is actually patentable for utility purposes,
43:30.442 --> 43:33.746
too. And so the way you're displaying it and the
43:33.768 --> 43:37.394
way you're organizing it and the way you're deciding how it lays out is all
43:37.432 --> 43:39.938
patentable. And so,
43:40.104 --> 43:44.274
barring a license that says,
43:44.312 --> 43:47.574
you cannot use any derivation of my
43:47.612 --> 43:50.854
code, you should be able to get a patent on that
43:50.892 --> 43:54.022
piece. If the license says you can't use
43:54.076 --> 43:57.926
any derivation of this code to get a patent, then you have
43:57.948 --> 44:01.226
to make sure you pull all of the code that could have
44:01.248 --> 44:05.274
been a derivation of that OSS code,
44:05.472 --> 44:09.354
pull it out, and make it more generic. And I don't mean
44:09.392 --> 44:13.474
make the code more generic. Make it work with a different interface,
44:13.542 --> 44:16.846
right? Make it work with a different search engine, or make it work
44:16.868 --> 44:20.122
with something completely different that isn't a search engine. And you could easily
44:20.186 --> 44:24.000
go after that, but most licenses probably
44:24.610 --> 44:28.174
wouldn't ding you for that just because you're receiving
44:28.222 --> 44:31.906
content from that search engine. Your new code really does not have anything to do
44:31.928 --> 44:35.334
with the search engine itself except for the parameters of
44:35.372 --> 44:37.640
displaying it within frames, right?
44:39.930 --> 44:43.474
That's browser related, and it could impact
44:43.522 --> 44:47.510
the back end search engine, but it's unlikely. But the first
44:47.580 --> 44:50.738
one, the algorithm that performs searches in the search engine
44:50.844 --> 44:54.074
in a new way, that would be really derivative because
44:54.112 --> 44:57.494
the search engine itself is the smarts for how the searches
44:57.542 --> 45:01.006
get performed. And you've created an algorithm to do that in a new way.
45:01.108 --> 45:04.126
It definitely runs on the search engine.
45:04.228 --> 45:07.440
It definitely is derivative of the OSS code. Right.
45:09.330 --> 45:12.786
The only way to do that and get a patent out
45:12.808 --> 45:17.138
of that piece that you can fully assert happens
45:17.224 --> 45:20.306
to be completely remove it from all
45:20.328 --> 45:25.202
the hooks that that search engine would need. Right. And then you
45:25.256 --> 45:28.994
still might have an algorithm that does searches differently, but you
45:29.032 --> 45:31.926
have to make sure it doesn't use any of that code or tie back to
45:31.948 --> 45:35.046
any of that code. And there's nothing wrong with doing that.
45:35.068 --> 45:38.700
A lot of people do this. A lot of search algorithms are
45:39.230 --> 45:42.794
browser dependent and are search engine specific,
45:42.912 --> 45:46.362
right? You can't port Google search engine over to
45:46.416 --> 45:50.714
an old Netscape search engine. Right. They just use different tech and
45:50.752 --> 45:54.026
different algorithms. So there's a
45:54.048 --> 45:56.398
way to get both of them to do something. But it takes a lot of
45:56.404 --> 45:59.502
work to get number one to get a patent, and it takes
45:59.556 --> 46:02.320
a lot less work to get number two to get a patent. Right.
46:03.030 --> 46:05.970
Kristen, do you know how this works with plugins?
46:06.870 --> 46:10.500
Because I would think, like a plugin is specific to a particular
46:11.990 --> 46:15.762
proprietary. It's like a Google Chrome plugin.
46:15.906 --> 46:19.080
That plugin works with chrome. That's what it's for.
46:19.770 --> 46:22.920
Can third parties then protect those?
46:23.450 --> 46:27.430
Yes, third parties can protect plugins, but you have to be careful
46:28.350 --> 46:31.660
that you are not incorporating open source code.
46:32.270 --> 46:36.506
And the reason you want to do that is because there
46:36.528 --> 46:40.358
are multiple ways to avoid open source code. If you just
46:40.384 --> 46:43.150
need to talk to the search engine or the browser,
46:44.850 --> 46:49.018
you're just better off not even searching for it and just sitting down and developing
46:49.034 --> 46:53.194
it yourself. If you have aspirations
46:53.242 --> 46:56.474
of patenting or patenting in order to license
46:56.522 --> 47:00.260
and sell, because your other problem is
47:01.750 --> 47:05.746
if somebody else comes along and patents that aspect that you've figured
47:05.778 --> 47:09.458
out, you're in trouble because you don't have protection,
47:09.634 --> 47:13.222
they will assert their rights against you. You maybe are also
47:13.276 --> 47:16.514
now using OSS content you're distributing
47:16.562 --> 47:20.582
under that license, but you're going to be in trouble for the patent because you're
47:20.646 --> 47:24.326
going against their rights. So it's dicey.
47:24.518 --> 47:28.090
Software always is. Okay? And the
47:28.240 --> 47:31.322
last thing is basically, how can I protect myself when using
47:31.376 --> 47:35.182
OSS content? So there are a lot of tools out there that
47:35.316 --> 47:38.490
they work a little like open chat, GPT,
47:38.570 --> 47:41.726
where they go out and they look for plagiarism, right? These guys go out
47:41.748 --> 47:45.554
and they look for content, OSS content in
47:45.592 --> 47:48.994
people's code, right? So you can actually run
47:49.032 --> 47:52.226
this on your own code to ensure that your developers or your
47:52.248 --> 47:55.602
contractors are not using open source code
47:55.656 --> 47:59.494
content that you're actually going to put in a product or go after in a
47:59.532 --> 48:03.014
patent. And if you are, it takes
48:03.052 --> 48:07.254
longer, it increases development time, but you can make changes
48:07.452 --> 48:11.018
and pull the open source code out. But you just have
48:11.024 --> 48:15.146
to be careful you're not also distributing two different sets of that and make
48:15.168 --> 48:19.302
it very clear which is the patented piece and which is the OSL
48:19.366 --> 48:22.330
piece, right? So you could do two sets of software.
48:22.750 --> 48:25.886
It takes more planning and thought, but you could
48:25.908 --> 48:29.358
do it that way. A lot of companies do actually do it
48:29.364 --> 48:32.974
that way. They say, here's a free, cheap, easy way to talk to our
48:33.012 --> 48:36.446
interface. And then if you're going to develop your own, they're like,
48:36.468 --> 48:39.746
oh, you have to buy our specialized chip, and it's got a communication bus that
48:39.768 --> 48:42.478
does this, this, and this, and you have to code it up and you can't
48:42.494 --> 48:45.918
use the freebie, right? Two different purposes.
48:46.094 --> 48:49.702
One to make and use and sell your own product, and the other to quickly
48:49.756 --> 48:53.638
get them on board to use their product and see
48:53.644 --> 48:57.480
if you like it, right? All right, so key takeaways when using
48:57.950 --> 49:01.078
open source software, understand the license implications.
49:01.174 --> 49:05.226
Always read it in full, in detail. Get your highlighter and
49:05.248 --> 49:09.146
your pen out. It's important. Understand your
49:09.168 --> 49:12.814
rights by reading the fine print that applies to code that you plan to use
49:12.852 --> 49:16.506
in your software and keep code for patentable inventions.
49:16.538 --> 49:19.950
Out of the public repositories if you have patent aspirations.
49:20.690 --> 49:24.058
I know this goes a little bit against open source software, but it does
49:24.084 --> 49:28.354
not matter if you are a business person in a
49:28.392 --> 49:31.906
field that you want to sell product in. Patents are
49:31.928 --> 49:35.862
important, and you have to do some of this holding some things back.
49:35.916 --> 49:39.602
Okay? Remember that open source software
49:39.666 --> 49:43.334
licenses implications actually apply to
49:43.372 --> 49:47.062
code adopted by a contractor as well. So make sure
49:47.116 --> 49:51.260
you're watching your contractors and letting them know not to use open source content,
49:51.630 --> 49:55.386
and that's it. Any questions? I think that kind of
49:55.408 --> 50:00.122
goes towards one of the other, once you've done, is making
50:00.176 --> 50:03.430
sure your contracts with people specify the fact that you
50:03.440 --> 50:06.526
don't want them to use open source and that you do own the code.
50:06.708 --> 50:10.058
It's a work made for hire. If it's copyrighted and setting,
50:10.074 --> 50:13.826
that just goes towards making in
50:13.848 --> 50:17.554
your contract, saying you don't want them to use open
50:17.592 --> 50:20.898
source and then maybe running the code through some kind of
50:21.064 --> 50:24.866
checker system at another date potentially, but at
50:24.888 --> 50:29.334
minimum making it super clear that you don't want open source or
50:29.532 --> 50:32.774
open source considerations need to be reviewed or
50:32.892 --> 50:36.486
something like that. It happens
50:36.588 --> 50:40.666
too often, and people lose the
50:40.688 --> 50:44.540
ability to enforce their patents if they went after patents and
50:44.990 --> 50:48.460
inadvertently had OSS content in
50:48.830 --> 50:52.110
their software, right? The patents are okay. It's okay to go after
50:52.180 --> 50:56.250
OSS patented software. I'm sorry to go after OSS
50:56.410 --> 51:00.400
to go after patents for OSS developed content,
51:00.850 --> 51:04.194
but you lose assertion rights in
51:04.232 --> 51:07.662
certain situations that would have not been lost
51:07.726 --> 51:11.122
had you paid attention and just did something slightly different with
51:11.176 --> 51:14.530
maybe just a handful of chunks of code.
51:14.600 --> 51:17.986
Right. It may not even be a lot, but you're in trouble if they're
51:18.018 --> 51:21.170
in there and you're attempting to assert patent rights.
51:21.330 --> 51:25.366
That was great, Kristen. A lot of very tingled web,
51:25.468 --> 51:29.346
but yes, good. Definitely some good check marks
51:29.378 --> 51:33.078
to at least go through and try to dot your I's and cross
51:33.094 --> 51:36.362
your t's very much. All right, that's all for today,
51:36.416 --> 51:39.994
folks. Thanks for listening, and remember to check us out@aurorapatents.com
51:40.032 --> 51:44.198
for more great podcasts, blogs, and videos covering all things patent strategy.
51:44.294 --> 51:46.734
And if you're an agent or attorney and would like to be part of the
51:46.772 --> 51:50.526
discussion or an inventor with a topic you'd like to hear discussed, email us at
51:50.548 --> 51:54.154
podcast@aurorapatents.com. Do remember that this podcast
51:54.202 --> 51:57.326
does not constitute legal advice. And until next time, keep calm and
51:57.348 --> 52:04.878
patent on our
52:04.884 --> 52:05.440
channel.