If a project has no a license or has unknown authors, is it public domain?
As usual, IANAL, consult a lawyer for legal advice. That said:
No. The default is "all rights reserved". You are not allowed to copy someone else's work without the author's explicit permission, even if the author is unknown.
Works are free for you to use under the following circumstances:
- You have written it yourself, and haven't transferred your rights to anyone else (note that in some jurisdictions, all your intellectual property is automatically transferred to your employer, even if the contract doesn't state this explicitly).
- The author has explicitly released the work into the public domain. Note that some jurisdictions in the world do not acknowledge this; in those countries, you may still be violating the law (although it is unlikely that the author is going to sue).
- The copyright holder is a government institution or similar legal person whose works are in the public domain by law.
- The author has given you explicit permission.
- The author has released the work under a permissive license (e.g. MIT, Apache, or BSD licenses). You are still bound by that license though.
- All the authors have been dead for long enough (where "long enough" means 70 years in many countries, but the figure may differ either way). I doubt you'll see this in the software realm anytime soon, but it's very relevant in arts and music.
I am not a lawyer, but my understanding is that no, it would not be in the public domain. See the first paragraph on this wikipedia page about the Berne Convention. Basically you have to explicitly give up the rights, otherwise you have them, so unless you can find where it is put into the public domain it is not there. I am sure it is far more complicated than that, but I think I would start with that.
Here is a stackoverflow post with some more perspective.
As mentioned consult with a lawyer but in the US and most western countries no. Copyright exists on something regardless of if you explicitly claim it with a (@C) symbol. Generally if you are paid to create the code your employer owns it unless you specified otherwise in your employment contract. If it is made by yourself you are the copyright holder.