WO2018008810A1 - Method for inspecting conflict between open source licenses on basis of feature point - Google Patents

Method for inspecting conflict between open source licenses on basis of feature point Download PDF

Info

Publication number
WO2018008810A1
WO2018008810A1 PCT/KR2016/012980 KR2016012980W WO2018008810A1 WO 2018008810 A1 WO2018008810 A1 WO 2018008810A1 KR 2016012980 W KR2016012980 W KR 2016012980W WO 2018008810 A1 WO2018008810 A1 WO 2018008810A1
Authority
WO
WIPO (PCT)
Prior art keywords
license
feature point
conflict
profile set
collision
Prior art date
Application number
PCT/KR2016/012980
Other languages
French (fr)
Korean (ko)
Inventor
김민수
조용준
신동명
연지영
Original Assignee
엘에스웨어(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘에스웨어(주) filed Critical 엘에스웨어(주)
Priority to JP2019520340A priority Critical patent/JP6681519B2/en
Publication of WO2018008810A1 publication Critical patent/WO2018008810A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • the present invention relates to a method for detecting a conflict between open source licenses, and more particularly, to a method for detecting a conflict between open source licenses based on feature points.
  • Open-source embedded software is used in the development of set-top boxes and security devices, but often lacks a clear understanding of open-source licenses, which often leads to legal proceedings.
  • Open source licenses vary widely, and there are currently 78 officially certified licenses from the Open Source Initiative (OSI) and more than 120 licenses used by the Software Package Data Exchange (SPDX) group.
  • OSI Open Source Initiative
  • SPDX Software Package Data Exchange
  • An object of the present invention is to provide a method for automating conflict checking between open source licenses.
  • an open source license collision checking method includes (a) receiving an expression value for each feature point for a given first license, and expressing each feature point for a given second license. Receiving a value; And (b) determining whether there is a conflict between the first license and the second license using an expression value for each feature point of the first license and an expression value for each feature point of the second license. It features.
  • Step (b) may include: (b1) defining a profile set, which is a set of feature point profiles defined by feature points and expression values, for the second license; (b2) a collision profile set indicating which feature point of any license has a corresponding feature point of the first license based on the expression value of each feature point of the first license, and which feature value has any representation value for each feature point; and Defining a list of conflict profile sets; And (b3) comparing each conflict profile set included in the conflict profile set list with a profile set of the second license to determine whether there is a conflict between the first license and the second license.
  • step (b3) when a conflict profile set included in the conflict profile set list belongs to the profile set of the second license, it may be determined that the first license and the second license collide with each other.
  • step (b) when it is determined in step (b) that the first license and the second license collide with each other, there is a feature point included only in the first license and not included in the second license. If a second license has an optional clause and all of the feature points included only in the first license are included in the optional clause of the second license, the feature is included only in the first license in the second license instead of the second license.
  • the method may further include performing steps (a) and (b) for the license to which the corresponding selection clause is added.
  • the method may further include performing steps (a) and (b) for the other license instead of the first license.
  • a computer-readable recording medium having recorded thereon a program for executing a method for checking a conflict between open source licenses according to the present invention.
  • collision checking between open source licenses can be automated.
  • 1 is a flowchart of a method for checking a collision between licenses according to an embodiment of the present invention.
  • FIGS. 2 and 3 illustrate a flowchart of a method for checking a collision between licenses according to another embodiment of the present invention.
  • FIG. 4 shows a license compatibility matrix of a result of performing a collision check according to an embodiment of the present invention.
  • a license is a contract that specifies what the user of the work to which it applies must abide.
  • Distributor Distributor of the original work.
  • Use License A license applied by a Distributor to a work you receive.
  • Redistribution is the distribution of a work (derived work, derivative works) used by a user of a work as 1) as it is, 2) modified work, or 3) as part of a work. Redistributions are referred to as redistributions.
  • Distribution License The license you apply to a Redistribution when you distribute it.
  • Relicense The application of a new (fixed) license instead of any license applied.
  • a method for checking a conflict between two licenses when a user of any work to which an open source license is applied intends to redistribute to a license different from the license applied to the original work. That is, for convenience of description, a method of checking a conflict between a use license and a distribution license will be described as an example. However, the embodiment of the present invention may be applied to a method for checking a conflict between any two licenses, in which case the 'use license' may be generalized to 'first license' and the distribution license may be generalized to 'second license'.
  • a work is distributed under any use license
  • the user of the original work must comply with the terms of that use license.
  • the user of the redistributed work must follow the distribution license you applied instead of the use license of the original work.
  • the work that is distributed in particular the licenses that apply to the FOSS software, generally sets forth the rights to grant the use of the work, the prohibitions, and the matters to be observed at the time of redistribution.
  • any use license imposes any restrictions on redistribution, you must select a distribution license under that restriction.
  • This restriction refers to any restriction that is directly or indirectly related to redistribution.
  • the license compatibility problem may be defined as follows.
  • the feature points refer to respective provisions or provisions indicating a connection relationship, distribution obligations, modifications, rights to patents, private use, license maintenance, trademark use rights, and the like, in any license.
  • Each license l i is the representation of all feature points FP. Can be defined by assigning from the contents of the license.
  • the expression values for the feature points can be defined by analyzing the contents of the license manually or automatically.
  • the feature point profile fpp x can be defined as follows.
  • license l i for each feature point feature points of the profile of the set of profiles set of feature point profile for a license l i can be defined as In particular, redistribution issues between licenses consist of a use license l o (original license) and a distribution license l t (target license) ( ⁇ l o , l t ⁇ ⁇ L).
  • Non-billable charges for distribution of source code usually the minimum charges for distribution, so if a claim is not possible, show the clause in the matrix
  • Patent implementation permission To explicitly provide permission to use patent rights for source code, etc.
  • Patent retaliation clause expressly stipulates permission to use patent rights for source code, etc.
  • Prohibition of discriminatory license Prohibition of discrimination in granting patent license (Granting patent license to A, X to B)
  • Can be used in conjunction with a 'specific license' (e.g. GPL 3.0 and AGPL 3.0)
  • a 'specific license' e.g. GPL 3.0 and AGPL 3.0
  • 1 is a flowchart of a method for checking a collision between licenses according to an embodiment of the present invention.
  • step 110 an expression value for each feature point is input for a given use license l o , and an expression value for each feature point is input for a given distribution license l t .
  • step 120 for the distribution license l t , a profile set that is a set of feature point profiles defined by feature points and expression values Define.
  • the use license l o each based on the expression values of the feature point, a random distribution which feature point is set conflicts profile indicating conflicts with the feature point in the use license if it has any expression value (conflict of licenses for each feature point of the profile set) Defines the list of ps i and the collision profile set cpsl (l o , fp x ). The list of conflict profile sets is determined by what representation the license has for each feature.
  • the collision profile set for the i th feature point may include only the feature profile for the i th feature point (if there is only one element of the collision profile set), or the other j th feature point with the feature profile for the i th feature point. It may also include a feature point profile for the case (if more than one element of the collision profile set).
  • step 140 it is determined whether the use license and the distribution license collide by comparing each conflict profile set ps i included in the list of conflict profile sets cpsl (l o , fp x ) with the profile set ps (l t ) of the distribution license. do.
  • a conflicting profile set ps i ⁇ cpsl (l o , fp x ) is ps i ⁇ ps (l t )
  • a conflicting profile set ps i belongs to the distribution license's profile set ps (l t )
  • Use licenses and distribution licenses can be considered conflicting.
  • a judgment set profile and a judgment profile indicating whether to reserve a judgment on whether or not to collide with a set of profiles for judgment reservations, i.
  • FIG. 2 and 3 illustrate a flowchart of a method for checking a collision between licenses according to another embodiment of the present invention.
  • This embodiment is a recursive collision checking method considering the license selection clause and the conversion clause, and is composed of Routine 1 (FIG. 2) and Routine 2 (FIG. 3).
  • the optional provisions are invalid in the default state of the license, but are restrictions and permissions that may be valid at the discretion of the distributor. Even if the restrictions in the use license are not included in the distribution license by default, the use license and the distribution license can be compatible by deploying the user with the corresponding selection in the distribution license.
  • a use license contains a translation clause, that is, a provision for redistribution of a work distributed under a use license to another license specified by the conversion clause
  • the use license and distribution license are indirectly provided that the specified license and distribution license are compatible. It is compatible.
  • step 100 a collision checking method between the use license and the distribution license is checked through the collision checking method described above with reference to FIG. 1.
  • step 210 if it is determined to be compatible, the process proceeds to step 250 to determine compatibility.
  • step 210 if it is determined that there is a conflict, the process proceeds to step 220, in which it is determined whether the distribution license has a selection clause or the use license has a conversion clause, that is, whether to allow conversion to another license.
  • step 220 If the distribution license does not have an optional clause in step 220 and the use license does not have a conversion clause, the process proceeds to step 260 to determine a conflict (incompatibility).
  • step 220 If the distribution license has an optional clause at step 220 or the use license has a conversion clause, the process proceeds to step 230 and the license is checked again according to the flowchart shown in FIG. 3 (call Routine 2).
  • step 240 If it is determined in step 240 that the retest according to Routine 2 is compatible, the process proceeds to step 250 to determine compatibility.
  • step 240 if it is determined that the collision results from the retest according to Routine 2, the process proceeds to step 260 to determine a collision (incompatibility).
  • step 310 it is determined whether a feature point that is not included in the distribution license but included only in the use license exists.
  • These feature points correspond to feature points whose expression value is 'NoMention' in the case of a distribution license and 'Positive' or 'Negative' in the case of a use license.
  • step 350 If there are no feature points included in the use license and not included in the distribution license, the process proceeds to step 350 and, if present, the process proceeds to step 320.
  • step 320 it is determined whether all of the feature points included in the use license are included in the selection clause of the distribution license. If the feature points included only in the use license are not included in the selection clause of the distribution license, the process proceeds to step 350, and if all are included, the process proceeds to step 330.
  • step 330 instead of the distribution license, the license in which the selection clause is added to the distribution license is checked according to the flowchart of FIG. 2 (call Routine 1).
  • step 340 if it is determined that the result of the routine 1 is compatible, the process proceeds to step 370 to determine compatibility.
  • step 340 if it is determined that the collision results from the execution of Routine 1, the flow proceeds to step 350.
  • step 350 instead of the use license, the license is checked for a license conflict according to the flowchart of FIG. 2 with respect to another license to which the use license allows conversion (call Routine 1).
  • step 360 if it is determined that any of the other licenses for which the use license is allowed to be converted is compatible with the distribution license, the process proceeds to step 370 to determine compatibility.
  • step 360 If it is determined in step 360 that all of the other licenses for which the use license permits conversion conflict with the distribution license, the process proceeds to step 380 to determine a conflict (incompatibility).
  • GPL 2.0 is not compatible with GPL 3.0 on its own but is compatible with GPL 3.0 through another license that allows conversion.
  • CeCILL 2.1 is not compatible with GPL 2.0 or GPL 3.0 on its own, but is compatible with GPL 2.0 and GPL 3.0 through another license that allows conversion.
  • the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.
  • the computer-readable recording medium may include a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optical reading medium (eg, a CD-ROM, a DVD, etc.).
  • the present invention can be used in the field of software development for license checking of open source software.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

A method for inspecting a conflict between open source licenses, according to the present invention, comprises the steps of: (a) receiving an expression value for each feature point with respect to a given first license and receiving an expression value for each feature point with respect to a given second license; and (b) determining whether the first license and the second license conflict with each other by using the expression value for each feature point of the first license and the expression value for each feature point of the second license.

Description

특징점 기반의 오픈소스 라이선스 간 충돌 검사 방법Feature-based Open Source License Conflict Detection Method
본 발명은 오픈소스 라이선스 간 충돌 검사 방법에 관한 것으로, 보다 상세하게는 특징점을 기반으로 오픈소스 라이선스 간의 충돌을 검사하는 방법에 관한 것이다.The present invention relates to a method for detecting a conflict between open source licenses, and more particularly, to a method for detecting a conflict between open source licenses based on feature points.
셋탑박스나 보안장비 등의 개발시 오픈소스 형태의 임베디드 소프트웨어들이 활용되고 있지만, 오픈소스 라이선스에 대한 명확한 이해가 부족하여 법적 소송에 휘말리는 경우가 종종 있다.Open-source embedded software is used in the development of set-top boxes and security devices, but often lacks a clear understanding of open-source licenses, which often leads to legal proceedings.
특히 오픈소스를 2개 이상 동시에 활용하거나, 원하는 라이선스로 변경하여 배포하고자 하는 경우 라이선스 간의 충돌 문제가 발생할 수 있으며, 충돌 발생시 해당 오픈소스를 사용할 수 없게 된다.In particular, when two or more open sources are used at the same time, or when a user wants to distribute the license with a desired license, a conflict may occur between the licenses.
2개 이상의 라이선스가 공종하는 경우, 충돌 여부를 검사하기 위해서는 법률적 해석이 필요하며, 현재 법률전문가가 라이선스 조항 전체(Full text)를 상호 비교하여 검토하고 있다.If two or more licenses work, a legal interpretation is needed to check for conflicts, and legal experts are currently comparing the full text of the license terms.
오픈소스 라이선스는 매우 다양하게 존재하며, OSI(Open Source Initiative)에서 공식 인증한 라이선스 종류는 현재 78개, SPDX(Software Package Data Exchange) 그룹에서 사용하고 있는 라이선스 종류는 120개 이상이 존재한다.Open source licenses vary widely, and there are currently 78 officially certified licenses from the Open Source Initiative (OSI) and more than 120 licenses used by the Software Package Data Exchange (SPDX) group.
따라서, 많은 수의 오픈소스 라이선스 조항 전체를 매번 해석하고 비교 검토하기에는 많은 어려움이 있으며, 개발자가 원하는 최적의 라이선스를 추천해 주기 어렵다.Therefore, it is difficult to interpret and compare a large number of open source license terms every time, and it is difficult to recommend the optimal license that a developer wants.
본 발명이 이루고자 하는 기술적 과제는 오픈소스 라이선스 간의 충돌 검사를 자동화할 수 있는 방법을 제공하는 데 있다. An object of the present invention is to provide a method for automating conflict checking between open source licenses.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 오픈소스 라이선스 간 충돌 검사 방법은, (a) 주어진 제1 라이선스에 대하여 각 특징점에 대한 표현값을 입력받고, 주어진 제2 라이선스에 대하여 각 특징점에 대한 표현값을 입력받는 단계; 및 (b) 상기 제1 라이선스의 각 특징점에 대한 표현값과 상기 제2 라이선스의 각 특징점에 대한 표현값을 이용하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함하는 것을 특징으로 한다.In order to solve the above technical problem, an open source license collision checking method according to the present invention includes (a) receiving an expression value for each feature point for a given first license, and expressing each feature point for a given second license. Receiving a value; And (b) determining whether there is a conflict between the first license and the second license using an expression value for each feature point of the first license and an expression value for each feature point of the second license. It features.
상기 (b) 단계는, (b1) 상기 제2 라이선스에 대하여, 특징점 및 표현값으로 정의되는 특징점 프로파일의 집합인 프로파일 셋을 정의하는 단계; (b2) 상기 제1 라이선스의 각 특징점의 표현값에 기초하여, 각 특징점에 대하여 임의의 라이선스의 어떤 특징점이 어떤 표현값을 가지는 경우 상기 제1 라이선스의 해당 특징점과 충돌하는지를 나타내는 충돌 프로파일 셋 및 상기 충돌 프로파일 셋의 리스트를 정의하는 단계; 및 (b3) 상기 충돌 프로파일 셋의 리스트에 포함된 각 충돌 프로파일 셋과 상기 제2 라이선스의 프로파일 셋을 비교하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함할 수 있다.Step (b) may include: (b1) defining a profile set, which is a set of feature point profiles defined by feature points and expression values, for the second license; (b2) a collision profile set indicating which feature point of any license has a corresponding feature point of the first license based on the expression value of each feature point of the first license, and which feature value has any representation value for each feature point; and Defining a list of conflict profile sets; And (b3) comparing each conflict profile set included in the conflict profile set list with a profile set of the second license to determine whether there is a conflict between the first license and the second license.
상기 (b3) 단계는, 상기 충돌 프로파일 셋의 리스트에 포함된 어떤 충돌 프로파일 셋이 상기 제2 라이선스의 프로파일 셋에 속하는 경우 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단할 수 있다.In the step (b3), when a conflict profile set included in the conflict profile set list belongs to the profile set of the second license, it may be determined that the first license and the second license collide with each other.
상기 충돌 검사 방법은, 상기 (b) 단계에서 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단되는 경우, 상기 제2 라이선스에는 포함되지 않고 상기 제1 라이선스에만 포함되는 특징점이 존재하고, 상기 제2 라이선스가 선택 조항을 가지며, 상기 제1 라이선스에만 포함되는 특징점이 모두 상기 제2 라이선스의 선택 조항에 포함되면, 상기 제2 라이선스 대신에 상기 제2 라이선스에 상기 제1 라이선스에만 포함되는 특징점에 해당하는 선택 조항을 추가한 라이선스를 대상으로, 상기 (a) 및 (b) 단계를 수행하는 단계를 더 포함할 수 있다.In the collision checking method, when it is determined in step (b) that the first license and the second license collide with each other, there is a feature point included only in the first license and not included in the second license. If a second license has an optional clause and all of the feature points included only in the first license are included in the optional clause of the second license, the feature is included only in the first license in the second license instead of the second license. The method may further include performing steps (a) and (b) for the license to which the corresponding selection clause is added.
상기 충돌 검사 방법은, 상기 (b) 단계에서 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단되는 경우, 상기 제1 라이선스가 상기 제1 라이선스 이외의 다른 라이선스로의 변환을 허용하면, 상기 제1 라이선스 대신에 상기 다른 라이선스를 대상으로, 상기 (a) 및 (b) 단계를 수행하는 단계를 더 포함할 수 있다.In the collision checking method, when it is determined in step (b) that the first license and the second license are in conflict, if the first license allows conversion to a license other than the first license, The method may further include performing steps (a) and (b) for the other license instead of the first license.
상기 기술적 과제를 해결하기 위하여 상기된 본 발명에 따른 오픈소스 라이선스 간 충돌 검사 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.In order to solve the above technical problem, there is provided a computer-readable recording medium having recorded thereon a program for executing a method for checking a conflict between open source licenses according to the present invention.
상기된 본 발명에 의하면, 오픈소스 라이선스 간의 충돌 검사를 자동화할 수 있다. According to the present invention described above, collision checking between open source licenses can be automated.
도 1은 본 발명의 일 실시예에 따른 라이선스 간 충돌 검사 방법의 흐름도를 나타낸다.1 is a flowchart of a method for checking a collision between licenses according to an embodiment of the present invention.
도 2 및 3은 본 발명의 다른 일 실시예에 따른 라이선스 간 충돌 검사 방법의 흐름도를 나타낸다.2 and 3 illustrate a flowchart of a method for checking a collision between licenses according to another embodiment of the present invention.
도 4는 본 발명의 실시예에 따라 충돌 검사를 수행한 결과의 라이선스 호환성 매트릭스를 나타낸다.4 shows a license compatibility matrix of a result of performing a collision check according to an embodiment of the present invention.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, the substantially identical components are represented by the same reference numerals, and thus redundant description will be omitted. In addition, in the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.
본 명세서에서는 다음과 같이 용어를 정의하기로 한다. 다만, 이러한 정의는 개별 라이선스에서는 이와 다르게 재정의될 수 있다.In this specification, terms will be defined as follows. This definition may, however, be redefined otherwise in individual licenses.
라이선스 : 라이선스는 그것이 적용된 저작물의 사용자가 지켜야 할 사항이 명시된 계약서이다.License: A license is a contract that specifies what the user of the work to which it applies must abide.
배포자(Licensor, Distributor) : 원 저작물의 배포자.Distributor: Distributor of the original work.
사용자(Licensee, Recipient) : 배포된 임의의 저작물을 사용하는 자.User (Licensee, Recipient): Anyone who uses any distributed work.
사용 라이선스 : (원 저작물의) 배포자가 사용자가 받은 저작물에 적용한 라이선스.Use License: A license applied by a Distributor to a work you receive.
재배포 : 재배포란, 저작물의 사용자가 그 저작물을 1) 그대로, 혹은 2) 수정하여(modified work) 또는 3) 일부로서 사용한 저작물(파생 저작물, derivative works)을 배포하는 것. 재배포되는 저작물을 재배포물이라 한다.Redistribution: Redistribution is the distribution of a work (derived work, derivative works) used by a user of a work as 1) as it is, 2) modified work, or 3) as part of a work. Redistributions are referred to as redistributions.
배포 라이선스 : 사용자가 재배포물을 배포할 때, 사용자가 재배포물에 적용한 라이선스.Distribution License: The license you apply to a Redistribution when you distribute it.
변환(Relicense) : 적용되어 있는 임의의 라이선스 대신 다른(정해진) 라이선스를 새로 적용하는 것.Relicense: The application of a new (fixed) license instead of any license applied.
선택 조항(Optional Clause) : 라이선스의 기본 상태에서는 비활성화되어 있는 조항이지만, 배포자가 명시적으로 추가하는 경우 활성화될 수 있는 조항.Optional Clause: A clause that is disabled in the default state of the license, but may be activated if the Distributor explicitly adds it.
본 발명의 실시예에서는, 오픈소스 라이선스가 적용되어 있는 임의의 저작물의 사용자가 원 저작물에 적용되어 있는 라이선스와 다른 라이선스로 재배포하려고 하는 경우의 두 라이선스 간의 충돌 검사 방법에 관하여 설명한다. 즉, 설명의 편의상 사용 라이선스와 배포 라이선스 간의 충돌을 검사하는 방법을 예로 들어 설명한다. 다만 본 발명의 실시예는 임의의 두 라이선스 간의 충돌을 검사하는 방법에 적용될 수 있으며, 이 경우 '사용 라이선스'는 '제1 라이선스'로, 배포 라이선스는 '제2 라이선스'로 일반화될 수 있다.In the embodiment of the present invention, a method for checking a conflict between two licenses when a user of any work to which an open source license is applied intends to redistribute to a license different from the license applied to the original work. That is, for convenience of description, a method of checking a conflict between a use license and a distribution license will be described as an example. However, the embodiment of the present invention may be applied to a method for checking a conflict between any two licenses, in which case the 'use license' may be generalized to 'first license' and the distribution license may be generalized to 'second license'.
어떤 저작물이 임의의 사용 라이선스로 배포된 경우, 원 저작물의 사용자는 그 사용 라이선스의 내용에 따라야 한다. 또 임의의 사용 라이선스 하에 배포된 저작물을 임의의 배포 라이선스 하에 재배포하려는 경우, 재배포된 저작물의 사용자는 원 저작물의 사용 라이선스 대신 사용자가 적용한 배포 라이선스를 따라야 한다. 배포되는 저작물, 특히 FOSS 소프트웨어에 적용하는 라이선스는, 일반적으로 그 저작물의 사용을 허가하는 권리, 금지 사항 및 재배포시에 지켜야 할 사항 등이 명시되어 있다. 특히, 재배포에 관하여 사용 라이선스가 어떠한 제약을 가하고 있다면, 사용자는 그 제약 하에서 배포 라이선스를 선택해야 한다. 이 제약은 재배포에 직ㅇ간접적으로 관련있는 제약 전체를 의미한다.If a work is distributed under any use license, the user of the original work must comply with the terms of that use license. In addition, if you intend to redistribute a work distributed under any use license under any distribution license, the user of the redistributed work must follow the distribution license you applied instead of the use license of the original work. The work that is distributed, in particular the licenses that apply to the FOSS software, generally sets forth the rights to grant the use of the work, the prohibitions, and the matters to be observed at the time of redistribution. In particular, if any use license imposes any restrictions on redistribution, you must select a distribution license under that restriction. This restriction refers to any restriction that is directly or indirectly related to redistribution.
그렇기 때문에, 사용자는 재배포물에 임의의 배포 라이선스를 적용하여 재배포하고 싶은 경우, 배포 라이선스와 사용 라이선스의 내용이 상충하지 않는지 확인해야 한다.For this reason, if you wish to redistribute any distribution license for redistribution, you must ensure that there is no conflict between the distribution license and the use license.
본 발명의 실시예에서 라이선스 호환성 문제는 다음과 같이 정의할 수 있다. 라이선스 집합은 L1={l1, l2, ...}, 특징점의 집합은 FP={fp1, fp2, ...}, 특징점에 대한 표현값의 집합은 ET={NoMention, Positive, Negative}, 그리고 호환성 판정값의 집합은 CS={Compatible, Suspicious, Incompatible}가 될 수 있다. 여기서, 특징점이란, 임의의 라이선스에서 소프트웨어 간의 연결 관계, 배포 의무, 수정, 특허에 대한 권리, 사적 이용, 라이선스 유지, 상표 이용 권리 등을 나타내는 각각의 규정 또는 조항을 의미한다. In the embodiment of the present invention, the license compatibility problem may be defined as follows. The set of licenses is L 1 = {l 1 , l 2 , ...}, the set of feature points is FP = {fp 1 , fp 2 , ...}, and the set of representation values for the feature points is ET = {NoMention, Positive , Negative}, and the set of compatibility decision values may be CS = {Compatible, Suspicious, Incompatible}. Here, the feature points refer to respective provisions or provisions indicating a connection relationship, distribution obligations, modifications, rights to patents, private use, license maintenance, trademark use rights, and the like, in any license.
각 라이선스 li는 모든 특징점 FP에 관하여 그 표현값
Figure PCTKR2016012980-appb-I000001
를 해당 라이선스의 내용으로부터 배정하여 정의할 수 있다. 특징점에 대한 표현값은 라이선스의 내용을 수동으로 혹은 자동으로 분석하여 정의할 수 있다.
Each license l i is the representation of all feature points FP.
Figure PCTKR2016012980-appb-I000001
Can be defined by assigning from the contents of the license. The expression values for the feature points can be defined by analyzing the contents of the license manually or automatically.
위의 정의에 따라, 특징점 프로파일(feature point profile) fppx를 다음과 같이 정의할 수 있다.
Figure PCTKR2016012980-appb-I000002
According to the above definition, the feature point profile fpp x can be defined as follows.
Figure PCTKR2016012980-appb-I000002
어떤 라이선스 li의 각 특징점의 특징점 프로파일로부터, 라이선스 li에 관한 특징점 프로파일의 집합인 프로파일 셋을
Figure PCTKR2016012980-appb-I000003
로 정의할 수 있다. 특히, 라이선스 간의 재배포 시의 호환성 문제는, 사용 라이선스 lo(original license)와 배포 라이선스 lt(target license)({lo, lt} ⊂ L)로 구성된다.
From which the license l i for each feature point feature points of the profile of the set of profiles set of feature point profile for a license l i
Figure PCTKR2016012980-appb-I000003
Can be defined as In particular, redistribution issues between licenses consist of a use license l o (original license) and a distribution license l t (target license) ({l o , l t } ⊂ L).
본 발명의 실시예에서는, FOSS 라이선스 78종에 대한 종합적인 분석을 통해, FOSS 라이선스의 호환성 검증시 필요한 대표적인 특징점으로 다음과 같이 23개의 특징점을 선정하였다. 다만 이러한 특징점들은 예시에 불과할 뿐이며, 특징점은 얼마든지 수정되거나, 삭제되거나, 추가될 수 있음은 물론이다.In the embodiment of the present invention, through the comprehensive analysis of 78 FOSS licenses, 23 feature points were selected as the representative feature points required for compatibility verification of the FOSS license. However, these feature points are only examples, and the feature points may be modified, deleted, or added as much as possible.
1. (1) 추가 제약 금지(No further restriction)1. (1) No further restriction
해당 라이선스에서 명시적으로 정한 사항 이외에 사용자(수취인)의 권리를 제한하는 사항부과(sublicense, relicense 등으로) 제한Restrictions on sublicenses (such as sublicense, relicense, etc.) that limit the rights of the user (recipient) in addition to those expressly provided in such license
2. (2) 동일 라이선스 유지(Copyleft)2. (2) Keep the same license (Copyleft)
특정 라이선스로 배포된 소스코드를 수령하여 원본 혹은 수정하여 재배포할 때, 수령 당시 소스코드에 적용된 라이선스와 동일한 라이선스로 재배포할 것을 의무화When receiving, redistributing or redistributing source code distributed under a specific license, the redistribution under the same license as that applied to the source code at the time of receipt is required.
3. (3) No license fee, Royalty free3. (3) No license fee, Royalty free
소스 코드의 저작권 사용에 대한 사용료 부과 금지No royalty fee for copyright use of source code
· 배포를 위해 소요되는 최소한의 배포 비용 청구는 해당하지 않는다.   · The minimum deployment charges for distribution do not apply.
· 서비스 비용 청구는 해당하지 않는다.   · Service charges do not apply.
· 특허에 대한 No license fee, Royalty free와 구분한다.   · It is distinguished from No license fee and Royalty free for patent.
4. Source Code 관련4. Source Code related
(4) Code 공개(4) Code disclosure
· 소스 코드 공개(원본 소스코드 혹은 원본+수정 소스코드)   Source Code Disclosure (Original Source Code or Original + Modified Source Code)
· 소스 코드를 수령할 수 있음을 명시하는 조항 존재(예: to receive the complete machine-readable source code)   A clause exists that specifies that source code can be received (for example, to receive the complete machine-readable source code).
(5) Code 제공(5) Code provided
· 소스 코드 제공 방법에 대한 명시(web에 올려라 혹은 USB로 제공해라 등)   Specify how to provide the source code (post it on the web or via USB)
· 소스 코드 제공 약정서 제공   Provide source code agreement
· 소스 코드 제공 보증 기간 명시   Specify the source code warranty period
· 소스 코드 배포에 소요되는 비용 청구 불가능 명시(일반적으로 배포에 소요되는 최소한의 비용 청구 가능하기 때문에, 청구가 불가능한 경우 매트릭스에 조항 표시)   · Non-billable charges for distribution of source code (usually the minimum charges for distribution, so if a claim is not possible, show the clause in the matrix)
5. Notice 유지5. Notice maintenance
(6) Copyright notices 유지(6) Copyright notices maintenance
· 저작권 및 저작권 관련 고지사항 유지   · Maintain copyright and copyright notices;
· Copyright (c) yyyy.mm.dd ***** and other contributors, All rights reserved.   Copyright (c) yyyy.mm.dd ***** and other contributors, All rights reserved.
(7) Author Attribution 유지 : 기여자 정보 기재(7) Maintaining Author Attribution: Enter Contributor Information
(8) Legal notices : 작성자 또는 기여자에게 유보되어 있는 지식재산권에 대한 고지사항 작성 및 유지(8) Legal notices: prepare and maintain notices on intellectual property reserved for the author or contributor
6. (9) 수정고지6. (9) Amendment Notice
소스 코드를 수정한 경우, 수정에 관한 사항을 명시(예: 수정일시, 수정파일명, 수정범위 등)When modifying the source code, specify the matters related to the modification (e.g. modification date and time, modification file name, modification scope, etc.)
7. 특허7. Patent
(10) 특허 실시 허락 : 소스코드 등에 관한 특허권 사용 실시 허락을 명시적으로 규정(10) Patent implementation permission: To explicitly provide permission to use patent rights for source code, etc.
(11) 특허보복조항 : 소스코드 등에 관한 특허권 사용 실시 허락을 명시적으로 규정(11) Patent retaliation clause: expressly stipulates permission to use patent rights for source code, etc.
(12) 차별적 라이선스 금지 : 특허실시허락 부여에 차별을 두는 것을 금지(A에게 특허실시허락 부여, B에게 X)(12) Prohibition of discriminatory license: Prohibition of discrimination in granting patent license (Granting patent license to A, X to B)
8. Trademark 관련8. Trademark related
(13) 광고목적 사용금지(13) Ban on advertising purposes
(14) 상호, 상표, 서비스표 사용 금지(14) No Use of Trade Names, Trademarks or Service Marks
· 상호, 상표, 서비스표 사용 금지   Do not use trade names, trademarks, or service marks
· 기여자, 저작권자의 이름 사용 금지   · Don't use names of contributors and copyright holders
· 구체적으로 '이름'을 명시하고 그 '이름' 사용 금지   · Specify 'name' specifically and prohibit the use of 'name'
9. 보증 관련9. Warranty related
(15) 보증 부인 : 두 당사자간 계약을 통해 선택적으로 보증의무를 제공하는 것은 해당하지 않는다.(15) Disclaimer of Warranties: Optionally providing an obligation of guarantee through a contract between two parties is not applicable.
(16) 면책 : 두 당사자간 계약을 통해 선택적으로 책임의무를 제공하는 것은 해당하지 않는다.(16) Disclaimer: The provision of an obligation of liability selectively through a contract between two parties is not applicable.
10. (17) Permission of Reverse engineering : 코드 역분석 허용10. (17) Permission of Reverse engineering
11. (18) DRM 금지11. (18) DRM Prohibited
참고 : GPL 3.0 제3조(기술수단에 대한 우회행위 금지)Reference: Article 3 of GPL 3.0 (Prohibition of Bypass on Technical Means)
12. (19) Installation Information 제공12. (19) Provide Installation Information
제공된 코드를 컴파일 설치하는데 필요한 모든 정보를 제공할 의무. 수취자가 소스 코드를 수정하는데 필요한 파일이나 스크립트 등의 제공의무는 해당하지 않음Provide all information necessary to compile and install the provided code. Responsibilities of providing files, scripts, etc. for the recipient to modify the source code are not applicable.
13. (20) 준거법13. (20) Governing Law
· 준거법 명시   · Specify applicable law
· 관할 법원 명시   · Court of jurisdiction
· 특정 법의 정의에 따라 라이선스 해석   · Interpret the license in accordance with the definition of specific law
14. 라이선스 변환 허용(Relicensing)14. Relicensing Licenses
(21) 특정 라이선스로의 'Relicensing'(21) 'Relicensing' to specific licenses
· '특정 라이선스' 명을 구체적으로 기재(예: GPL 2.0 등으로 변환 가능)   Specify the name of a specific license (e.g. convertible to GPL 2.0, etc.)
· '특정 라이선스'와 병행하여 사용 가능(예: GPL 3.0과 AGPL 3.0)   · Can be used in conjunction with a 'specific license' (e.g. GPL 3.0 and AGPL 3.0)
(22) 차기 라이선스로의 변환 허용(22) Allow conversion to future license
15. (23) 선택적인 조항 적용15. (23) Optional provisions apply
필요에 따라 임의로 추가 가능한 라이선스 조항(특징점)Optionally add license terms as needed (features)
도 1은 본 발명의 일 실시예에 따른 라이선스 간 충돌 검사 방법의 흐름도를 나타낸다.1 is a flowchart of a method for checking a collision between licenses according to an embodiment of the present invention.
110단계에서, 주어진 사용 라이선스 lo에 대하여 각 특징점에 대한 표현값을 입력받고, 주어진 배포 라이선스 lt에 대하여 각 특징점에 대한 표현값을 입력받는다.In step 110, an expression value for each feature point is input for a given use license l o , and an expression value for each feature point is input for a given distribution license l t .
120단계에서, 배포 라이선스 lt에 대하여, 특징점 및 표현값으로 정의되는 특징점 프로파일의 집합인 프로파일 셋
Figure PCTKR2016012980-appb-I000004
를 정의한다.
In step 120, for the distribution license l t , a profile set that is a set of feature point profiles defined by feature points and expression values
Figure PCTKR2016012980-appb-I000004
Define.
130단계에서, 사용 라이선스 lo의 각 특징점의 표현값에 기초하여, 각 특징점에 대하여 임의의 배포 라이선스의 어떤 특징점이 어떤 표현값을 가지는 경우 사용 라이선스의 해당 특징점과 충돌하는지를 나타내는 충돌 프로파일 셋(conflict profile set) psi 및 충돌 프로파일 셋의 리스트 cpsl(lo, fpx)를 정의한다. 이 충돌 프로파일 셋의 리스트는 사용 라이선스가 각 특징점에 대하여 어떤 표현값을 가지는지에 따라 정해진다. In the 130 step, the use license l o, each based on the expression values of the feature point, a random distribution which feature point is set conflicts profile indicating conflicts with the feature point in the use license if it has any expression value (conflict of licenses for each feature point of the profile set) Defines the list of ps i and the collision profile set cpsl (l o , fp x ). The list of conflict profile sets is determined by what representation the license has for each feature.
일반적으로는 두 라이선스가 호환되는지 검토할 때 동종의 특징점에 대한 표현값만 고려하면 된다. 이를테면, Code 제공 사항과 면책 사항은 서로 무관하고, No license fee, Royalty free 사항과 라이선스 사본 제공 사항은 서로 무관하다. 이런 경우에는, 사용 라이선스와 배포 라이선스의 특징점 프로파일의 동일성만을 검사하면 호환성을 판단할 수 있다. 이러한 경우 각 특징점에 대한 충돌 프로파일 셋은 요소가 하나인 '충돌 프로파일'이면 충분하다.In general, you only need to consider expressions for homogeneous features when examining whether two licenses are compatible. For example, Code offerings and disclaimers are independent of each other, and No license fee, Royalty free, and license copies are independent of each other. In this case, the compatibility can be determined by checking only the identity of the feature point profile of the use license and the distribution license. In this case, the collision profile set for each feature point is sufficient if one element is the 'collision profile'.
그러나, 추가적 제약 금지 사항 또는 동일 라이선스 적용 사항과 같은 특징점의 호환성은, 자기 자신의 표현값 뿐만 아니라 다른 특징점의 표현값 또한 고려해야 한다. 이와 같은 문제로 인하여, 각 특징점에 대하여 '충돌 프로파일' 대신에 '충돌 프로파일 셋'을 정의한다. 예컨대, i 번째 특징점에 대한 충돌 프로파일 셋은, i 번째 특징점에 대한 특징점 프로파일만을 포함할 수도 있고(충돌 프로파일 셋의 요소가 하나인 경우), i 번째 특징점에 대한 특징점 프로파일과 함께 다른 j 번째 특징점에 대한 특징점 프로파일을 포함할 수도 있다(충돌 프로파일 셋의 요소가 둘 이상인 경우).However, compatibility of feature points, such as additional restriction prohibitions or equal licensing requirements, must take into account the expression values of other feature points as well as their own expression values. Due to this problem, 'collision profile set' is defined for each feature point instead of 'collision profile'. For example, the collision profile set for the i th feature point may include only the feature profile for the i th feature point (if there is only one element of the collision profile set), or the other j th feature point with the feature profile for the i th feature point. It may also include a feature point profile for the case (if more than one element of the collision profile set).
140단계에서, 충돌 프로파일 셋의 리스트 cpsl(lo, fpx)에 포함된 각 충돌 프로파일 셋 psi와 배포 라이선스의 프로파일 셋 ps(lt)를 비교하여 사용 라이선스와 배포 라이선스의 충돌 여부를 판단한다. 여기서, 어떤 충돌 프로파일 셋 psi ⊂ cpsl(lo, fpx)가 psi ⊂ ps(lt) 인 경우, 즉 어떤 충돌 프로파일 셋 psi이 배포 라이선스의 프로파일 셋 ps(lt)에 속하는 경우 사용 라이선스와 배포 라이선스는 충돌하는 것으로 판단할 수 있다.In step 140, it is determined whether the use license and the distribution license collide by comparing each conflict profile set ps i included in the list of conflict profile sets cpsl (l o , fp x ) with the profile set ps (l t ) of the distribution license. do. Where a conflicting profile set ps i ⊂ cpsl (l o , fp x ) is ps i ⊂ ps (l t ), that is, a conflicting profile set ps i belongs to the distribution license's profile set ps (l t ) Use licenses and distribution licenses can be considered conflicting.
위와 동일한 방식으로, 판단 유보에 관한 프로파일 셋, 즉 각 특징점에 대하여 임의의 배포 라이선스의 어떤 특징점이 어떤 표현값을 가지는 경우 충돌 여부에 대한 판단을 유보할 것인지를 나타내는 판단유보 프로파일 셋 및 판단유보 프로파일 셋의 리스트 hpsl(lo, fpx)를 정의하고, 어떤 판단유보 프로파일 셋이 배포 라이선스의 프로파일 셋 ps(lt)에 속하는 경우 사용 라이선스와 배포 라이선스가 충돌할 '가능성'이 있다고 판단할 수 있다. 이 경우 해당 특징점과 관련된 사항을 사용자에게 통지하여 사용자의 판단에 맡길 수 있다.In the same manner as above, a judgment set profile and a judgment profile indicating whether to reserve a judgment on whether or not to collide with a set of profiles for judgment reservations, i. You can define a list of sets hpsl (l o , fp x ) and determine that there is a 'probable' conflict between the use license and the distribution license if any of the reserved profile sets are part of the distribution license's profile set ps (l t ). have. In this case, the user may be notified of matters related to the corresponding feature point and left to the user's judgment.
도 2 및 3은 본 발명의 다른 일 실시예에 따른 라이선스 간 충돌 검사 방법의 흐름도를 나타낸다. 본 실시예는 라이선스의 선택 조항과 변환 조항을 고려한 재귀적 충돌 검사 방법으로, Routine 1(도 2)과 Routine 2(도 3)로 구성된다. 2 and 3 illustrate a flowchart of a method for checking a collision between licenses according to another embodiment of the present invention. This embodiment is a recursive collision checking method considering the license selection clause and the conversion clause, and is composed of Routine 1 (FIG. 2) and Routine 2 (FIG. 3).
선택 조항은 라이선스의 기본 상태에서는 무효하지만, 배포자의 판단에 따라서 유효화될 수 있는 제약·허가 사항이다. 사용 라이선스에 있는 제약이 배포 라이선스에 기본으로 들어 있지 않더라도, 사용자가 배포 라이선스에 그에 해당하는 선택 조항을 넣어서 배포함으로써 사용 라이선스와 배포 라이선스는 호환될 수 있다.The optional provisions are invalid in the default state of the license, but are restrictions and permissions that may be valid at the discretion of the distributor. Even if the restrictions in the use license are not included in the distribution license by default, the use license and the distribution license can be compatible by deploying the user with the corresponding selection in the distribution license.
또한, 사용 라이선스에 변환 조항, 즉 사용 라이선스 하에 배포된 저작물을 변환 조항이 지정한 다른 라이선스로 재배포할 수 있다는 조항이 들어 있는 경우, 지정된 라이선스와 배포 라이선스가 호환성이 있으면 사용 라이선스와 배포 라이선스는 간접적으로 호환된다고 할 수 있다.In addition, if a use license contains a translation clause, that is, a provision for redistribution of a work distributed under a use license to another license specified by the conversion clause, the use license and distribution license are indirectly provided that the specified license and distribution license are compatible. It is compatible.
도 2를 참조하면, 100단계에서, 도 1을 참조하여 앞서 설명한 충돌 검사 방법을 통하여 사용 라이선스와 배포 라이선스 간의 충돌 여부를 검사한다.Referring to FIG. 2, in step 100, a collision checking method between the use license and the distribution license is checked through the collision checking method described above with reference to FIG. 1.
210단계에서, 호환되는 것으로 판단되면 250단계로 진행하여 호환 판정을 한다.In step 210, if it is determined to be compatible, the process proceeds to step 250 to determine compatibility.
210단계에서, 충돌하는 것으로 판단되면 220단계로 진행하여, 배포 라이선스가 선택 조항을 가지거나 사용 라이선스가 변환 조항을 가지는지, 즉 다른 라이선스로의 변환을 허용하는지 판단한다.In step 210, if it is determined that there is a conflict, the process proceeds to step 220, in which it is determined whether the distribution license has a selection clause or the use license has a conversion clause, that is, whether to allow conversion to another license.
220단계에서 배포 라이선스가 선택 조항을 가지지도 않고 사용 라이선스가 변환 조항을 가지지도 않으면, 260단계로 진행하여 충돌(비호환) 판정을 한다. If the distribution license does not have an optional clause in step 220 and the use license does not have a conversion clause, the process proceeds to step 260 to determine a conflict (incompatibility).
220단계에서 배포 라이선스가 선택 조항을 가지거나 사용 라이선스가 변환 조항을 가지면, 230단계로 진행하여 도 3에 도시된 흐름도에 따라 라이선스 충돌 여부를 재검사한다(Routine 2 호출). If the distribution license has an optional clause at step 220 or the use license has a conversion clause, the process proceeds to step 230 and the license is checked again according to the flowchart shown in FIG. 3 (call Routine 2).
240단계에서, Routine 2에 따른 재검사 결과 호환되는 것으로 판단되면 250단계로 진행하여 호환 판정을 한다.If it is determined in step 240 that the retest according to Routine 2 is compatible, the process proceeds to step 250 to determine compatibility.
240단계에서, Routine 2에 따른 재검사 결과 충돌하는 것으로 판단되면 260단계로 진행하여 충돌(비호환) 판정을 한다. In step 240, if it is determined that the collision results from the retest according to Routine 2, the process proceeds to step 260 to determine a collision (incompatibility).
도 3을 참조하면, 310단계에서, 배포 라이선스에는 포함되지 않고 사용 라이선스에만 포함되는 특징점이 존재하는지 판단한다. 이러한 특징점은, 배포 라이선스의 경우 표현값이 'NoMention'이고, 사용 라이선스의 경우 표현값이 'Positive' 혹은 'Negative' 등인 특징점에 해당한다. Referring to FIG. 3, in step 310, it is determined whether a feature point that is not included in the distribution license but included only in the use license exists. These feature points correspond to feature points whose expression value is 'NoMention' in the case of a distribution license and 'Positive' or 'Negative' in the case of a use license.
배포 라이선스에는 포함되지 않고 사용 라이선스에만 포함되는 특징점이 존재하지 않으면 350단계로 진행하고, 존재하면 320단계로 진행한다.If there are no feature points included in the use license and not included in the distribution license, the process proceeds to step 350 and, if present, the process proceeds to step 320.
320단계에서, 사용 라이선스에만 포함되는 특징점이 모두 배포 라이선스의 선택 조항에 포함되는지 판단한다. 사용 라이선스에만 포함되는 특징점이 배포 라이선스의 선택 조항에 포함되지 않으면 350단계로 진행하고, 모두 포함되면 330단계로 진행한다.In step 320, it is determined whether all of the feature points included in the use license are included in the selection clause of the distribution license. If the feature points included only in the use license are not included in the selection clause of the distribution license, the process proceeds to step 350, and if all are included, the process proceeds to step 330.
330단계에서, 배포 라이선스 대신에, 배포 라이선스에 선택 조항을 추가한 라이선스를 대상으로 도 2의 흐름도에 따라 라이선스 충돌 여부를 검사한다(Routine 1 호출). In step 330, instead of the distribution license, the license in which the selection clause is added to the distribution license is checked according to the flowchart of FIG. 2 (call Routine 1).
340단계에서, Routine 1의 수행 결과 호환되는 것으로 판단되면 370단계로 진행하여 호환 판정을 한다.In step 340, if it is determined that the result of the routine 1 is compatible, the process proceeds to step 370 to determine compatibility.
340단계에서, Routine 1의 수행 결과 충돌하는 것으로 판단되면 350단계로 진행한다. In step 340, if it is determined that the collision results from the execution of Routine 1, the flow proceeds to step 350.
350단계에서, 사용 라이선스 대신에, 사용 라이선스가 변환을 허용한 다른 라이선스를 대상으로 도 2의 흐름도에 따라 라이선스 충돌 여부를 검사한다(Routine 1 호출). In step 350, instead of the use license, the license is checked for a license conflict according to the flowchart of FIG. 2 with respect to another license to which the use license allows conversion (call Routine 1).
360단계에서, 사용 라이선스가 변환을 허용한 다른 라이선스 중 어느 하나라도 배포 라이선스와 호환되는 것으로 판단되면 370단계로 진행하여 호환 판정을 한다.In step 360, if it is determined that any of the other licenses for which the use license is allowed to be converted is compatible with the distribution license, the process proceeds to step 370 to determine compatibility.
360단계에서, 사용 라이선스가 변환을 허용한 다른 라이선스 모두 배포 라이선스와 충돌하는 것으로 판단되면 380단계로 진행하여 충돌(비호환) 판정을 한다. If it is determined in step 360 that all of the other licenses for which the use license permits conversion conflict with the distribution license, the process proceeds to step 380 to determine a conflict (incompatibility).
앞서 설명한 바와 같이 FOSS 라이선스 78종으로부터 23개의 특징점을 선정하고, 10개의 라이선스(GPL 2.0, GPL 3.0, BSD-3, MIT, Apache 2.0, MPL 2.0, MS-RL, CDDL 1.0, EPL 1.0, 및 CeCILL 2.1)에 대하여 본 발명의 실시예에 따라 충돌 검사를 수행하였다. 도 4는 이에 따른 라이선스 호환성 매트릭스를 나타낸다. As mentioned earlier, 23 feature points were selected from 78 FOSS licenses and 10 licenses (GPL 2.0, GPL 3.0, BSD-3, MIT, Apache 2.0, MPL 2.0, MS-RL, CDDL 1.0, EPL 1.0, and CeCILL). For 2.1) a collision test was performed according to an embodiment of the present invention. 4 shows the license compatibility matrix accordingly.
도 4를 참조하면, GPL 2.0 은 그 자체로는 GPL 3.0과 호환되지 않지만 변환을 허용한 다른 라이선스를 통하여 GPL 3.0과 호환된다. 마찬가지로, CeCILL 2.1은 그 자체로는 GPL 2.0, GPL 3.0과 호환되지 않지만 변환을 허용한 다른 라이선스를 통하여 GPL 2.0, GPL 3.0과 호환된다. Referring to FIG. 4, GPL 2.0 is not compatible with GPL 3.0 on its own but is compatible with GPL 3.0 through another license that allows conversion. Similarly, CeCILL 2.1 is not compatible with GPL 2.0 or GPL 3.0 on its own, but is compatible with GPL 2.0 and GPL 3.0 through another license that allows conversion.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. The computer-readable recording medium may include a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optical reading medium (eg, a CD-ROM, a DVD, etc.).
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.
본 발명은 오픈소스 소프트웨어의 라이센스 검사를 위한 소프트웨어 개발분야에 이용될 수 있다. The present invention can be used in the field of software development for license checking of open source software.

Claims (6)

  1. 오픈소스 라이선스 간의 충돌 검사 방법에 있어서,In the method of checking for conflicts between open source licenses,
    (a) 주어진 제1 라이선스에 대하여 각 특징점에 대한 표현값을 입력받고, 주어진 제2 라이선스에 대하여 각 특징점에 대한 표현값을 입력받는 단계; 및 (a) receiving an expression value for each feature point for a given first license and receiving an expression value for each feature point for a given second license; And
    (b) 상기 제1 라이선스의 각 특징점에 대한 표현값과 상기 제2 라이선스의 각 특징점에 대한 표현값을 이용하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 충돌 검사 방법.(b) determining whether a collision between the first license and the second license is made using an expression value for each feature point of the first license and an expression value for each feature point of the second license. Collision detection method.
  2. 제1항에 있어서,The method of claim 1,
    상기 (b) 단계는, In step (b),
    (b1) 상기 제2 라이선스에 대하여, 특징점 및 표현값으로 정의되는 특징점 프로파일의 집합인 프로파일 셋을 정의하는 단계;(b1) defining, for the second license, a profile set that is a set of feature point profiles defined by feature points and expression values;
    (b2) 상기 제1 라이선스의 각 특징점의 표현값에 기초하여, 각 특징점에 대하여 임의의 라이선스의 어떤 특징점이 어떤 표현값을 가지는 경우 상기 제1 라이선스의 해당 특징점과 충돌하는지를 나타내는 충돌 프로파일 셋 및 상기 충돌 프로파일 셋의 리스트를 정의하는 단계; 및(b2) a collision profile set indicating which feature point of any license has a corresponding feature point of the first license based on the expression value of each feature point of the first license, and which feature value has any representation value for each feature point; and Defining a list of conflict profile sets; And
    (b3) 상기 충돌 프로파일 셋의 리스트에 포함된 각 충돌 프로파일 셋과 상기 제2 라이선스의 프로파일 셋을 비교하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 충돌 검사 방법.(b3) comparing each conflict profile set included in the conflict profile set list with a profile set of the second license to determine whether the first license and the second license collide with each other. Collision checking method.
  3. 제2항에 있어서,The method of claim 2,
    상기 (b3) 단계는,Step (b3),
    상기 충돌 프로파일 셋의 리스트에 포함된 어떤 충돌 프로파일 셋이 상기 제2 라이선스의 프로파일 셋에 속하는 경우 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단하는 것을 특징으로 하는 충돌 검사 방법.And determining that the first license and the second license are in conflict when any conflict profile set included in the conflict profile set belongs to the profile set of the second license.
  4. 제3항에 있어서,The method of claim 3,
    상기 (b) 단계에서 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단되는 경우, 상기 제2 라이선스에는 포함되지 않고 상기 제1 라이선스에만 포함되는 특징점이 존재하고, 상기 제2 라이선스가 선택 조항을 가지며, 상기 제1 라이선스에만 포함되는 특징점이 모두 상기 제2 라이선스의 선택 조항에 포함되면,If it is determined in step (b) that the first license and the second license are in conflict, there is a feature point included only in the first license and not included in the second license, and the second license is an optional clause. If all of the feature points included only in the first license are included in the selection clause of the second license,
    상기 제2 라이선스 대신에 상기 제2 라이선스에 상기 제1 라이선스에만 포함되는 특징점에 해당하는 선택 조항을 추가한 라이선스를 대상으로, 상기 (a) 및 (b) 단계를 수행하는 단계를 더 포함하는 것을 특징으로 하는 충돌 검사 방법.And performing the steps (a) and (b) for a license in which an optional clause corresponding to a feature point included only in the first license is added to the second license instead of the second license. Crash detection method.
  5. 제3항에 있어서,The method of claim 3,
    상기 (b) 단계에서 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단되는 경우, 상기 제1 라이선스가 상기 제1 라이선스 이외의 다른 라이선스로의 변환을 허용하면, If it is determined in step (b) that the first license and the second license are in conflict, if the first license allows conversion to a license other than the first license,
    상기 제1 라이선스 대신에 상기 다른 라이선스를 대상으로, 상기 (a) 및 (b) 단계를 수행하는 단계를 더 포함하는 것을 특징으로 하는 충돌 검사 방법.And performing the steps (a) and (b) for the other license instead of the first license.
  6. 제1항 내지 제5항 중 어느 한 항에 따른 오픈소스 라이선스 간의 충돌 검사 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for executing a method for checking a conflict between open source licenses according to any one of claims 1 to 5.
PCT/KR2016/012980 2016-07-05 2016-11-11 Method for inspecting conflict between open source licenses on basis of feature point WO2018008810A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019520340A JP6681519B2 (en) 2016-07-05 2016-11-11 Feature point based open source license conflict checking method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160084786A KR101766859B1 (en) 2016-07-05 2016-07-05 Method for checking incompatibilities between open source licenses based on feature points
KR10-2016-0084786 2016-07-05

Publications (1)

Publication Number Publication Date
WO2018008810A1 true WO2018008810A1 (en) 2018-01-11

Family

ID=59925089

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/012980 WO2018008810A1 (en) 2016-07-05 2016-11-11 Method for inspecting conflict between open source licenses on basis of feature point

Country Status (3)

Country Link
JP (1) JP6681519B2 (en)
KR (1) KR101766859B1 (en)
WO (1) WO2018008810A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005099963A (en) * 2003-09-22 2005-04-14 Konica Minolta Photo Imaging Inc License management system and method, and recording medium for license management
KR20130142692A (en) * 2012-06-20 2013-12-30 삼성전자주식회사 License verification method, apparatus and computer readable medium thereof
KR20140050323A (en) * 2012-10-19 2014-04-29 삼성전자주식회사 Method and apparatus for license verification of binary file
KR20160056341A (en) * 2014-11-10 2016-05-20 엘에스웨어(주) System and method for recommending compatible open source software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005099963A (en) * 2003-09-22 2005-04-14 Konica Minolta Photo Imaging Inc License management system and method, and recording medium for license management
KR20130142692A (en) * 2012-06-20 2013-12-30 삼성전자주식회사 License verification method, apparatus and computer readable medium thereof
KR20140050323A (en) * 2012-10-19 2014-04-29 삼성전자주식회사 Method and apparatus for license verification of binary file
KR20160056341A (en) * 2014-11-10 2016-05-20 엘에스웨어(주) System and method for recommending compatible open source software

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PARK, JUN-SEOK: "(A) Study on the Open Source Software Management Framework Development and its Applying Strategies for Structural Resolution of License Conflicts", GRADUATE SCHOOL OF SANG MYUNG UNIVERSITY DOCTORAL THESIS, February 2015 (2015-02-01), pages 1 - 113 *

Also Published As

Publication number Publication date
KR101766859B1 (en) 2017-09-06
JP2019520665A (en) 2019-07-18
JP6681519B2 (en) 2020-04-15

Similar Documents

Publication Publication Date Title
WO2018056601A1 (en) Device and method for blocking ransomware using contents file access control
WO2015034175A1 (en) Method, system, and apparatus for enhancing security of internal information of business
WO2010087678A2 (en) System and method for clipboard security
WO2014119936A1 (en) Method of and apparatus for processing software using hash function to secure software, and computer-readable medium storing executable instructions for performing the method
WO2011031093A2 (en) Apparatus and method for managing digital rights using virtualization technique
WO2017213473A1 (en) Method for managing files and apparatus using the same
WO2020224249A1 (en) Blockchain-based transaction processing method, device and apparatus, and storage medium
WO2015160118A1 (en) Access control method and apparatus of application program for secure storage area
WO2021040265A1 (en) Method and device for measuring worker competence by using average return rate
WO2018124495A1 (en) Illegal content search system and method thereof
WO2016111525A1 (en) Source code transfer control method, computer program therefor, and recording medium therefor
WO2022019500A1 (en) Method for providing compensated practical training for participants in practical training for crowdsourcing-based project for generating artificial intelligence learning data, device therefor, and computer program therefor
WO2014088262A1 (en) Apparatus and method for detecting fraudulent/altered applications
WO2021085718A1 (en) Device for preventing and blocking posting of harmful content
WO2018016671A2 (en) Dangerous code detection system for checking security vulnerability and method thereof
WO2021172668A1 (en) First copyright holder authentication system using blockchain, and method therefor
WO2022260254A1 (en) On-device android malicious code detection method based on adaptive model through transfer learning, and recording medium and apparatus for performing same
WO2023153558A1 (en) Method for managing authority over resources included in structured document, and apparatus using same
WO2022124720A1 (en) Method for detecting error of operating system kernel memory in real time
WO2018008810A1 (en) Method for inspecting conflict between open source licenses on basis of feature point
WO2019103443A1 (en) Method, apparatus and system for managing electronic fingerprint of electronic file
WO2020153580A1 (en) Method for processing transaction using external node on blockchain and apparatus for performing method
WO2018151384A1 (en) Communication data modeling method
WO2023113081A1 (en) Method, apparatus, and computer-readable recording medium for controlling execution of container workload in scheme of event streaming in cloud environment
WO2022005111A1 (en) Method for automatically granting inspection authority to worker, based on results of tasks of crowdsourcing-based project for generating artificial intelligence learning data, apparatus therefor, and computer program therefor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16908252

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019520340

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16908252

Country of ref document: EP

Kind code of ref document: A1