KR101766859B1 - Method for checking incompatibilities between open source licenses based on feature points - Google Patents

Method for checking incompatibilities between open source licenses based on feature points Download PDF

Info

Publication number
KR101766859B1
KR101766859B1 KR1020160084786A KR20160084786A KR101766859B1 KR 101766859 B1 KR101766859 B1 KR 101766859B1 KR 1020160084786 A KR1020160084786 A KR 1020160084786A KR 20160084786 A KR20160084786 A KR 20160084786A KR 101766859 B1 KR101766859 B1 KR 101766859B1
Authority
KR
South Korea
Prior art keywords
license
minutiae
conflict
computer
profile
Prior art date
Application number
KR1020160084786A
Other languages
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 KR1020160084786A priority Critical patent/KR101766859B1/en
Priority to PCT/KR2016/012980 priority patent/WO2018008810A1/en
Priority to JP2019520340A priority patent/JP6681519B2/en
Application granted granted Critical
Publication of KR101766859B1 publication Critical patent/KR101766859B1/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

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

Provided are a method for automatically checking a collision between open source licenses. According to the present invention, the method for checking a collision between open source licenses comprises the steps of: (a) receiving an expression value on each feature point for a given first license, and receiving an expression value on each feature point for a given second license; and (b) determining whether the first license and a second license are collided by using the expression value on each feature point for the first license and the expression value on each feature point for the second license.

Description

특징점 기반의 오픈소스 라이선스 간 충돌 검사 방법{Method for checking incompatibilities between open source licenses based on feature points}A method for checking conflicts between open source licenses based on feature points {

본 발명은 오픈소스 라이선스 간 충돌 검사 방법에 관한 것으로, 보다 상세하게는 특징점을 기반으로 오픈소스 라이선스 간의 충돌을 검사하는 방법에 관한 것이다.The present invention relates to a method for checking conflicts between open source licenses, and more particularly, to a method for checking conflicts between open source licenses based on feature points.

셋탑박스나 보안장비 등의 개발시 오픈소스 형태의 임베디드 소프트웨어들이 활용되고 있지만, 오픈소스 라이선스에 대한 명확한 이해가 부족하여 법적 소송에 휘말리는 경우가 종종 있다.While open-source embedded software is used in the development of set-top boxes and security equipment, there is often a lack of clear understanding of open source licenses, which often leads to legal action.

특히 오픈소스를 2개 이상 동시에 활용하거나, 원하는 라이선스로 변경하여 배포하고자 하는 경우 라이선스 간의 충돌 문제가 발생할 수 있으며, 충돌 발생시 해당 오픈소스를 사용할 수 없게 된다.In particular, if two or more open source programs are used at the same time, or if they are changed to the desired licenses, conflicts between licenses can arise and the open source can not be used in case of a conflict.

2개 이상의 라이선스가 공종하는 경우, 충돌 여부를 검사하기 위해서는 법률적 해석이 필요하며, 현재 법률전문가가 라이선스 조항 전체(Full text)를 상호 비교하여 검토하고 있다.If two or more licenses are involved, a legal interpretation is required to check for conflicts, and current legal experts are reviewing the full text of the license terms.

오픈소스 라이선스는 매우 다양하게 존재하며, OSI(Open Source Initiative)에서 공식 인증한 라이선스 종류는 현재 78개, SPDX(Software Package Data Exchange) 그룹에서 사용하고 있는 라이선스 종류는 120개 이상이 존재한다.There are many open source licenses, and there are currently 78 license types officially certified by OSI (Open Source Initiative) and more than 120 license types used by SPDX (Software Package Data Exchange) group.

따라서, 많은 수의 오픈소스 라이선스 조항 전체를 매번 해석하고 비교 검토하기에는 많은 어려움이 있으며, 개발자가 원하는 최적의 라이선스를 추천해 주기 어렵다.Therefore, there is a lot of difficulty in interpreting and comparing all the large number of open source license terms every time, and it is difficult to recommend optimal licenses that developers want.

박준석. ‘오픈 소스 소프트웨어 라이선스 충돌의 구조적 해결을 위한 관리 프레임워크의 개발 및 적용 전략에 관한 연구’. 상명대학교 대학원 박사학위 논문, 2015. 2.Park, Joon Suk. 'A Study on Development and Application Strategies of Management Framework for Structural Solution of Open Source Software License Conflict'. Sangmyung University graduate school doctoral dissertation, 2015. 2.

본 발명이 이루고자 하는 기술적 과제는 오픈소스 라이선스 간의 충돌 검사를 자동화할 수 있는 방법을 제공하는 데 있다. SUMMARY OF THE INVENTION The present invention provides a method for automating conflict checking between open source licenses.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 오픈소스 라이선스 간 충돌 검사 방법은, (a) 주어진 제1 라이선스에 대하여 각 특징점에 대한 표현값을 입력받고, 주어진 제2 라이선스에 대하여 각 특징점에 대한 표현값을 입력받는 단계; 및 (b) 상기 제1 라이선스의 각 특징점에 대한 표현값과 상기 제2 라이선스의 각 특징점에 대한 표현값을 이용하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided an open source license collision checking method, comprising: (a) receiving a representation value for each minutiae for a given first license; Receiving a value; And (b) determining whether the first license and the second license conflict with each other by using a representation value of each feature point of the first license and a representation value of each feature point of the second license .

상기 (b) 단계는, (b1) 상기 제2 라이선스에 대하여, 특징점 및 표현값으로 정의되는 특징점 프로파일의 집합인 프로파일 셋을 정의하는 단계; (b2) 상기 제1 라이선스의 각 특징점의 표현값에 기초하여, 각 특징점에 대하여 임의의 라이선스의 어떤 특징점이 어떤 표현값을 가지는 경우 상기 제1 라이선스의 해당 특징점과 충돌하는지를 나타내는 충돌 프로파일 셋 및 상기 충돌 프로파일 셋의 리스트를 정의하는 단계; 및 (b3) 상기 충돌 프로파일 셋의 리스트에 포함된 각 충돌 프로파일 셋과 상기 제2 라이선스의 프로파일 셋을 비교하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함할 수 있다.The step (b) includes the steps of: (b1) defining, for the second license, a profile set that is a set of minutiae profiles defined as minutiae and expression values; (b2) a conflict profile set indicating, based on the expression value of each feature point of the first license, whether a feature point of an arbitrary license has a certain expression value for each feature point, colliding with the corresponding feature point of the first license, and Defining a list of crash profile sets; And (b3) comparing each of the conflict profile sets included in the list of the conflict profile sets with the profile set of the second license to determine whether the first license conflicts with the second license.

상기 (b3) 단계는, 상기 충돌 프로파일 셋의 리스트에 포함된 어떤 충돌 프로파일 셋이 상기 제2 라이선스의 프로파일 셋에 속하는 경우 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단할 수 있다.The step (b3) may determine that the first license conflicts with the second license if any conflict profile set included in the list of conflict profile sets belongs to the profile set of the second license.

상기 충돌 검사 방법은, 상기 (b) 단계에서 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단되는 경우, 상기 제2 라이선스에는 포함되지 않고 상기 제1 라이선스에만 포함되는 특징점이 존재하고, 상기 제2 라이선스가 선택 조항을 가지며, 상기 제1 라이선스에만 포함되는 특징점이 모두 상기 제2 라이선스의 선택 조항에 포함되면, 상기 제2 라이선스 대신에 상기 제2 라이선스에 상기 제1 라이선스에만 포함되는 특징점에 해당하는 선택 조항을 추가한 라이선스를 대상으로, 상기 (a) 및 (b) 단계를 수행하는 단계를 더 포함할 수 있다.Wherein the collision checking method further comprises a step of, when it is determined that the first license conflicts with the second license in the step (b), a minutiae that is not included in the second license but is included only in the first license, If the second license has a selection rule and all minutiae included only in the first license are included in the selection rule of the second license, the minutiae included in only the first license in the second license instead of the second license The method may further include performing the steps (a) and (b) for the license to which the corresponding selection item is added.

상기 충돌 검사 방법은, 상기 (b) 단계에서 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단되는 경우, 상기 제1 라이선스가 상기 제1 라이선스 이외의 다른 라이선스로의 변환을 허용하면, 상기 제1 라이선스 대신에 상기 다른 라이선스를 대상으로, 상기 (a) 및 (b) 단계를 수행하는 단계를 더 포함할 수 있다.The method of claim 1, wherein, in the step (b), if it is determined that the first license conflicts with the second license, if the first license permits conversion to a license other than the first license, The method may further include performing the steps (a) and (b) on the other license instead of the first license.

상기 기술적 과제를 해결하기 위하여 상기된 본 발명에 따른 오픈소스 라이선스 간 충돌 검사 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.According to an aspect of the present invention, there is provided a computer-readable recording medium storing a program for executing an open source license collision checking method according to the present invention.

상기된 본 발명에 의하면, 오픈소스 라이선스 간의 충돌 검사를 자동화할 수 있다. According to the present invention described above, it is possible to automate conflict checking between open source licenses.

도 1은 본 발명의 일 실시예에 따른 라이선스 간 충돌 검사 방법의 흐름도를 나타낸다.
도 2 및 3은 본 발명의 다른 일 실시예에 따른 라이선스 간 충돌 검사 방법의 흐름도를 나타낸다.
도 4는 본 발명의 실시예에 따라 충돌 검사를 수행한 결과의 라이선스 호환성 매트릭스를 나타낸다.
FIG. 1 is a flowchart illustrating a method of checking license conflicts according to an embodiment of the present invention.
2 and 3 are flowcharts illustrating a method of checking license conflicts according to another embodiment of the present invention.
4 shows a license compatibility matrix of the results of performing a conflict check according to an embodiment of the present invention.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. In the following description and the accompanying drawings, substantially the same components are denoted by the same reference numerals, and redundant description will be omitted. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

본 명세서에서는 다음과 같이 용어를 정의하기로 한다. 다만, 이러한 정의는 개별 라이선스에서는 이와 다르게 재정의될 수 있다.In this specification, the following terms will be defined. However, such definitions may be redefined differently in individual licenses.

라이선스 : 라이선스는 그것이 적용된 저작물의 사용자가 지켜야 할 사항이 명시된 계약서이다.License: A license is a contract stating what must be followed by the user of the work to which it applies.

배포자(Licensor, Distributor) : 원 저작물의 배포자.Distributor (Licensor, Distributor): Distributor of the original work.

사용자(Licensee, Recipient) : 배포된 임의의 저작물을 사용하는 자.User (Licensee, Recipient): Anyone who uses any distributed work.

사용 라이선스 : (원 저작물의) 배포자가 사용자가 받은 저작물에 적용한 라이선스.Usage license: The license that the distributor (in the original work) applied to the work you received.

재배포 : 재배포란, 저작물의 사용자가 그 저작물을 ⅰ) 그대로, 혹은 ⅱ) 수정하여(modified work) 또는 ⅲ) 일부로서 사용한 저작물(파생 저작물, derivative works)을 배포하는 것. 재배포되는 저작물을 재배포물이라 한다.Redistribution: Redistribution means the distribution of the works used by the user of the work, either as a modified work or as part of the work. The work to be redistributed is called redistribution.

배포 라이선스 : 사용자가 재배포물을 배포할 때, 사용자가 재배포물에 적용한 라이선스.Distribution License: The license you have applied to the redistribution when you distribute the redistribution.

변환(Relicense) : 적용되어 있는 임의의 라이선스 대신 다른(정해진) 라이선스를 새로 적용하는 것.Relicense: Apply a new (fixed) license in lieu of any licenses applied.

선택 조항(Optional Clause) : 라이선스의 기본 상태에서는 비활성화되어 있는 조항이지만, 배포자가 명시적으로 추가하는 경우 활성화될 수 있는 조항.Optional Clause: A clause that is disabled in the default state of the license, but which can be activated if the distributor explicitly adds it.

본 발명의 실시예에서는, 오픈소스 라이선스가 적용되어 있는 임의의 저작물의 사용자가 원 저작물에 적용되어 있는 라이선스와 다른 라이선스로 재배포하려고 하는 경우의 두 라이선스 간의 충돌 검사 방법에 관하여 설명한다. 즉, 설명의 편의상 사용 라이선스와 배포 라이선스 간의 충돌을 검사하는 방법을 예로 들어 설명한다. 다만 본 발명의 실시예는 임의의 두 라이선스 간의 충돌을 검사하는 방법에 적용될 수 있으며, 이 경우 '사용 라이선스'는 '제1 라이선스'로, 배포 라이선스는 '제2 라이선스'로 일반화될 수 있다.In the embodiment of the present invention, a method of checking collision between two licenses when a user of an arbitrary work to which an open source license is applied attempts to redistribute the license to a license different from the license applied to the original work. For the sake of clarity, the example explains how to check for conflicts between use licenses and distribution licenses. However, the embodiment of the present invention can be applied to a method for checking conflicts between any two licenses, in which case the 'use license' can be generalized as 'first license' and the distribution license can be generalized as 'second license'.

어떤 저작물이 임의의 사용 라이선스로 배포된 경우, 원 저작물의 사용자는 그 사용 라이선스의 내용에 따라야 한다. 또 임의의 사용 라이선스 하에 배포된 저작물을 임의의 배포 라이선스 하에 재배포하려는 경우, 재배포된 저작물의 사용자는 원 저작물의 사용 라이선스 대신 사용자가 적용한 배포 라이선스를 따라야 한다. 배포되는 저작물, 특히 FOSS 소프트웨어에 적용하는 라이선스는, 일반적으로 그 저작물의 사용을 허가하는 권리, 금지 사항 및 재배포시에 지켜야 할 사항 등이 명시되어 있다. 특히, 재배포에 관하여 사용 라이선스가 어떠한 제약을 가하고 있다면, 사용자는 그 제약 하에서 배포 라이선스를 선택해야 한다. 이 제약은 재배포에 직ㅇ간접적으로 관련있는 제약 전체를 의미한다.If a work is distributed under a use license, the user of the original work must conform to the content of the use license. In addition, if you want to redistribute a work distributed under any use license under any distribution license, the user of the redistributed work must comply with the distribution license applied by the user in lieu of the use license of the original work. Licenses to be distributed, in particular the FOSS software, generally specify the right to permit the use of the work, the prohibitions and the terms of redistribution. In particular, if the use license has some restrictions on the redistribution, the user must select the distribution license under that restriction. This constraint implies an entire constraint that is directly or indirectly related to redistribution.

그렇기 때문에, 사용자는 재배포물에 임의의 배포 라이선스를 적용하여 재배포하고 싶은 경우, 배포 라이선스와 사용 라이선스의 내용이 상충하지 않는지 확인해야 한다.Therefore, if you want to redistribute a redistribution with any distribution license, you must make sure that the distribution license does not conflict with 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 can be defined as follows. License set is L 1 = {l 1, l 2, ...}, a set of feature point FP = {fp 1, fp 2 , ...}, a set of expression values for the characteristic point is ET = {NoMention, Positive , Negative}, and the set of compatibility judgment values can be CS = {Compatible, Suspicious, Incompatible}. Here, the minutia refers to each regulation or clause indicating the connection relationship, distribution obligation, modification, patent right, private use, license maintenance, trademark right, etc. in any license.

각 라이선스 li는 모든 특징점 FP에 관하여 그 표현값

Figure 112016064985171-pat00001
를 해당 라이선스의 내용으로부터 배정하여 정의할 수 있다. 특징점에 대한 표현값은 라이선스의 내용을 수동으로 혹은 자동으로 분석하여 정의할 수 있다.Each license l i, for all feature points FP,
Figure 112016064985171-pat00001
Can be defined by assigning it from the contents of the license. The expression value for the minutiae can be defined by analyzing the contents of the license manually or automatically.

위의 정의에 따라, 특징점 프로파일(feature point profile) fppx를 다음과 같이 정의할 수 있다.

Figure 112016064985171-pat00002
. 어떤 라이선스 li의 각 특징점의 특징점 프로파일로부터, 라이선스 li에 관한 특징점 프로파일의 집합인 프로파일 셋을
Figure 112016064985171-pat00003
로 정의할 수 있다. 특히, 라이선스 간의 재배포 시의 호환성 문제는, 사용 라이선스 lo(original license)와 배포 라이선스 lt(target license)({lo, lt} ⊂ L)로 구성된다.According to the above definition, the feature point profile fpp x can be defined as follows.
Figure 112016064985171-pat00002
. 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 112016064985171-pat00003
. In particular, the compatibility problem of the redistribution between the license is composed of a license to use l o (original license) and deployment on l t (target license) ({ l o, l t} ⊂ L).

본 발명의 실시예에서는, FOSS 라이선스 78종에 대한 종합적인 분석을 통해, FOSS 라이선스의 호환성 검증시 필요한 대표적인 특징점으로 다음과 같이 23개의 특징점을 선정하였다. 다만 이러한 특징점들은 예시에 불과할 뿐이며, 특징점은 얼마든지 수정되거나, 삭제되거나, 추가될 수 있음은 물론이다.In the embodiment of the present invention, 23 characteristic points are selected as representative characteristic points required for verification of FOSS license compatibility through a comprehensive analysis of 78 FOSS licenses. However, these feature points are merely examples, and the feature points may be modified, deleted, or added in any way.

1. (1) 추가 제약 금지(No further restriction)1. (1) No further restriction.

해당 라이선스에서 명시적으로 정한 사항 이외에 사용자(수취인)의 권리를 제한하는 사항부과(sublicense, relicense 등으로) 제한Restricted (sublicense, relicense, etc.) restrictions on the rights of users (recipients) other than those expressly set forth in that license

2. (2) 동일 라이선스 유지(Copyleft)2. (2) Keep the same license (copyleft)

특정 라이선스로 배포된 소스코드를 수령하여 원본 혹은 수정하여 재배포할 때, 수령 당시 소스코드에 적용된 라이선스와 동일한 라이선스로 재배포할 것을 의무화You are required to redistribute the source code that is distributed under a specific license, and redistribute it in its original or modified version, with the same license as that applied to the source code at the time of receipt

3. (3) No license fee, Royalty free3. (3) No license fee, Royalty free

소스 코드의 저작권 사용에 대한 사용료 부과 금지Prohibition of royalty use of source code

· 배포를 위해 소요되는 최소한의 배포 비용 청구는 해당하지 않는다.   · There is no minimum deployment charge for distribution.

· 서비스 비용 청구는 해당하지 않는다.   · Service charges are not applicable.

· 특허에 대한 No license fee, Royalty free와 구분한다.   · Separate license fees from royalty and royalty.

4. Source Code 관련4. Source Code

(4) Code 공개(4) Code disclosure

· 소스 코드 공개(원본 소스코드 혹은 원본+수정 소스코드)   · Source code release (original source code or original + modified source code)

· 소스 코드를 수령할 수 있음을 명시하는 조항 존재(예: to receive the complete machine-readable source code)   · A provision stating that the source code can be received (eg, to receive the complete machine-readable source code)

(5) Code 제공(5) Code provided

· 소스 코드 제공 방법에 대한 명시(web에 올려라 혹은 USB로 제공해라 등)   · Explain how to provide the source code (upload it to the web or provide it via USB)

· 소스 코드 제공 약정서 제공   Provided source code agreement

· 소스 코드 제공 보증 기간 명시   · Specify source code provided warranty period

· 소스 코드 배포에 소요되는 비용 청구 불가능 명시(일반적으로 배포에 소요되는 최소한의 비용 청구 가능하기 때문에, 청구가 불가능한 경우 매트릭스에 조항 표시)   · Indication of non-chargeable expenses for source code distribution (usually a minimum charge for deployment, so if the charge is not possible, the matrix will display a clause)

5. Notice 유지5. Keep the Notice

(6) Copyright notices 유지(6) Copyright notices maintained

· 저작권 및 저작권 관련 고지사항 유지   · 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) Author Attribution Maintain: Describe contributor information

(8) Legal notices : 작성자 또는 기여자에게 유보되어 있는 지식재산권에 대한 고지사항 작성 및 유지(8) Legal notices: Create and maintain notices about intellectual property rights reserved to authors or contributors.

6. (9) 수정고지6. (9) Amendment Notice

소스 코드를 수정한 경우, 수정에 관한 사항을 명시(예: 수정일시, 수정파일명, 수정범위 등)If the source code has been modified, specify the details of the modification (eg, date of modification, name of the modified file, scope of modification, etc.)

7. 특허7. Patent

(10) 특허 실시 허락 : 소스코드 등에 관한 특허권 사용 실시 허락을 명시적으로 규정(10) Permission to patent: Explicit permission to use patent rights on source code, etc.

(11) 특허보복조항 : 소스코드 등에 관한 특허권 사용 실시 허락을 명시적으로 규정(11) Patent retaliation provision: Explicitly grant permission to use patent rights on source code, etc.

(12) 차별적 라이선스 금지 : 특허실시허락 부여에 차별을 두는 것을 금지(A에게 특허실시허락 부여, B에게 X)(12) Prohibition of discriminatory license: Prohibition of discrimination in patent granting (granting patent grant to A, B to X)

8. Trademark 관련8. Trademark related

(13) 광고목적 사용금지(13) Do not use advertising purpose

(14) 상호, 상표, 서비스표 사용 금지(14) Prohibition of use of trade name, trademark, service mark

· 상호, 상표, 서비스표 사용 금지   · No use of trade names, trademarks, or service marks

· 기여자, 저작권자의 이름 사용 금지   · Prohibit the use of names of contributors and copyright holders

· 구체적으로 '이름'을 명시하고 그 '이름' 사용 금지   · Specify 'name' specifically and prohibit the use of 'name'

9. 보증 관련9. Warranty

(15) 보증 부인 : 두 당사자간 계약을 통해 선택적으로 보증의무를 제공하는 것은 해당하지 않는다.(15) Disclaimer: Providing an optional warranty obligation through a contract between the two parties does not apply.

(16) 면책 : 두 당사자간 계약을 통해 선택적으로 책임의무를 제공하는 것은 해당하지 않는다.(16) Indemnification: Providing an optional liability obligation through a contract between the two parties is not applicable.

10. (17) Permission of Reverse engineering : 코드 역분석 허용10. (17) Permission of Reverse engineering: Allow code reverse analysis

11. (18) DRM 금지11. (18) Prohibition of DRM

참고 : GPL 3.0 제3조(기술수단에 대한 우회행위 금지)Note: GPL 3.0 Article 3 (Prohibition of bypassing technical means)

12. (19) Installation Information 제공12. (19) Providing Installation Information

제공된 코드를 컴파일ㅇ설치하는데 필요한 모든 정보를 제공할 의무. 수취자가 소스 코드를 수정하는데 필요한 파일이나 스크립트 등의 제공의무는 해당하지 않음Obligation to provide all information necessary to compile and install the provided code. The obligations of the recipient to provide the files or scripts necessary to modify the source code are not covered.

13. (20) 준거법13. (20) Governing Law

· 준거법 명시   · Specify the governing law

· 관할 법원 명시   · Specify the competent court

· 특정 법의 정의에 따라 라이선스 해석   · License interpretation according to the definition of a specific law

14. 라이선스 변환 허용(Relicensing)14. Relicensing

(21) 특정 라이선스로의 'Relicensing'(21) 'Relicensing' to a specific license

· '특정 라이선스' 명을 구체적으로 기재(예: GPL 2.0 등으로 변환 가능)   · Provide a specific license name (eg, GPL 2.0)

· '특정 라이선스'와 병행하여 사용 가능(예: GPL 3.0과 AGPL 3.0)   · Can be used in conjunction with 'specific licenses' (eg GPL 3.0 and AGPL 3.0)

(22) 차기 라이선스로의 변환 허용(22) Allow conversion to next license

15. (23) 선택적인 조항 적용15. (23) Applying selective provisions

필요에 따라 임의로 추가 가능한 라이선스 조항(특징점)License terms (feature points) that can be optionally added as needed

도 1은 본 발명의 일 실시예에 따른 라이선스 간 충돌 검사 방법의 흐름도를 나타낸다.FIG. 1 is a flowchart illustrating a method of checking license conflicts according to an embodiment of the present invention.

110단계에서, 주어진 사용 라이선스 lo에 대하여 각 특징점에 대한 표현값을 입력받고, 주어진 배포 라이선스 lt에 대하여 각 특징점에 대한 표현값을 입력받는다.In step 110, receiving a representation value for each feature point used for a given license l o, receives the expression values for each of the feature points for a given deployment on t l.

120단계에서, 배포 라이선스 lt에 대하여, 특징점 및 표현값으로 정의되는 특징점 프로파일의 집합인 프로파일 셋

Figure 112016064985171-pat00004
를 정의한다.In step 120, for the distribution license l t , a profile set, which is a set of minutiae profiles defined as minutiae and expression values,
Figure 112016064985171-pat00004
.

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) ps i and the list of crash profile sets cpsl (l o , fp x ). This list of collision profile sets is determined by which license the usage license has for each feature point.

일반적으로는 두 라이선스가 호환되는지 검토할 때 동종의 특징점에 대한 표현값만 고려하면 된다. 이를테면, Code 제공 사항과 면책 사항은 서로 무관하고, No license fee, Royalty free 사항과 라이선스 사본 제공 사항은 서로 무관하다. 이런 경우에는, 사용 라이선스와 배포 라이선스의 특징점 프로파일의 동일성만을 검사하면 호환성을 판단할 수 있다. 이러한 경우 각 특징점에 대한 충돌 프로파일 셋은 요소가 하나인 '충돌 프로파일'이면 충분하다.Generally, when considering whether the two licenses are compatible, you only need to consider the expression values for the same minutiae. For example, the provisions of the Code and the disclaimer are irrelevant, and the terms "No license fee", "Royalty free" and "License copy" are irrelevant. In this case, compatibility can be judged by checking only the identity of the usage license and the minutiae profile of the distribution license. In this case, the set of collision profiles for each feature point is sufficient for a single 'collision profile'.

그러나, 추가적 제약 금지 사항 또는 동일 라이선스 적용 사항과 같은 특징점의 호환성은, 자기 자신의 표현값 뿐만 아니라 다른 특징점의 표현값 또한 고려해야 한다. 이와 같은 문제로 인하여, 각 특징점에 대하여 '충돌 프로파일' 대신에 '충돌 프로파일 셋'을 정의한다. 예컨대, i 번째 특징점에 대한 충돌 프로파일 셋은, i 번째 특징점에 대한 특징점 프로파일만을 포함할 수도 있고(충돌 프로파일 셋의 요소가 하나인 경우), i 번째 특징점에 대한 특징점 프로파일과 함께 다른 j 번째 특징점에 대한 특징점 프로파일을 포함할 수도 있다(충돌 프로파일 셋의 요소가 둘 이상인 경우).However, compatibility of feature points, such as additional constraints or the same license application, must take into account not only their own representation but also the representation of other feature points. Due to such a problem, a 'collision profile set' is defined instead of a 'collision profile' for each feature point. For example, the collision profile set for the i-th feature point may include only the feature point profile for the i-th feature point (if the element of the collision profile set is one), and the feature point profile for the i- (If there are more than one element in the crash profile set).

140단계에서, 충돌 프로파일 셋의 리스트 cpsl(lo, fpx)에 포함된 각 충돌 프로파일 셋 psi와 배포 라이선스의 프로파일 셋 ps(lt)를 비교하여 사용 라이선스와 배포 라이선스의 충돌 여부를 판단한다. 여기서, 어떤 충돌 프로파일 셋 psi ⊂ cpsl(lo, fpx)가 psi ⊂ ps(lt) 인 경우, 즉 어떤 충돌 프로파일 셋 psi이 배포 라이선스의 프로파일 셋 ps(lt)에 속하는 경우 사용 라이선스와 배포 라이선스는 충돌하는 것으로 판단할 수 있다.In step 140, each conflict profile set ps i included in the list cpsl (l o , fp x ) of the conflict profile set is compared with the profile set ps (l t ) of the distribution license to judge whether the usage license conflicts with the distribution license do. Here, if the set of conflict profiles ps i ⊂ cpsl (l o , fp x ) is ps i ⊂ ps (l t ), that is, if any conflict profile set ps i belongs to the profile set ps (l t ) The use license and the distribution license can be judged to be in conflict.

위와 동일한 방식으로, 판단 유보에 관한 프로파일 셋, 즉 각 특징점에 대하여 임의의 배포 라이선스의 어떤 특징점이 어떤 표현값을 가지는 경우 충돌 여부에 대한 판단을 유보할 것인지를 나타내는 판단유보 프로파일 셋 및 판단유보 프로파일 셋의 리스트 hpsl(lo, fpx)를 정의하고, 어떤 판단유보 프로파일 셋이 배포 라이선스의 프로파일 셋 ps(lt)에 속하는 경우 사용 라이선스와 배포 라이선스가 충돌할 '가능성'이 있다고 판단할 수 있다. 이 경우 해당 특징점과 관련된 사항을 사용자에게 통지하여 사용자의 판단에 맡길 수 있다.In the same manner as above, a profile set relating to a judgment reservation, that is, a judgment reservation profile set indicating whether to judge whether or not a collision is to be made if any minutiae point of a distribution license has a certain expression value for each minutiae point, Define a list of hpsl (l o , fp x ) of the set and determine if there is a conflict of use and distribution licenses if any of the decision-making profile sets belong to the profile set ps (l t ) of the distribution license have. In this case, the user can be notified of the matters related to the feature point and left to the user's judgment.

도 2 및 3은 본 발명의 다른 일 실시예에 따른 라이선스 간 충돌 검사 방법의 흐름도를 나타낸다. 본 실시예는 라이선스의 선택 조항과 변환 조항을 고려한 재귀적 충돌 검사 방법으로, Routine 1(도 2)과 Routine 2(도 3)로 구성된다. 2 and 3 are flowcharts illustrating a method of checking license conflicts according to another embodiment of the present invention. This embodiment is a recursive collision inspection method considering the selection terms of the license and the conversion clause, and is composed of Routine 1 (FIG. 2) and Routine 2 (FIG. 3).

선택 조항은 라이선스의 기본 상태에서는 무효하지만, 배포자의 판단에 따라서 유효화될 수 있는 제약·허가 사항이다. 사용 라이선스에 있는 제약이 배포 라이선스에 기본으로 들어 있지 않더라도, 사용자가 배포 라이선스에 그에 해당하는 선택 조항을 넣어서 배포함으로써 사용 라이선스와 배포 라이선스는 호환될 수 있다.The selection clause is invalid in the default state of the license, but is a restriction and authorization that can be validated 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 allowing the user to distribute the corresponding selection clause in the distribution license.

또한, 사용 라이선스에 변환 조항, 즉 사용 라이선스 하에 배포된 저작물을 변환 조항이 지정한 다른 라이선스로 재배포할 수 있다는 조항이 들어 있는 경우, 지정된 라이선스와 배포 라이선스가 호환성이 있으면 사용 라이선스와 배포 라이선스는 간접적으로 호환된다고 할 수 있다.In addition, if the use license contains a conversion clause-that is, a redistribution of the work distributed under the use license to another license specified by the conversion clause, if the designated license and the distribution license are compatible, the use license and distribution license are indirectly It is compatible.

도 2를 참조하면, 100단계에서, 도 1을 참조하여 앞서 설명한 충돌 검사 방법을 통하여 사용 라이선스와 배포 라이선스 간의 충돌 여부를 검사한다.Referring to FIG. 2, in step 100, a collision between a usage license and a distribution license is checked through the collision checking method described above with reference to FIG.

210단계에서, 호환되는 것으로 판단되면 250단계로 진행하여 호환 판정을 한다.In step 210, if it is determined that they are compatible, the flow advances to step 250 to make a compatibility determination.

210단계에서, 충돌하는 것으로 판단되면 220단계로 진행하여, 배포 라이선스가 선택 조항을 가지거나 사용 라이선스가 변환 조항을 가지는지, 즉 다른 라이선스로의 변환을 허용하는지 판단한다.If it is determined in step 210 that there is a conflict, the process proceeds to step 220 and determines whether the distribution license has a selection clause or whether the use license has a conversion clause, that is, conversion to another license.

220단계에서 배포 라이선스가 선택 조항을 가지지도 않고 사용 라이선스가 변환 조항을 가지지도 않으면, 260단계로 진행하여 충돌(비호환) 판정을 한다. If the distribution license does not have a selection clause in step 220 and the use license does not have a conversion clause, proceed to step 260 to make a conflict (incompatibility) determination.

220단계에서 배포 라이선스가 선택 조항을 가지거나 사용 라이선스가 변환 조항을 가지면, 230단계로 진행하여 도 3에 도시된 흐름도에 따라 라이선스 충돌 여부를 재검사한다(Routine 2 호출). If the distribution license has an optional clause in step 220 or the use license has a conversion clause, the flow advances to step 230 and re-examines whether the license conflict occurs according to the flowchart shown in FIG. 3 (call Routine 2).

240단계에서, Routine 2에 따른 재검사 결과 호환되는 것으로 판단되면 250단계로 진행하여 호환 판정을 한다.If it is determined in step 240 that the result of the retest according to Routine 2 is compatible, the process proceeds to step 250 to make a compatibility determination.

240단계에서, Routine 2에 따른 재검사 결과 충돌하는 것으로 판단되면 260단계로 진행하여 충돌(비호환) 판정을 한다. If it is determined in step 240 that the result of the retest according to Routine 2 is a conflict, the process proceeds to step 260 and a collision (incompatibility) determination is made.

도 3을 참조하면, 310단계에서, 배포 라이선스에는 포함되지 않고 사용 라이선스에만 포함되는 특징점이 존재하는지 판단한다. 이러한 특징점은, 배포 라이선스의 경우 표현값이 'NoMention'이고, 사용 라이선스의 경우 표현값이 'Positive' 혹은 'Negative' 등인 특징점에 해당한다. Referring to FIG. 3, in step 310, it is determined whether there are minutiae that are not included in the distribution license but are included only in the use license. These feature points correspond to minutiae where the expression value of the distribution license is 'NoMention' and the expression value of the use license is 'Positive' or 'Negative'.

배포 라이선스에는 포함되지 않고 사용 라이선스에만 포함되는 특징점이 존재하지 않으면 350단계로 진행하고, 존재하면 320단계로 진행한다.If there are no minutiae that are not included in the distribution license but are included only in the usage license, proceed to step 350, and if so, proceed to step 320.

320단계에서, 사용 라이선스에만 포함되는 특징점이 모두 배포 라이선스의 선택 조항에 포함되는지 판단한다. 사용 라이선스에만 포함되는 특징점이 배포 라이선스의 선택 조항에 포함되지 않으면 350단계로 진행하고, 모두 포함되면 330단계로 진행한다.In step 320, it is determined whether all minutiae included only in the use license are included in the selection rule of the distribution license. If the minutiae that are included only in the use license are not included in the selection of the distribution license, proceed to step 350, and if all are included, proceed to step 330.

330단계에서, 배포 라이선스 대신에, 배포 라이선스에 선택 조항을 추가한 라이선스를 대상으로 도 2의 흐름도에 따라 라이선스 충돌 여부를 검사한다(Routine 1 호출). In step 330, instead of the distribution license, a license conflict is checked for a license that has added a selection clause to the distribution license according to the flowchart of FIG. 2 (Routine 1 call).

340단계에서, Routine 1의 수행 결과 호환되는 것으로 판단되면 370단계로 진행하여 호환 판정을 한다.If it is determined in step 340 that the results of Routine 1 are compatible, the process proceeds to step 370 where a compatibility determination is made.

340단계에서, Routine 1의 수행 결과 충돌하는 것으로 판단되면 350단계로 진행한다. If it is determined in step 340 that the execution result of Routine 1 is collided, the process proceeds to step 350.

350단계에서, 사용 라이선스 대신에, 사용 라이선스가 변환을 허용한 다른 라이선스를 대상으로 도 2의 흐름도에 따라 라이선스 충돌 여부를 검사한다(Routine 1 호출). In step 350, instead of the use license, a license conflict is checked for the other license for which the use license allows the conversion according to the flowchart of Fig. 2 (call Routine 1).

360단계에서, 사용 라이선스가 변환을 허용한 다른 라이선스 중 어느 하나라도 배포 라이선스와 호환되는 것으로 판단되면 370단계로 진행하여 호환 판정을 한다.If it is determined in step 360 that any of the other licenses for which the use license is permitted to be converted is compatible with the distribution license, the flow advances to step 370 to make a compatibility determination.

360단계에서, 사용 라이선스가 변환을 허용한 다른 라이선스 모두 배포 라이선스와 충돌하는 것으로 판단되면 380단계로 진행하여 충돌(비호환) 판정을 한다. If it is determined in step 360 that all the other licenses for which the use license is permitted to be converted conflict with the distribution license, the process proceeds to step 380 where a conflict (incompatibility) determination is made.

앞서 설명한 바와 같이 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, 2.1) was tested for collision according to an embodiment of the present invention. Figure 4 shows a corresponding license compatibility matrix.

도 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 by itself, but is compatible with GPL 3.0 through other licenses that allow conversion. Likewise, CeCILL 2.1 is not compatible with GPL 2.0 and GPL 3.0 by itself, but is compatible with GPL 2.0 and GPL 3.0 through other licenses that allow conversion.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.The above-described embodiments of the present invention can be embodied in a general-purpose digital computer that can be embodied as a program that can be executed by a computer and operates the program using a computer-readable recording medium. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), optical reading medium (e.g., CD ROM,

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

Claims (10)

컴퓨터에 의해 수행되는 오픈소스 라이선스 간의 충돌 검사 방법에 있어서,
(a) 상기 컴퓨터가, 주어진 제1 라이선스에 대하여 각 특징점에 대한 표현값을 입력받고, 주어진 제2 라이선스에 대하여 각 특징점에 대한 표현값을 입력받는 단계; 및
(b) 상기 컴퓨터가, 상기 제1 라이선스의 각 특징점에 대한 표현값과 상기 제2 라이선스의 각 특징점에 대한 표현값을 이용하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함하고,
상기 (b) 단계는,
(b1) 상기 컴퓨터가, 상기 제2 라이선스에 대하여, 특징점 및 표현값으로 정의되는 특징점 프로파일의 집합인 프로파일 셋을 정의하는 단계;
(b2) 상기 컴퓨터가, 상기 제1 라이선스의 각 특징점의 표현값에 기초하여, 각 특징점에 대하여 임의의 라이선스의 어떤 특징점이 어떤 표현값을 가지는 경우 상기 제1 라이선스의 해당 특징점과 충돌하는지를 나타내는 충돌 프로파일 셋 및 상기 충돌 프로파일 셋의 리스트를 정의하는 단계; 및
(b3) 상기 컴퓨터가, 상기 충돌 프로파일 셋의 리스트에 포함된 각 충돌 프로파일 셋과 상기 제2 라이선스의 프로파일 셋을 비교하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함하고,
상기 (b3) 단계는, 상기 충돌 프로파일 셋의 리스트에 포함된 어떤 충돌 프로파일 셋이 상기 제2 라이선스의 프로파일 셋에 속하는 경우 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단하며,
상기 (b3) 단계에서 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단되는 경우, 상기 제2 라이선스에는 포함되지 않고 상기 제1 라이선스에만 포함되는 특징점이 존재하고, 상기 제2 라이선스가 선택 조항을 가지며, 상기 제1 라이선스에만 포함되는 특징점이 모두 상기 제2 라이선스의 선택 조항에 포함되면,
상기 컴퓨터가, 상기 제2 라이선스 대신에 상기 제2 라이선스에 상기 제1 라이선스에만 포함되는 특징점에 해당하는 선택 조항을 추가한 라이선스를 대상으로, 상기 (a) 및 (b) 단계를 수행하는 단계를 더 포함하는 것을 특징으로 하는 충돌 검사 방법.
In a conflict checking method between open source licenses performed by a computer,
(a) receiving, by the computer, a representation value for each feature point for a given first license and receiving a representation value for each feature point for a given second license; And
(b) determining, by the computer, whether the first license and the second license conflict with each other using the expression value for each minutiae point of the first license and the minutiae point of the second license, Including,
The step (b)
(b1) the computer defining, for the second license, a profile set that is a set of minutiae profiles defined as minutiae and expression values;
(b2) the computer, based on the expression value of each of the minutiae of the first license, if the minutiae of the certain license has a certain expression value for each minutiae, Defining a set of profiles and a list of said set of conflict profiles; And
(b3) the computer comprises a step of comparing each of the conflict profile sets included in the list of the conflict profile sets and the profile set of the second license to determine whether the first license conflicts with the second license ,
Wherein the step (b3) determines that the first license and the second license conflict if a conflict profile set included in the list of the conflict profile sets belongs to the profile set of the second license,
If it is determined in step (b3) that the first license conflicts with the second license, a minutiae that is not included in the second license and is included only in the first license exists, and the second license has a selection term If the minutiae included only in the first license are included in the selection terms of the second license,
Performing the steps (a) and (b) on the license for which the computer has added a selection term corresponding to a minutiae included only in the first license to the second license instead of the second license Further comprising the steps of:
제1항에 있어서,
상기 제1 라이선스는 사용 라이선스이고 상기 제2 라이선스는 배포 라이선스인 충돌 검사 방법.
The method according to claim 1,
Wherein the first license is a use license and the second license is a distribution license.
제1항에 있어서,
상기 표현값은, NoMention, Positive, Negative 중 어느 하나인 충돌 검사 방법.
The method according to claim 1,
Wherein the expression value is any one of NoMention, Positive, and Negative.
제1항에 있어서,
상기 특징점은, 추가 제약 금지, 동일 라이선스 유지, 사용료 부과 금지, 소스 코드 공개, 코드 제공을 포함하는 충돌 검사 방법.
The method according to claim 1,
Wherein the minutiae includes a prohibition of additional restriction, maintenance of the same license, prohibition of charge for use, source code release, and code provisioning.
제1항 내지 제4항 중 어느 한 항에 따른 오픈소스 라이선스 간의 충돌 검사 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for executing a conflict checking method between open source licenses according to any one of claims 1 to 4. 컴퓨터에 의해 수행되는 오픈소스 라이선스 간의 충돌 검사 방법에 있어서,
(a) 상기 컴퓨터가, 주어진 제1 라이선스에 대하여 각 특징점에 대한 표현값을 입력받고, 주어진 제2 라이선스에 대하여 각 특징점에 대한 표현값을 입력받는 단계; 및
(b) 상기 컴퓨터가, 상기 제1 라이선스의 각 특징점에 대한 표현값과 상기 제2 라이선스의 각 특징점에 대한 표현값을 이용하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함하고,
상기 (b) 단계는,
(b1) 상기 컴퓨터가, 상기 제2 라이선스에 대하여, 특징점 및 표현값으로 정의되는 특징점 프로파일의 집합인 프로파일 셋을 정의하는 단계;
(b2) 상기 컴퓨터가, 상기 제1 라이선스의 각 특징점의 표현값에 기초하여, 각 특징점에 대하여 임의의 라이선스의 어떤 특징점이 어떤 표현값을 가지는 경우 상기 제1 라이선스의 해당 특징점과 충돌하는지를 나타내는 충돌 프로파일 셋 및 상기 충돌 프로파일 셋의 리스트를 정의하는 단계; 및
(b3) 상기 컴퓨터가, 상기 충돌 프로파일 셋의 리스트에 포함된 각 충돌 프로파일 셋과 상기 제2 라이선스의 프로파일 셋을 비교하여 상기 제1 라이선스와 상기 제2 라이선스의 충돌 여부를 판단하는 단계를 포함하고,
상기 (b3) 단계는, 상기 충돌 프로파일 셋의 리스트에 포함된 어떤 충돌 프로파일 셋이 상기 제2 라이선스의 프로파일 셋에 속하는 경우 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단하며,
상기 (b3) 단계에서 상기 제1 라이선스와 상기 제2 라이선스가 충돌하는 것으로 판단되는 경우, 상기 제1 라이선스가 상기 제1 라이선스 이외의 다른 라이선스로의 변환을 허용하면,
상기 컴퓨터가, 상기 제1 라이선스 대신에 상기 다른 라이선스를 대상으로, 상기 (a) 및 (b) 단계를 수행하는 단계를 더 포함하는 것을 특징으로 하는 충돌 검사 방법.
In a conflict checking method between open source licenses performed by a computer,
(a) receiving, by the computer, a representation value for each feature point for a given first license and receiving a representation value for each feature point for a given second license; And
(b) determining, by the computer, whether the first license and the second license conflict with each other using the expression value for each minutiae point of the first license and the minutiae point of the second license, Including,
The step (b)
(b1) the computer defining, for the second license, a profile set that is a set of minutiae profiles defined as minutiae and expression values;
(b2) the computer, based on the expression value of each of the minutiae of the first license, if the minutiae of the certain license has a certain expression value for each minutiae, Defining a set of profiles and a list of said set of conflict profiles; And
(b3) the computer comprises a step of comparing each of the conflict profile sets included in the list of the conflict profile sets and the profile set of the second license to determine whether the first license conflicts with the second license ,
Wherein the step (b3) determines that the first license and the second license conflict if a conflict profile set included in the list of the conflict profile sets belongs to the profile set of the second license,
If it is determined in step (b3) that the first license conflicts with the second license, if the first license permits conversion to a license other than the first license,
Further comprising the step of (a) and (b), wherein the computer performs the steps (a) and (b) on the different license instead of the first license.
제6항에 있어서,
상기 제1 라이선스는 사용 라이선스이고 상기 제2 라이선스는 배포 라이선스인 충돌 검사 방법.
The method according to claim 6,
Wherein the first license is a use license and the second license is a distribution license.
제6항에 있어서,
상기 표현값은, NoMention, Positive, Negative 중 어느 하나인 충돌 검사 방법.
The method according to claim 6,
Wherein the expression value is any one of NoMention, Positive, and Negative.
제6항에 있어서,
상기 특징점은, 추가 제약 금지, 동일 라이선스 유지, 사용료 부과 금지, 소스 코드 공개, 코드 제공을 포함하는 충돌 검사 방법.
The method according to claim 6,
Wherein the minutiae includes a prohibition of additional restriction, maintenance of the same license, prohibition of charge for use, source code release, and code provisioning.
제6항 내지 제9항 중 어느 한 항에 따른 오픈소스 라이선스 간의 충돌 검사 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for executing a conflict checking method between open source licenses according to any one of claims 6 to 9.
KR1020160084786A 2016-07-05 2016-07-05 Method for checking incompatibilities between open source licenses based on feature points KR101766859B1 (en)

Priority Applications (3)

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
PCT/KR2016/012980 WO2018008810A1 (en) 2016-07-05 2016-11-11 Method for inspecting conflict between open source licenses on basis of feature point
JP2019520340A JP6681519B2 (en) 2016-07-05 2016-11-11 Feature point based open source license conflict checking method

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
KR101766859B1 true KR101766859B1 (en) 2017-09-06

Family

ID=59925089

Family Applications (1)

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

Country Status (3)

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

Citations (1)

* 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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101999656B1 (en) * 2012-06-20 2019-07-12 삼성전자 주식회사 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
KR101648047B1 (en) * 2014-11-10 2016-08-16 엘에스웨어(주) System and method for recommending compatible open source software

Patent Citations (1)

* 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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Thomas F. Gordon. 'Analyzing open source license compatibility issues with Carneades'. Proceedings of the 13th International Conference on Artificial Intelligence and Law, 2011, pp.51-55.
박준석. '오픈 소스 소프트웨어 라이선스 충돌의 구조적 해결을 위한 관리 프레임워크 개발 및 적용 전략에 관한 연구'. 상명대학교 대학원. 2015.*

Also Published As

Publication number Publication date
JP6681519B2 (en) 2020-04-15
JP2019520665A (en) 2019-07-18
WO2018008810A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
US7552429B2 (en) Integrated development environment for managing software licensing restrictions
US8869299B2 (en) Method and system for generating trusted security labels for electronic documents
TWI465935B (en) System, method, and computer-readable medium for software licensing
CN102667712B (en) System, method and apparatus for simultaneous definition and enforcement of access-control and integrity policies
CN101772764A (en) Multi-threaded business programming library
US20080209393A1 (en) System and method to automatically detect incompatible licensing models
CN104508676B (en) Mandatory protection control in virtual machine
CN100574210C (en) A kind of based on the access control method that shines upon between the off grade role
Washizaki et al. Taxonomy and literature survey of security pattern research
Hahner Dealing with Uncertainty in Architectural Confidentiality Analysis.
US9009852B2 (en) Method, SOA registry and SOA repository for granting a user secure access to resources of a process
KR101766859B1 (en) Method for checking incompatibilities between open source licenses based on feature points
Blanco et al. Security policies by design in NoSQL document databases
Fendt et al. Industrial experience with open source software process management
M. Mahally et al. Barriers and enablers for shortening software development lead-time in mechatronics organizations: A case study
Wirtz et al. Managing security risks: template-based specification of controls
CN115550010A (en) Key environment access control method based on block chain
Mutti et al. Policy specialization to support domain isolation
US10747871B2 (en) System and method for producing secure data management software
Lee et al. SWC-based smart contract development guide research
Bijlsma et al. Evaluation of design pattern alternatives in Java
Alam et al. A constraint based role based access control in the SECTET a model-driven approach
Sherlock et al. Open Source Software Opportunities and Risks
Katt et al. Towards a usage control policy specification with Petri nets
Idani et al. Towards a model driven formal approach for merging data, access control and business processes

Legal Events

Date Code Title Description
GRNT Written decision to grant