리플리케이션(컴퓨터 사이언스)

Reification (computer science)

재검증은 컴퓨터 프로그램에 대한 추상적 아이디어가 프로그래밍 언어로 작성된 명시적 데이터 모델 또는 기타 객체로 변환되는 과정입니다.계산 가능/주소 지정 가능한 개체(리소스)는 계산 불가능/주소 지정 불가능한 개체의 프록시로 시스템에 생성됩니다.재확인을 통해 이전에는 암묵적이고 표현되지 않았으며 표현하기 어려운 무언가를 명시적으로 공식화하여 개념적(논리적 또는 계산적) 조작에 사용할 수 있도록 합니다.비공식적으로, 재검증은 종종 특정 시스템의 범위 내에서 "어떤 것을 일등 시민으로 만들기"라고 언급된다.시스템의 일부 측면은 프로그래밍 언어에서의 반영관련된 언어 설계재현될 수 있습니다.시스템 설계단계적 정교함으로 적용할 수 있습니다.재검증은 개념 분석과 지식 표현에서 가장 자주 사용되는 기법 중 하나입니다.

반사형 프로그래밍 언어

프로그래밍 언어의 맥락에서 재검증은 번역된 프로그램 및 런타임 시스템에 포함된 사용자 프로그램 또는 프로그래밍 언어의 어떤 측면이 언어 자체에 표현되는 프로세스입니다.이 프로세스를 통해 프로그램은 이러한 모든 측면을 일반적인 데이터로 검사할 수 있습니다.반사 언어에서는, 한쪽의 수정이 다른 쪽에 영향을 미치도록, 관련하는 재검증된 측면에 재검증 데이터를 인과적으로 접속된다.따라서, 재검증 데이터는 항상 관련된[clarification needed] 재검증된 측면을 충실하게 표현한다.인증 데이터는 흔히 퍼스트 클래스[citation needed] 오브젝트로 불린다.리플리케이션은 적어도 부분적으로 많은 언어에서 경험되어 왔습니다. 초기 리스프 방언과 현재의 프롤로그 방언에서는 프로그램은 데이터로서 취급되어 왔습니다.다만, 원인적인 관련성은 프로그래머의 책임에 맡겨져 있는 경우가 많습니다.Smalltalk-80에서 소스 텍스트에서 바이트 코드로의 컴파일러는 언어의 [1]첫 번째 구현 이후 런타임 시스템의 일부였다.

  • C 프로그래밍 언어는 메모리 주소의 낮은 수준의 세부사항을 재현합니다.
    많은 프로그래밍 언어 설계는 컴파일러 및 런타임 시스템의 메모리 할당 세부 사항을 캡슐화합니다.C 프로그래밍 언어의 설계에서는 메모리 주소가 재작성되어 다른 언어구조에 의한 직접 조작에 이용할 수 있다.예를 들어, 메모리 매핑 디바이스 드라이버를 실장할 때는, 다음의 코드를 사용할 수 있습니다.버퍼 포인터는 메모리 주소 0xB8000000의 프록시입니다.
     * 완충 장치 = (*) 0xB8000000;  완충 장치[0] = 10; 
  • 람다 계산에 기초한 함수 프로그래밍 언어는 람다 식의 형태로 절차 추상화 및 절차 적용의 개념을 재구성합니다.
  • Scheme 프로그래밍 언어연속성(대략 콜스택)을 재현합니다.
  • C#에서는 리플리케이션을 사용하여 파라메트릭 다형성을 언어의 제1종 특징으로서 제네릭스의 형태로 구현한다.
  • Java 프로그래밍 언어에는 "실행 시 완전히 사용 가능"한 "복구 가능한 유형"이 있습니다(즉,[2] 컴파일 중에 정보가 지워지지 않습니다).
  • REBOL은 코드를 데이터로, 그 반대도 마찬가지입니다.
  • Lisp, JavaScript, Curl 등 많은 언어는 언어 인터프리터를 효과적으로 재현하는 또는 프로시저를 제공합니다.
  • Prolog용 Logtalk 프레임워크는 논리 프로그래밍의 맥락에서 재검증을 탐구하는 수단을 제공합니다.
  • Smalltalk 및 Actor 언어를 사용하면 Lisp의 람다 표현과 동등한 블록 및 메시지[3]복제할 수 있습니다.thisContext현재 실행 중인 블록을 복제한 Smalltalk입니다.
  • 호모아이코닉 언어들추상적인 구문 트리의 형태로 언어 자체의 구문을 재창조한다.eval.

데이터 리플리케이션과 데이터 정제

데이터 리플리케이션(단계적 미세화)에는 정식 사양에서 사용되는 추상 데이터 유형의 보다 구체적인 표현을 찾는 작업이 포함됩니다.

데이터 리플리케이션은 Vienna Development Method(VDM; Vienna 개발 방법)의 용어이며, 대부분의 다른 사람들은 데이터 정제라고 부릅니다.예를 들어 세트 등 의도된 구현 언어에서 상대방이 없는 데이터 표현, 상대방이 있는 것(어레이에 의해 구현 가능한 고정 도메인을 가진 맵 등) 또는 상대방이 있는 것에 가까운 것(시퀀스 등)으로 데이터 표현을 치환함으로써 구현을 향한 발걸음을 내디딘다.VDM 커뮤니티에서는 "수정"보다 "수정"이라는 단어를 선호합니다. 이 프로세스는 아이디어를 [4]다듬는 것보다 구체화하는 것과 더 관련이 있기 때문입니다.

유사한 용도는 Replication(언어)참조하십시오.

개념 모델링 중

리플리케이션은 개념 [5]모델링에서 널리 사용됩니다.관계를 다시 확인한다는 것은 관계를 엔티티로 보는 것을 의미합니다.관계를 재검증하는 목적은 추가 정보를 추가할 필요가 있을 때 관계를 명시적으로 하는 것입니다.관계 유형을 고려합니다.의 예는 개인이 위원회의 멤버라는 사실을 나타내는 관계입니다.아래 그림은 표 형식의 관계 모집단의 예를 보여 줍니다.Person P1은 위원회 C1과 C2의 구성원이다.Person P2는 위원회 C1의 멤버일 뿐이다.

모집단의 예IsMemberOf표 형식의 관계Person P1은 위원회 C1과 C2의 구성원이다.Person P2는 위원회 C1의 멤버일 뿐이다.

그러나 동일한 사실도 하나의 기업으로 볼 수 있다.관계를 실체로 보면, 실체가 관계를 재현한다고 할 수 있다.이를 관계의 재인증이라고 합니다.다른 엔티티와 마찬가지로 엔티티 유형의 인스턴스여야 합니다.이 예에서는 엔티티 유형에 이름이 지정되었습니다.Membership의 인스턴스별로 의 인스턴스는 1개뿐이며, 그 반대도 마찬가지입니다.이제 원래의 관계에 더 많은 정보를 추가할 수 있게 되었습니다.예를 들어, 우리는 "개인 p1이 개인 p2에 의해 위원회 c1의 멤버로 지명되었다"는 사실을 표현할 수 있다.재인식된 관계는 새로운 관계의 원천으로 사용될 수 있습니다.

관련 용도는 Replication(지식 표현)을 참조하십시오.

통합 모델링 언어(UML)

Membership 예제의 UML 클래스 다이어그램.

UML은 재인증된 관계 유형을 정의하기 위한 연관 클래스 구성을 제공합니다.연관 클래스는 연관성의 일종인 동시에 [6]클래스의 일종인 단일 모델 요소입니다.가 재현하는 연결과 엔티티 유형은 모두 동일한 모델 요소입니다.Atribute는 재인증할 수 없습니다.

시멘틱 웹상

RDF 및 OWL

RDF(Resource Description Framework) 및 OWL(Web Ontology Language)과 같은 시맨틱 웹 언어에서 은 이진 관계입니다.두 개인 또는 한 개인과 값을 연결하기 위해 사용됩니다.예를 들어, 애플리케이션이 다른 RDF 스테이트먼트를 기술해야 하는 경우가 있습니다.예를 들어, 스테이트먼트의 작성 시기나 작성자등의 정보를 기록하기 위해서입니다.이것을 「증명」정보라고 부르기도 합니다.예를 들어, 우리는 관계의 확실성, 관계의 심각도 또는 강도, 관계의 관련성 등과 같은 관계의 속성을 나타낼 수 있습니다.

개념 모델링 섹션의 예에서는 특정 인물을 다음과 같이 설명합니다.URIref person:p1의 멤버입니다.committee:c13배의 RDF는

  사람인:p1   위원회.:isMemberOf   위원회.:c1 . 

(i) 이 특정인을 본 위원회에 지명한 사람을 기록(회원 자격 자체에 관한 진술)하는 것과 (ii) 그 사실을 데이터베이스에 추가한 사람을 기록(진술서에 관한 진술)하는 것의 두 가지 추가 사실을 저장하는 것을 고려한다.

첫 번째 경우는 UML에서 다음과 같은 고전적인 리플리케이션의 경우입니다.멤버십의 재확인과 그 속성과 역할의 저장 등입니다.

 위원회.:회원가입        rdf:유형              올빼미:학급 .  위원회.:멤버십12345   rdf:유형              위원회.:회원가입 .  위원회.:멤버십12345   위원회.:사람    사람인:p1 .  위원회.:멤버십12345   위원회.:위원회에서 위원회.:c1 .  사람인:p2                   위원회.:지명했다   위원회.:멤버십12345 . 

또한 RDF는 RDF 문을 기술하기 위한 내장 어휘를 제공합니다.이 어휘를 사용한 스테이트먼트의 설명을 스테이트먼트의 리플리케이션이라고 부릅니다.RDF 인증 어휘는 유형으로 구성됩니다.rdf:Statement, 및 속성rdf:subject,rdf:predicate,그리고.rdf:object를 클릭합니다.[7]

리플리케이션 어휘를 사용하여, 그 사람의 멤버쉽에 관한 스테이트먼트의 리플리케이션은, 다음과 같은 스테이트먼트를 URIref 에 할당함으로써 주어집니다.committee:membership12345설명문을 다음과 같이 작성할 수 있도록 합니다.

 위원회.:멤버십12345Stat   rdf:유형        rdf:진술 .  위원회.:멤버십12345Stat   rdf:주제     사람인:p1 .  위원회.:멤버십12345Stat   rdf:술어   위원회.:isMemberOf .   위원회.:멤버십12345Stat   rdf:물건      위원회.:c1 . 

이러한 스테이트먼트에 의해 식별된 리소스는URIref committee:membership12345StatRDF 스테이트먼트입니다.이 스테이트먼트의 제목은, 에 의해서 특정되는 자원을 참조하고 있습니다.person:p1스테이트먼트의 술어는, 에 의해서 식별되는 자원을 참조합니다.committee:isMemberOf문의 오브젝트는 리소스를 참조합니다.committee:c1원본 진술이 실제로 다음과 같이 확인된다고 가정합니다.committee:membership12345원문을 리플리케이션에서 실제로 기술하고 있는 것과 대조함으로써 명확하게 할 필요가 있습니다.기존의 RDF 리플리케이션 어휘에서는 항상 이 패턴의 4개의 문을 사용하여 문장을 기술합니다.따라서 "리플리케이션 쿼드"[7]라고 불리기도 합니다.

이 규약에 따라 재검증을 사용하여 다음과 같은 사실을 기록할 수 있습니다.person:p3에 의해 데이터베이스에 스테이트먼트를 추가

  사람인:p3    위원회.:데이터베이스 추가    위원회.:멤버십12345Stat . 

기존의 리플리케이션 사용에서 리플리케이션 트리플의 주체는 동일한 주제, 술어 및 오브젝트를 가진 임의의 트리플이 아닌 특정 RDF 문서에서 트리플의 특정 인스턴스를 식별한다고 가정하는 것이 중요하다.이 특정 규약은 이미 제시된 예시와 같이 재작성이 구성 날짜 및 소스 정보 등의 속성을 표현하기 위한 것이며 이러한 속성을 트리플의 특정 인스턴스에 적용해야 하기 때문에 사용됩니다.여기서 설명한 트리플은(subject predicate object)그 자체는 이러한 리플리케이션 쿼드에 의해 암시되지 않습니다(데이터베이스에 실제로 존재할 필요는 없습니다).이를 통해 이 메커니즘을 사용하여 어떤 트리플이 유지되지 않는지 나타낼 수도 있습니다.

URIref를 스테이트먼트에 할당하기 위한 빌트인 수단이 없기 때문에 RDF에서의 리플리케이션 어휘의 파워는 제한됩니다.따라서 RDF에서 이러한 종류의 "providance" 정보를 표현하기 위해서는 (RDF 이외의) 메커니즘을 사용하여 URI를 개개의 RDF 스테이트먼트에 할당하고, 그 이후의 스테이트먼트를 작성해야 합니다.nts,[7] URI를 사용하여 식별합니다.

토픽 맵에서

XML Topic Map(XTM; 토픽 맵)에서는, 토픽만이 이름을 가질 수 있고, 관련지어 역할을 할 수 있습니다.어떤 주제에 대한 주장을 하기 위해 연관성을 사용할 수 있지만, 그 주장에 대해 직접적으로 주장할 수는 없다.그러나 지도에서 비주제 구조를 재현하는 토픽을 작성할 수 있으므로 연관성을 이름 붙이고 토픽 [8]자체로 취급할 수 있습니다.

n-ary 관계

RDF 및 OWL과 같은 시맨틱 웹 언어에서 속성은 2개의 개체 또는 개체와 값을 연결하는 데 사용되는 이진 관계입니다.그러나, 어떤 경우에, 특정 개념을 표현하는 자연스럽고 편리한 방법은 개인을 둘 이상의 개인이나 가치로 연결하기 위해 관계를 사용하는 것이다.이러한 관계를 n-ary 관계라고 합니다.예를 들어 위원회, 위원회 위원인 사람, 위원회의 첫 번째 위원이 된 사람 또는 구매자, 판매자, 책 구입을 기술할 때 구입한 물건 등 여러 개인 간의 관계를 나타낸다.

재검증에 대한 보다 일반적인 접근법은 n-ary 관계를 나타내는 명시적인 새로운 클래스와 n개의 새로운 속성을 만드는 것입니다.n이 클래스의 인스턴스입니다.이 접근방식을 사용하여 개별 [9]관계 인스턴스의 프로벤스 정보 및 기타 속성을 나타낼 수도 있습니다.

 :p1       a       :사람인 ;       :has_membership(멤버십) _:멤버십_12345 .  _:멤버십_12345       a       :회원가입 ;       :위원회. :c1;       :지명자_ :p2 . 

견적과 비교

여기서 설명하는 리플리케이션은 다른 언어에서 볼 수 있는 "인용"과 동일하지 않다는 점도 유의해야 합니다.대신, 이 검증은 트리플의 특정 인스턴스와 트리플이 참조하는 자원 간의 관계를 기술합니다.리플리케이션은 직관적으로 (인용에서와 같이) "이 RDF 트리플은 이러한 것에 대해 이야기한다"가 아니라 "이 RDF 트리플은 이러한 형태를 가지고 있다"고 해석할 수 있다.예를 들어, 이 항에서 사용되는 인증 예에서는 트리플이 다음과 같습니다.

  위원회.:멤버십12345   rdf:주제   사람인:p1 . 

설명rdf:subjectURIref에 의해 식별된 자원(인물)이 스테이트먼트의 대상이라고 하는 원래의 스테이트먼트의 주제는 URIref에 의해 식별된 자원(인물)입니다.person:p1.문제의 주제는 따옴표와 같이 URIref 자체(특정 문자로 시작하는 문자열)라고 기술되어 있지 않습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ J. Malenfant, M. Jacques 및 F.-N. Demers, 행동 성찰 Wayback Machine에서의 그 구현에 관한 튜토리얼 2010-05-28
  2. ^ Java 언어 사양, 섹션 4.7, Java SE 7 Edition
  3. ^ "Smalltalk Blocks And Closures". C2.com. 2009-10-15. Retrieved 2010-10-09.
  4. ^ 정식 방법 유럽, FAQ, Part 13 2005-03-12 Wayback Machine에서 보관.
  5. ^ Antoni Olivé, Springer Verlag, 2007년, 정보 시스템의 개념 모델링.
  6. ^ 통합 모델링 언어, UML 상부 구조, 객체 관리 그룹, 2007-11-02.
  7. ^ a b c "RDF Primer". W3.org. Retrieved 2010-10-09.
  8. ^ 토픽 실천적 개요 2009-02-03년 웨이백 머신에 보관되어 있습니다.
  9. ^ "W3C Defining N-ary relations on Semantic Web". W3.org. Retrieved 2010-10-09.