About copyright infringement of direct authors or third parties
Copyright in the Russian Federation has its own inaccuracies and gaps in legal regulation. Sometimes it is very difficult for an author to both defend his copyright on someone else's borrowed work, and vice versa, it is difficult to fight off those who consider your work the result of their authorship.
A few dry definitions: the results of intellectual activity that are granted legal protection include, among others, programs for electronic computers (clauses 2, 3, clause 1, article 1225 of the Civil Code of the Russian Federation). Computer programs are protected as literary works (clause 1, article 1259 of the Civil Code of the Russian Federation). Computer is a term from the past that refers to anything that has bits and bytes. That is, the PLC program belongs to this topic.
Clarification: the fact of copyright infringement is not the moment of transferring something to someone and for some reason, but the recorded fact of the transfer or use of materials for which the author has direct or indirect evidence.
The author of the result of intellectual activity is recognized as a citizen whose creative work created such a result (clause 1 of article 1228 of the Civil Code of the Russian Federation). The right of authorship, the right to a name and other personal non-property rights of the author are inalienable and non-transferable. The waiver of these rights is void (clause 2 of article 1228 of the Civil Code of the Russian Federation), that is, even if the author renounces his work, this does not make him free from his authorship.
For the emergence, exercise and protection of copyright, registration of the work or compliance with any other formalities is not required (clause 4 of article 1259 of the Civil Code of the Russian Federation). Thus, it is possible not to register your author's right to the created work, but in case of disputes, you need to be ready to confirm that it was you who created it. The author has the right to publish his work, that is, the right to take an action or give consent to take an action that makes the work available to the public for the first time by its publication, public display, public performance, broadcasting or by cable, or in any other way (p. 1 article 1268 of the Civil Code of the Russian Federation).
The wording "belongs to the right" seems rather vague, without clear boundaries. How to prove your authorship if it is not registered anywhere? What if the author places his work, and someone somewhere says that this is his work, what to do in this situation? In general, as already mentioned, there are difficulties in the wording even for those who create them.
Along with this, there is the concept of exclusive rights to a work created by the author, which may prevent the author from freely disposing of the rights to it.
An exclusive right implies the ability of the right holder to use the result of intellectual activity or means of individualization at his own discretion in any way that does not contradict the law. (Clause 1, Article 1233 of the Civil Code of the Russian Federation).
For commissioned works, the customer is the default copyright holder. So, in accordance with paragraph 1 of Art. 1296 of the Civil Code of the Russian Federation,
the exclusive right to a computer program, database or other work created under a contract,
the subject of which was the creation of such a work (on order),,
belongs to the customer, unless otherwise provided by the contract between the contractor (performer) and the customer.
With regard to works created in the performance of work under the contract, the contractor will be the owner of exclusive rights. According to paragraph 1 of Art. 1297 of the Civil Code of the Russian Federation, the exclusive right to a computer program, database or other work created in the performance of a work contract or a contract for the performance of research, development or technological work work that did not directly provide for the creation of such a work belongs to the contractor (performer), unless the contract between him and the customer provides otherwise.
Thus, if you have the right to your work, you can safely place it at your discretion for familiarization of an indefinite circle of people.
Clarification: here you do not post materials, but the appearance of materials for informational purposes.
For our part, we undertake the obligation, at the first request of the copyright holder, to remove the publication in the event of a copyright infringement.
How the mechanism for detecting copyright infringement works:
- The author goes to court.
- Orders an independent examination. For example here: Multifunctional center of expertise. They review applications for application software on a commercial basis.
- The court considers this case for a very long and expensive time.
- Suppose that the court makes a decision on the violation of copyright or related rights. The case is referred to the bailiffs.
- Bailiffs in Russia work extremely poorly and not for free. Easier to reach a settlement agreement.
Thus, we must learn to live in peace, even if we cross each other's commercial interests.
Do you want to read what such an examination looks like, or rather, an objection from the performer?
OBJECTION TO EXAMINATION RESULT
We believe that the submitted document “Conclusion of the forensic expert in case No. dd. xx.xx.2016. prepared incorrectly and in violation of the rules for comparing programs written in the Delphi language using the Delphi development environment, namely:
- The expert did not give all the definitions and concepts that appear in the presented conclusion, in connection with which the text of the document replaces the concepts, as a result of which the permissible area of the comparisons of programs is not correctly determined.
- In the match comparison table, the expert does not describe the purpose and tasks to be solved by the matching modules, but this information is important, because it is different for the compared objects, which indicates an accidental coincidence of several names.
- In the match comparison table, the expert does not indicate the percentage of the program code that matches, but only having information about the percentage of text matching can determine its citation.
- The Expert Advisor compares the names of objects in the text of programs, and not the logic defined by the totality of objects. It's like looking for a match of words in a book instead of a match of phrases consisting of a sequence of words.
Now in more detail:So, on page 9 of section No. 2 “List of definitions and concepts appearing in the conclusion”, in paragraph 9, the expert indicates that “The program as a result of independent development - presented in an objective form is a set of commands and data intended for the operation of a computer, and the program code of such a program and its structure, as well as the content and mutual arrangement of its elements are unique and do not coincide with known samples.
At the same time, the expert does not define the concept of "program code" (highlighted in italics) used in the description of this paragraph. But in the first paragraph of the same section, he defines “Computer program source code” in the following form: “Computer program source code is a human-readable text of a computer program written in any programming language that can be translated into an executable compiler code. Therefore, we consider it necessary to clarify that the concept of "program code" and "computer program source code" in the framework of this study is one and the same.
In this regard, it should be clarified that "program code" is the text of a program written in a programming language, and this program code (program text), written in a programming language, necessarily contains a sequence of commands and data. In this case, the commands (words of the program text) are the same for all programs written in the same programming language!
Therefore, it is unacceptable to compare words (commands) of the program text, because not the name of the commands used in the program, but their sequence and combination determines the uniqueness of the program. If we draw an analogy, then from the comparison made by the expert it would follow that the book "Virgin Earth" is a modification of the book "War and Peace", because it uses the same words. Of the entire text of these books, the comparison will reveal 100% coincidence in the use of words. But after all, both books are unique not in that they use the same words, but in the way the sequence of such words that form sentences is built.
Because the text (code) of the program consists of commands, just like a book of words, then it is necessary to compare the sequence (order) of these commands in the program text, and if it coincided, then it would be possible to draw a conclusion about the modification of programs. But even minor coincidences in the sequence of program commands would not indicate a modification, since In any programming language, in addition to commands, there are service sequences of commands that are automatically generated by the development environment. But even if we accept that in both compared programs out of the forty procedures present, the name of one “FormCreate” has the same name and the names of three more “acAddExecute”, “acEditExecute” and “acDelExecute” are similar (while the contents of these procedures are completely different) how can to judge the continuity of one program from another?
Further in the text it will be said that all programs written in Delphi contain the procedure "FormCreate" and the authors give names to the procedures in accordance with the actions they perform. So the procedure “acAddExecute” is an abbreviation for the phrase “Action Command Add” (in Russian it means Action of the “Add” command), and the word “Execute” is offered by the development environment itself. Those. something is added in the specified command, and something is also added in the “aAddExecute” Medotrade program command, but the contents of these procedures are different for the compared programs, which means they add different entities. In the Patient program, users are added to the database, and in the Dentistry program, teeth are added to the patient's medical record. Those. completely different things!
In addition, the expert formally approaches the comparison of the names of procedures and variables in the text of the compared programs. So, in his opinion, (from the text of the examination document) it follows that if in the program one module from the seme has the same names, but the content is different, then this indicates that the whole program is a modification! How can a Delphi specialist draw such a conclusion if he sees that the modules of the compared programs perform and solve different functions and tasks, contain in the interface windows (with which the user of the program works) a completely different set of elements: buttons, lists, text pointers, and etc. But there is a simple explanation for the coincidence of the names of the modules - the author always gives the name to the objects the way he was taught at the university! This also applies to the names of modules and variables, and procedures. This will be discussed in more detail later in the text.
Also, in his study, the expert indicates that all the objects of study submitted for examination are written in the Pascal language, which is also referred to as Delphi, while he does not indicate that the Delphi development environment was used in the development of these programs. In turn, any specialist knows that the Delphi development environment, to facilitate the programmer's work, automatically creates a given sequence of commands to solve standard problems, and also automatically gives names to objects and events. In this regard, the question arises - why does the expert compare in the presented research objects, objects and events automatically created by the Delphi development environment?
Either he does this in view of the lack of knowledge in this area, or deliberately to obtain the desired (beneficial to the Claimant) result
It is very important that in the submitted expert opinion the expert very often uses the word “unit”, but in section No. 2 he does not define it, but it should be clarified that the “unit” is a separate module of the program consisting of text (i.e. e. a separate sheet of program text). The entire text of the module is divided into parts. The first part of the text begins with a heading, which is denoted by the word "Unit" followed by the name of the module, which is given by the programmer when starting to develop the program. Moreover, any Delphi specialist knows that changing the header of a module of a large program is usually very problematic and, as a rule, breaks the program's performance.
Also, any Delphi specialist knows that the main module of the program for ease of maintenance of the program should be saved with a name containing the word "Main", which means "Main" or "Parent" in English. It is necessary to check in the text of Deymand's program (on which the examination was carried out) is there the name of the Main module? You can also find many examples of programs on the Internet with the name of the “Main” module.
Also, the expert in the description of the ongoing research on page 10 uses the phrase “modules are of the same type in their structure and consist of several parts”, while not explaining that the structures of all programs written in Delphi are of the same type and consist of several parts, but, therefore, it is not an argument in favor of proof of program modification.
In the same description, the expert does not give a detailed explanation of the meaning of the word “interface”, limiting himself only to the description: “the interface part of the program module (begins with the word “interface”)”, indicating that this part describes all types, objects and procedures, which can be accessed by other modules. But what is important is that the expert forgot to mention that the interface part of the program module also consists of several sections: "uses", "type" and "var". Thus, the “uses” section lists other program modules (which are necessary for the program to work) and not necessarily these modules were written by the author of the program under study. In most cases, this section lists program modules prepared by the developers of the Delphi environment and supplied with it. Programmers consider such modules to be standard; the Delphi development environment inserts these modules itself as soon as the programmer specifies the command contained in this standard program. Therefore, the question arises why the expert in the objects under study compares the name of the modules just from the “uses” section? After all, most other programs written in Delphi will also contain the same modules in this section. Apparently the knowledge of an expert is not enough to know about it!
When carrying out the second stage of work “Statistical analysis”, the expert in the description of the comparative analysis for each module under study indicates: “it was possible to establish the alleged functional purpose of the units”, while not indicating what it is and whether it matches the intended purpose between the programs under study!
Concerning the coincidences indicated by the expert:
1. As part of the second stage "Comparative Analysis", the expert had to compare the source codes of the programs in order to find sections of the code that match in quantitative and qualitative elementary composition, as well as in functionality. Instead, the expert does not compare code sections, but the words contained in it, which is not allowed. The comparison of the qualitative elementary composition, as well as the functionality, is not carried out by the expert at all.
So the expert indicates that the name of the unit (module) of the computer "Dentistry" coincides with the name of one of the seven units of the computer program "Patient", but the expert omits that the functional purpose of these modules is different. But a comparative analysis should be carried out for the coincidence of sections of the code of the compared programs. Those. what should be done is not a match of words, but a match of sentences or paragraphs.
In addition, as mentioned above, there is a generally accepted practice of naming the main modules of the program. So, for example, only in the examples of programs supplied with the Delphi development environment there are 9 modules named "fMain", in 74 modules supplied with the development environment there is the name "frmMain". In the JEDI VCL library, which is popular among developers (supplied with the open source program modules), there are 17 modules with the name "frmMain". The JEDI VCL library also consists of a set of program modules that are a clear example of programming methods for all authors around the world. Probably, according to the expert, they are also a modification of the PATIENT program.
ВIn general, the names "fMain" and "FrmMain" are formed from the abbreviation of the words "Form Main"
A simple google search returns over 298,000 pages with the name of the software modules "frmMain" and over 86,00 with "fMain".
The "uMain" module is named according to the common naming convention used by the developer of the "Delphi" development environment. In the Delphi examples, this module occurs 39 times!
The name "uMain" is formed from the abbreviation of the words "Unit Main", which translates as "Main module". But after all, the main module is in any program, and, therefore, this name cannot be unique!
From the above, the conclusion is obvious to any specialist - the coincidence of the module name cannot be evidence of a program modification!
2. The expert said that in the "fMain" units of the "Dentistry" program and the "Patient" program there is a procedure named as "TFrmMain.FormCreate". At the same time, any specialist knows that the procedure containing “FormCreate” in its name is available in any program (having a window with which the user interacts and performing certain actions when creating this window) written in Delphi. This procedure is automatically inserted by the development environment on the window creation event for the user. At the same time, the development environment automatically adds the name of the module separated by a dot before the name "FormCreate". Those. the procedure "TFrmMain.FormCreate" is automatically created by the environment for the user window creation event in the "fMain" program module of the "FrmMain" form.
For example, in the examples that ship with Delphi (and which can always be downloaded from the Internet at ...
the name of this procedure can be found in 142 files.
In the examples of one of the most popular open source Deplhi libraries, JED VCL the FormCreate procedure occurs 164 times
Moreover, a procedure with this name can be found in almost any large well-known software project.
A Google search for the phrase "FormCreate" returns over 498,000 results. In this case, on the first page there will be an answer to the question of what the “FormCreate” procedure means. Thus, this procedure cannot be a unique feature of the programs under study, but it is present in the programs registered with FIPS, because Without it, these programs cannot function!
It should also be noted that the text (content) of the "FormCreate" procedure in the compared systems is completely (!) Different, and, therefore, performs different tasks.
3. The expert said that in the programs "Dentistry" and "Patient" there are similar names of procedures, for example, "acAddExecute" and "aAddExecute". Those. out of forty procedures, he found the SIMILARITY of NAMES in only three. Those. not the procedures with their contents are the same, but only their names are similar! How can you conclude that procedures that are completely different in content and different functionality with similar functionality are the result of a modification?
In support of the fact that the reason for naming procedures was explained above: "acAddExecute" and "aAddExecute" and "acDelExecute", we can give an example of one of the most popular "Delphi" open source libraries JED VCL. In it, the procedure "acAddExecute" occurs 4 times, and "acEditExecute" 3 times.
In addition, the name of these procedures is also partially generated by the Delphi development environment. In this case, developers use a well-established rule for naming objects using prefixes (ac ac for Action). ADD - means the action "add", "Execute" adds the system automatically.
4. As part of the second stage of the study, on page 14, the expert lists the matching names,
while he calls them unique, and he gives a complete list of their matches in Appendix No. 8 of Table 3.
It should be said that the names: “q”, “ods”, “ FK_ID", "nPacID", "nSotrID", "fMain", "fk_pacid",
cannot be considered unique because their names are generally used and are just abbreviations of English words,
and such abbreviations are used by all software developers!
So "FK_ID" is the common name for a database column. It is short for "foregn key identificatory"
And "FK_NAZID" is short for "field key NAZ identificator"
Moreover, “Ods” is a common name, which is an abbreviation for the words “Oracle Data Set” (search for links in the available examples)
In the text of the comparisons of programs within the framework of the examination between LLC erased and LLC erased, the name "FK_NAZID" occurs more than 20 times in both compared programs, the name "FK_ID" more than 10 times, the name "fk_pacid" more than 10 times, the name "nPacID" 5 times, the name "ods" 10 times, the name "nSotrID" 4 times and nevertheless the expert made a conclusion about the complete difference between the programs.
5. The expert's quote on Page 17 (end of the first paragraph) also attracts attention: "It is also worth noting that in the specified units in the interface part there are declared matching standard modules in the uses section."
It was said above that the expert forgot to explain the purpose of the "Uses" section, and it is in it that the "Delphi" development environment automatically inserts modules with the names supplied with the "Delphi" development environment, so the "Uses" section cannot be a unique feature of the program and may be similar for completely different programs, different authors.
Thus, the result of the comparison of the programs "Patient" and "Dentistry" is presented in Table No. 2 p. the expert does not compare unique objects or sections of program code, but the names of words in completely different program texts.
The result of comparing the programs "Patient" and "Polyclinic" found SIMILARITY, and not a complete match of the names of one of the ten modules, these are "fMain" and "uMain", and also found a match in the names of three variables "FK_ID", "ods", "FK_NAZID", which are commonly used and on the basis of this concluded that the program "Polyclinic" is the result of a modification of the program "Patient".
Out of more than 70 pages of program text, the expert found several identical variable names (less than 0.1% of the total program text) in completely different parts of programs (which are commonly used or made on the basis of the same practices used by programmers). At the same time, he did not find a single identical procedure or algorithm. And 0.1% of coincidences is due to the fact that the authors of both programs use common names, and also to the fact that part of the text of the programs is generated equally automatically by the Delphi development environment to help the authors.
The expert, in violation of the comparison rules, evaluates not the similarity of the procedures that determine the uniqueness of the program,
but the similarity of the names of these procedures. And if we take into account that out of 70 pages of text, only four names were found similar,
then the explanation for the conclusions drawn by the expert may be either his incompetence or interest in a positive decision.
Despite all the above objections, as far as I know, the Contractor could not build a defense against the expert.