To what degree does copyright code apply?

Started by
16 comments, last by kSquared 18 years, 7 months ago
To what extent can you copyright code, in particular C++. As I understand it one cannot copyright an idea, or names, titles and slogans. Furthermore in some circumstances small parts of copyrighted literary work may be copied. Based on that then I have some questions: 1) Is the name of a class/function/variable copyrightable? 2) What about a class interface? 3) Perhaps only the code implementation can be copyright? 4) What about certain concepts used in code eg "Well this class method delegates it to that class method, I could do something similar in my code..." 5) In my programs I have used certain class/function names from freely available online sources, probably under the GPL, does that breach any copyright law? 6) Similarly to Q5. I have written my own specialized versions of Microsoft BITMAPFILEHEADER and BITMAPINFOHEADER which are obviously highly based on the originals. Is that illegal? Copyright seems a dark and mysterious concept in regards to coding. But any insight is welcome Thanx
Advertisement
Names, Titles, Ideas and Slogans most certainly can have a copy right.
Im sure you can copyright code too. In the United States anyway.
Also, you dont copyright code, you patent it.

1) Is the name of a class/function/variable copyrightable?
No.

2) What about a class interface?
Dont know.

3) Perhaps only the code implementation can be copyright?
Dont Know.

4) What about certain concepts used in code eg "Well this class method delegates it to that class method, I could do something similar in my code..."
No. Unless its an extensive algorithm that you are using.

5) In my programs I have used certain class/function names from freely available online sources, probably under the GPL, does that breach any copyright law?
Not that im aware of.

6) Similarly to Q5. I have written my own specialized versions of Microsoft BITMAPFILEHEADER and BITMAPINFOHEADER which are obviously highly based on the originals. Is that illegal?
For personal use, I dont know. For commercial use, you bet its illegal.
Quote:Original post by Fixxer
Also, you dont copyright code, you patent it.


Thats not true in places like Europe where you can't patent code. Patents from what I know usually involve a licence fee for using anything thats patented, and copyrighting just means you must have the authors permission to use it. (If they wish to charge they can, like engine licences).

Im no expert but I'm pretty sure about that bit.

-J
Quote:Original post by Jason2Jason
Quote:Original post by Fixxer
Also, you dont copyright code, you patent it.


Thats not true in places like Europe where you can't patent code. Patents from what I know usually involve a licence fee for using anything thats patented, and copyrighting just means you must have the authors permission to use it. (If they wish to charge they can, like engine licences).

Im no expert but I'm pretty sure about that bit.

-J


My mistake :-P
Im also no expert. You are right I looked it up on www.copyright.gov

I am not a lawyer. This is not legal advice, for legal advice see a lawyer in your jurisdiction, yadda yadda.

Further, I am most familiar with American copyright law, and will base opinions off of that.

1. Sure. Is the name alone unique enough to be considered infringable? Not really.

2. I don't think so. Only the literal name/code, not the erm... functional specification. Functional specifications would fall under patent or similar trade secret protection.

3. Correct. The literal text is under copyright.

4. Similar to #2.

5. That would depend on the extent of copying, how common the name was, wether they were used exactly the same, wether you met the GPL's requirements... Each case is different.

6. Probably not, since the bitmap specification is [to my knowledge] an open standard, and any implimentation of a header class is bound to be near idential to another taken from the same open standard.

That said, doing something similar with say... DirectX classes might be more shady.




This sort of thing was a bit simpiler when copyright violation was solely a civil matter.
1) Is the name of a class/function/variable copyrightable?

No

2) What about a class interface?

No

3) Perhaps only the code implementation can be copyright?

A particular implementation of an algorithm can be copyrighted, the algorithm itself
may be patented if you manage to prove that is is original (no previous examples of the same method).

4) What about certain concepts used in code eg "Well this class method delegates it to that class method, I could do something similar in my code..."

Thats fine, concepts=ideas, if you read code, digest it, and puke it out, is fine, if you read code and then copy paste the code, thats copyright infringment, however, code you take from books and online tutorials usually allow you to use the code without restrictions.

5) In my programs I have used certain class/function names from freely available online sources, probably under the GPL, does that breach any copyright law?

Depends, like I said, most books and tutorials allow you to use the code as you please, you would have to check your sources and find out what does the small letters say.

6) Similarly to Q5. I have written my own specialized versions of Microsoft BITMAPFILEHEADER and BITMAPINFOHEADER which are obviously highly based on the originals. Is that illegal?

No, it is not.
Quote:Original post by dmatter
To what extent can you copyright code, in particular C++. As I understand it one cannot copyright an idea, or names, titles and slogans.


That's a "trademark" not a copyright. Different beast. Aragorn is trademarked, LotR is copyrighted. Kleenex is trademarked, the box where they keep popping out was patented. See the difference?

Also, just by virtue of writing something, you have a copyright to it. That's why you get to decide the licensing issues.

Quote:
Furthermore in some circumstances small parts of copyrighted literary work may be copied.


The technical term is "fair use". Research, scholarly works, small credited quotes, etc.

Quote:
3) Perhaps only the code implementation can be copyright?


Yes. You have the "right" to decide who gets to "copy" your implementation.

Quote:
4) What about certain concepts used in code eg "Well this class method delegates it to that class method, I could do something similar in my code..."


That's the realm of patents, not copyrights.

Quote:
5) In my programs I have used certain class/function names from freely available online sources, probably under the GPL, does that breach any copyright law?


No, as long as you follow the terms of the GPL or whatever other license applies. They have the copyright, they licensed it to you under the GPL. You have the right to copy it under the terms of the GPL.

Quote:
6) Similarly to Q5. I have written my own specialized versions of Microsoft BITMAPFILEHEADER and BITMAPINFOHEADER which are obviously highly based on the originals. Is that illegal?


Unless they're trademarked, feel free.

Quote:
Copyright seems a dark and mysterious concept in regards to coding.


Yeah, coding is such a new development that people haven't exactly figured out how patents, copyrights, etc. should apply.
Disclaimer: IANAL.

Quick overview of IP law:

- Trademarks are for distinguishing characteristics, signature marks, or a slogan or branding of some kind. "Just Do It" is trademarked by Nike, for instance.
- Copyright is for original, created works that are "fixed in a tangible medium". For non-trivial and original software, this means that as soon as you've saved it somewhere, it's protected.
- Patents are for realizations of ideas, called inventions. Only processes (e.g. how to use a laser beam to cut diamonds), machines (e.g. the printing press), manufactures (things "made by humans or machines"), compositions of matter (e.g., Silly Putty), or new uses of any of the previous things can be patented. The invention in question must also be "novel" (nobody else has come up with it yet), "useful" (it's not a pie-in-the-sky theoretical musing), and "unobvious" (someone else in the same field as the invention wouldn't consider it trivial).

Quote:Original post by dmatter
1) Is the name of a class/function/variable copyrightable?

You can't copyright a name. That falls under the domain of trademarks.

Quote:2) What about a class interface?

Yes, you could copyright this. You probably couldn't patent it, though.

Quote:3) Perhaps only the code implementation can be copyright?

That's correct. However, if the implementation describes a unique process (e.g. a compression algorithm), you could patent the algorithm.

Quote:4) What about certain concepts used in code eg "Well this class method delegates it to that class method, I could do something similar in my code..."

That could be patentable. See above. You can't copyright the generic concept, though; only your specific implementation.

Quote:5) In my programs I have used certain class/function names from freely available online sources, probably under the GPL, does that breach any copyright law?

Copyright generally does not extend to short phrases or clauses; I can't write a function called WriteLine() and then claim you violated copyright if you also happen to have a similar-named function. If you lifted entire sections of code, that would be a different matter. Otherwise, it depends on the license.

Quote:6) Similarly to Q5. I have written my own specialized versions of Microsoft BITMAPFILEHEADER and BITMAPINFOHEADER which are obviously highly based on the originals. Is that illegal?

If it can be shown that your versions are not "substantially original" from their versions, it is considered a derivative work. That means that your work is not protected by copyright and may be infringing upon the original author's copyright.
- k2"Choose a job you love, and you'll never have to work a day in your life." — Confucius"Logic will get you from A to B. Imagination will get you everywhere." — Albert Einstein"Money is the most egalitarian force in society. It confers power on whoever holds it." — Roger Starr{General Programming Forum FAQ} | {Blog/Journal} | {[email=kkaitan at gmail dot com]e-mail me[/email]} | {excellent webhosting}
You can find links to the full legal information on Patents, Copyrighting, and Trademarks at http://www.sba.gov ( small business association ).
-------------------------------Sometimes I ~self();
Thanks for the info everyone!

First of all I have since read that trivial work cannot be classed as copyright (as it is too difficult to claim it as unique).

So from what I've read let me see if I have a reasonable understanding:

1) NO. names cannot be copyrighted and therefore can be copied.

2) NO. A class interface is simply a collection of names, in itself it is useless as it is not functional and therefore trivial - so cannot be copyrighted.

3) YES. It is the implementation of code (behind a inteface for example) that can be copyrighted, the algorithm it presents can also be patented.

4) NO. Design concepts such as delegation and singleton patern for example cannot be copyright, unique concepts could be patentable.

5) NO. Even though the code may have been under the GPL this is applicable from Q1 and so is legal.

Now with Q6: I think that the headers are fairly standardized, I mean programs on non-windows platforms that want to load bitmaps needs to define the structures themselves.
I think this also applies to other similar scenarios, such as loading a Quake3 model/level (before the source was released of course) requires the use of structures extreamly similar to those in the Quake3 source.
Therefore I am inclined to say that it is not copyrightable although the file format may be patented.

Does it sound like I have it right?

This topic is closed to new replies.

Advertisement