coredot.today
데이터의 족보를 추적하라: W3C PROV-O 완전 정복
블로그로 돌아가기
PROV-O데이터 프로비넌스W3C시맨틱 웹데이터 리니지AI 거버넌스온톨로지

데이터의 족보를 추적하라: W3C PROV-O 완전 정복

당신이 보는 데이터, 정말 믿을 수 있나요? 2013년 W3C가 발표한 PROV-O는 '데이터의 족보'를 추적하는 국제 표준이다. AI 딥페이크와 가짜뉴스의 시대, 이 13년 된 표준이 왜 지금 가장 뜨거운 기술이 되었는지 추적한다.

코어닷투데이2026-04-0757

들어가며: "이 데이터, 어디서 왔어?"

2023년 5월, 미국 뉴욕의 한 법정에서 희극적인 사건이 벌어졌다. 변호사 스티븐 슈워츠가 제출한 준비서면에 인용된 판례 6건이 모두 ChatGPT가 만들어낸 가짜였던 것이다. "Varghese v. China Southern Airlines"이라는 그럴듯한 판례명, 정확해 보이는 인용 번호 — 하지만 실제로는 존재하지 않는 판결이었다.

이 사건은 전 세계에 충격을 주었지만, 사실 더 근본적인 질문을 던진다:

"우리가 매일 사용하는 데이터는 어디서 왔고, 누가 만들었고, 어떤 과정을 거쳤는가?"

이 질문에 체계적으로 답하려는 시도가 바로 프로비넌스(Provenance) 다. 그리고 W3C가 2013년에 발표한 PROV-O(The PROV Ontology) 는 이 프로비넌스를 웹 전체에서 표현하고 교환하기 위한 국제 표준이다.

데이터 프로비넌스 추적 개념

2026년 현재, EU AI Act의 데이터 출처 공개 의무화, 딥페이크 범람, AI 학습 데이터 저작권 논쟁이 격화되면서 — 이 13년 된 표준이 갑자기 가장 시의적절한 기술이 되었다. 데이터의 족보를 추적하는 여정을 함께 시작해 보자.


1부: 프로비넌스란 무엇인가 — 미술품 감정에서 데이터 과학까지

데이터 탐정 일러스트

미술관에서 시작된 개념

프로비넌스(Provenance) 는 원래 미술사 용어다. 프랑스어 provenir(~에서 오다)에서 유래했으며, 미술품의 소유 이력 — 누가 언제 소유했고, 어떤 경로로 현재 위치에 이르렀는지를 뜻한다.

왜 이것이 중요할까? 한 가지 사례를 보자.

2006년, 잭슨 폴록의 작품으로 추정되는 회화 한 점이 경매에 나왔다. 감정가 1억 4천만 달러. 하지만 소유 이력(프로비넌스)에 공백이 있었다. 1950년대부터 1990년대까지 이 작품이 어디에 있었는지 아무도 증명하지 못했다. 결국 거래는 무산되었다. 작품 자체가 아니라 "이 작품이 진짜라는 증거의 연쇄" 가 끊어졌기 때문이다.

데이터 프로비넌스도 동일한 원리다:

🎨
미술품 프로비넌스
이 그림이 피카소 작품이라는 것을 소유 이력, 전시 기록, 감정서로 증명
💾
데이터 프로비넌스
이 데이터가 신뢰할 수 있다는 것을 원본 출처, 변환 과정, 책임자로 증명
🎯
공통 핵심
"이것이 무엇이고, 어디서 왔고, 누가 관여했고, 어떤 과정을 거쳤는가"의 기록

과학계의 재현성 위기

프로비넌스가 데이터 과학에서 핵심 화두가 된 배경에는 재현성 위기(Reproducibility Crisis) 가 있다.

2016년 학술지 Nature의 설문조사에 따르면, 1,576명의 과학자 중 70% 이상이 다른 연구자의 실험을 재현하는 데 실패한 경험이 있었고, 절반 이상이 자신의 실험조차 재현하지 못했다고 답했다. 데이터가 어디서 왔는지, 어떤 전처리를 거쳤는지, 어떤 버전의 코드를 사용했는지 — 이런 프로비넌스 정보의 부재가 핵심 원인 중 하나였다.

타 연구 재현 실패 경험
70%
자신의 연구 재현 실패
52%
재현성 위기가 있다고 응답
90%

출처: Baker, M. "1,500 scientists lift the lid on reproducibility." Nature 533, 452–454 (2016)


2부: PROV의 탄생 — 프로비넌스 챌린지에서 W3C 표준까지

프로비넌스 챌린지 워크숍

2006년, 시카고: 모든 것의 시작

2006년 5월, 시카고에서 열린 제1회 IPAW(International Provenance and Annotation Workshop) 에 약 50명의 연구자가 모였다. 이들은 서로 다른 과학 워크플로우 시스템(Taverna, Kepler, VisTrails 등)을 사용하고 있었는데, 공통된 문제에 직면해 있었다:

"우리 시스템의 프로비넌스를 서로 교환할 수 없다."

각 시스템이 저마다 다른 방식으로 프로비넌스를 기록하고 있었기 때문이다. 이 자리에서 탄생한 것이 프로비넌스 챌린지(Provenance Challenge) — 서로 다른 시스템 간 프로비넌스를 교환할 수 있는 공통 모델을 만들자는 도전이었다.

OPM: 첫 번째 표준의 등장 (2007~2010)

2007년 8월, 솔트레이크시티에서 열린 워크숍에서 OPM(Open Provenance Model) 의 초안이 만들어졌다. 주도한 인물은 사우샘프턴 대학의 Luc Moreau 교수. OPM은 세 가지 핵심 개념을 정의했다:

Artifact

변하지 않는 데이터 조각

Process

어떤 동작이나 변환

Agent

프로세스의 촉매자

OPM은 세 차례의 프로비넌스 챌린지를 거치며 발전했고, v1.1까지 진화했다. 하지만 한계가 있었다 — 웹 환경에서의 상호운용성이 부족했고, 시맨틱 웹 기술과의 통합이 미흡했다.

W3C 프로비넌스 워킹 그룹 (2011~2013)

OPM의 성과를 바탕으로, W3C는 2009년 프로비넌스 인큐베이터 그룹을 결성했다. Yolanda Gil(USC/ISI)이 이끈 이 그룹은 다양한 도메인에서 유스케이스를 수집하고, 기존 프로비넌스 시스템의 현황을 조사했다. 이 조사 결과를 토대로 2011년, W3C 프로비넌스 워킹 그룹이 공식 출범했다.

2006
제1회 IPAW 워크숍, 프로비넌스 챌린지 시작
2007
OPM v1.00 초안 작성 (Luc Moreau 주도)
2009
W3C 프로비넌스 인큐베이터 그룹 결성 (Yolanda Gil)
2011
W3C 프로비넌스 워킹 그룹 출범 (Moreau, Groth 공동 의장)
2013.04
PROV 패밀리 W3C 정식 권고안(Recommendation) 발표

워킹 그룹의 의장은 Luc Moreau(사우샘프턴 대학)와 Paul Groth(암스테르담 자유대학)가 맡았다. 2013년 4월 30일, PROV 패밀리 문서가 W3C 정식 권고안(Recommendation) 으로 발표되었다. OPM의 Artifact/Process/Agent가 PROV에서는 Entity/Activity/Agent로 재정의되었고, 웹 표준 기술(RDF, OWL)과 완전히 통합되었다.


3부: PROV-O의 핵심 — 세상의 모든 것을 세 가지로 설명하기

W3C PROV의 핵심 통찰은 놀라울 정도로 단순하다:

세상의 모든 프로비넌스는 Entity(무엇), Activity(어떻게), Agent(누가)로 설명할 수 있다.

세 주인공 소개

Entity (엔티티)

물리적, 디지털, 개념적 — 고정된 측면을 가진 어떤 것

📄 문서, 📊 데이터셋, 🖼️ 이미지, 💊 약물, 🌍 장소

Activity (액티비티)

일정 시간 동안 발생하는 행위로, 엔티티를 사용·생성·변환

📝 문서 작성, 🔬 실험 수행, 🖥️ 데이터 분석, 🏭 제조

Agent (에이전트)

액티비티의 발생이나 엔티티의 존재에 책임을 지는 주체

👤 사람, 🏢 조직, 🤖 소프트웨어, 🏛️ 기관

실전 예제: 뉴스 기사의 프로비넌스

PROV-O 스펙에 등장하는 예제를 현실적인 시나리오로 재구성해 보자. 데릭이라는 데이터 분석가가 범죄 통계 기사를 작성하는 과정이다:

📊 정부 범죄 데이터
Entity
→ used
🔬 데이터 집계·분석
Activity
generated →
📈 범죄 통계 차트
Entity
📈 범죄 통계 차트
Entity
→ used
✍️ 기사 작성
Activity
generated →
📰 기사 v1
Entity
👤 데릭
Agent (Person)
wasAssociatedWith
✍️ 기사 작성
Activity

이것을 PROV-O의 RDF(Turtle 문법)로 표현하면 이렇게 된다:

hljs language-turtle
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix ex:   <http://example.org/> .

# 엔티티 정의
ex:govCrimeData    a prov:Entity .
ex:crimeChart      a prov:Entity .
ex:article-v1      a prov:Entity .

# 액티비티 정의
ex:dataAnalysis    a prov:Activity ;
    prov:used           ex:govCrimeData ;
    prov:startedAtTime  "2026-03-01T09:00:00"^^xsd:dateTime ;
    prov:endedAtTime    "2026-03-01T17:00:00"^^xsd:dateTime .

# 생성 관계
ex:crimeChart      prov:wasGeneratedBy  ex:dataAnalysis .
ex:article-v1      prov:wasDerivedFrom  ex:crimeChart .

# 에이전트와 책임
ex:derek           a prov:Person .
ex:dataAnalysis    prov:wasAssociatedWith ex:derek .
ex:article-v1      prov:wasAttributedTo   ex:derek .

7가지 핵심 관계

Entity, Activity, Agent를 연결하는 관계(property)는 총 7가지다. PROV-O는 이것을 Starting Point Terms(출발점 용어) 라 부른다:

관계방향의미예시
wasGeneratedByEntity → Activity~에 의해 생성됨보고서가 분석 작업으로 생성됨
usedActivity → Entity~을 사용함분석 작업이 원본 데이터를 사용함
wasDerivedFromEntity → Entity~에서 파생됨차트가 원본 데이터에서 파생됨
wasAttributedToEntity → Agent~에 귀속됨보고서가 데릭에게 귀속됨
wasAssociatedWithActivity → Agent~와 연관됨분석 작업이 데릭과 연관됨
actedOnBehalfOfAgent → Agent~를 대신하여 행동데릭이 신문사를 대신하여 행동
wasInformedByActivity → Activity~로부터 정보를 받음편집 작업이 분석 작업의 정보를 받음

이 7가지 관계만으로도 대부분의 프로비넌스를 표현할 수 있다. PROV-O 스펙이 이것을 "Starting Point"라 부르는 이유다 — 여기서 시작하면 80%는 해결된다.

직접 만들어 보자: PROV-O 그래프 탐색기

아래 인터랙티브 도구로 Entity, Activity, Agent를 추가하고 관계를 연결해 보자. 프리셋 예제로 시작하거나 직접 처음부터 만들 수 있다:


4부: 더 깊이 — PROV-O의 3단계 설계

PROV-O의 가장 영리한 설계 결정 중 하나는 3단계 점진적 학습 구조다. 마치 게임의 난이도 선택처럼, 필요한 만큼만 깊이 들어갈 수 있다:

Level 1
Starting Point Terms — Entity, Activity, Agent + 7개 핵심 관계. 대부분의 프로비넌스를 표현 가능
Level 2
Expanded Terms — 하위 클래스(Person, SoftwareAgent, Collection), 파생의 세부 유형(인용, 개정, 원본 출처), 시간 정보
Level 3
Qualified Terms — 관계 자체에 메타데이터를 붙이는 Qualification Pattern. 역할(Role), 계획(Plan), 시점(atTime) 등

Level 2: Expanded Terms — 더 구체적으로

Level 2에서는 세 주인공의 하위 유형과 파생의 세부 구분이 추가된다:

Agent의 하위 유형:

prov:Person

👤 사람

prov:Organization

🏢 조직

prov:SoftwareAgent

🤖 소프트웨어

Entity의 하위 유형:

prov:Collection

📦 엔티티들의 구조화된 모음

prov:Bundle

📋 프로비넌스 기술의 이름 붙은 집합
(프로비넌스의 프로비넌스!)

prov:Plan

📐 목표 달성을 위한 행동 집합

파생(Derivation)의 세부 유형:

관계의미예시
wasQuotedFrom인용 — 원본의 일부를 가져옴블로그 글이 논문의 한 문단을 인용
wasRevisionOf개정 — 실질적 내용을 이어받은 새 버전기사 v2가 기사 v1의 오타를 수정한 개정판
hadPrimarySource원본 출처 — 직접 경험/지식에서 나온 소스기사가 정부 공식 통계를 원본 출처로 함

특히 prov:Bundle 은 독특한 개념이다. 프로비넌스 정보 자체도 하나의 엔티티이므로, 프로비넌스의 프로비넌스를 기록할 수 있다. "이 출처 기록은 누가, 언제 작성했는가?"까지 추적할 수 있다는 뜻이다.

Level 3: Qualified Terms — 관계에 이야기를 더하다

Level 1에서 "분석 작업이 원본 데이터를 사용했다(used)"고 했다. 그런데 현실에서는 더 많은 정보가 필요하다:

  • 언제 사용했는가?
  • 어떤 역할로 사용했는가?
  • 어떤 계획에 따라 사용했는가?

이때 등장하는 것이 Qualification Pattern(한정 패턴) 이다. 단순한 2자(binary) 관계 사이에 중간 클래스를 끼워 넣어 추가 정보를 달 수 있게 한다:

🔬 데이터 분석
Activity
used →
📊 정부 데이터
Entity
↓ Qualification Pattern 적용 ↓
🔬 데이터 분석
Activity
qualifiedUsage →
📎 Usage
atTime: 09:15
hadRole: "primary-input"
entity →
📊 정부 데이터
Entity

Turtle로 표현하면:

hljs language-turtle
ex:dataAnalysis  a prov:Activity ;
    prov:qualifiedUsage [
        a prov:Usage ;
        prov:entity   ex:govCrimeData ;
        prov:atTime    "2026-03-01T09:15:00"^^xsd:dateTime ;
        prov:hadRole   ex:primaryInput
    ] .

이 패턴은 모든 관계에 적용된다. 각 관계에 대응하는 Qualified 클래스가 있다:

단순 관계Qualified 클래스추가 가능한 정보
usedUsage시점, 역할
wasGeneratedByGeneration시점, 위치
wasDerivedFromDerivation사용된 Usage, Generation, Activity
wasAssociatedWithAssociation역할(hadRole), 계획(hadPlan)
wasAttributedToAttribution에이전트의 역할
actedOnBehalfOfDelegation위임의 맥락, 관련 Activity
wasInformedByCommunication정보 전달의 세부사항

이 3단계 설계의 핵심 철학은 "단순함에서 시작하되, 필요할 때 깊이 들어갈 수 있다" 는 것이다. Level 1만 써도 대부분의 프로비넌스를 기록할 수 있고, 정밀한 추적이 필요한 도메인에서는 Level 3까지 활용하면 된다.


5부: PROV 패밀리 — 혼자가 아니다

PROV-O는 혼자 존재하지 않는다. PROV 패밀리라 불리는 11개 문서 세트의 일부다:

PROV-DM

핵심 데이터 모델
모든 직렬화의 기반

PROV-O

OWL2 온톨로지
→ RDF/링크드 데이터

PROV-XML

XML 스키마
→ XML 환경

PROV-N

사람이 읽을 수 있는 표기법
→ 예제/문서화

PROV-CONSTRAINTS

유효성 검증 규칙

PROV-SEM

형식 의미론 (1차 논리)

PROV-AQ

프로비넌스 접근/검색

👩‍💼 일반 사용자
PROV-PRIMER
👩‍💻 개발자
PROV-O, PROV-XML
PROV-AQ, PROV-DC
👩‍🔬 고급 구현자
PROV-DM, PROV-N
PROV-CONSTRAINTS

핵심 포인트: PROV-O가 특별한 이유는 시맨틱 웹(RDF/OWL) 기술을 기반으로 하기 때문에, 프로비넌스를 웹 전체에서 링크하고 질의할 수 있는 표준이라는 것이다. 지식 그래프, SPARQL 질의, 링크드 데이터 생태계와 자연스럽게 통합된다.


6부: 실전 시나리오 — PROV-O로 추적하는 현실 세계

시나리오 1: AI 학습 데이터의 출처 추적

2026년 현재 가장 뜨거운 이슈 — AI 모델의 학습 데이터 출처 문제를 PROV-O로 모델링해 보자.

📚 웹 크롤링 데이터
Entity (Collection)
→ used
🧹 데이터 정제
Activity
generated →
📦 정제된 학습 데이터셋
Entity (Collection)
📦 정제된 학습 데이터셋
Entity
→ used
🏋️ 모델 학습
Activity
generated →
🧠 LLM v1.0
Entity
🤖 학습 파이프라인
SoftwareAgent
wasAssociatedWith
🏋️ 모델 학습
Activity
actedOnBehalfOf
🏢 AI Corp
Organization

이 모델이 있으면 "이 LLM의 학습 데이터에 저작권 침해 콘텐츠가 포함되었는가?" 같은 질문에 체계적으로 답할 수 있다.

시나리오 2: 공급망 식품 안전

hljs language-turtle
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix food: <http://example.org/food/> .

# 농장에서 식탁까지
food:organicTomatoes   a prov:Entity ;
    prov:wasGeneratedBy   food:harvesting ;
    prov:wasAttributedTo  food:farmJeju ;
    prov:generatedAtTime  "2026-03-15"^^xsd:date .

food:harvesting  a prov:Activity ;
    prov:wasAssociatedWith  food:farmerKim ;
    prov:atLocation         food:jejuFarm .

food:tomatoSauce  a prov:Entity ;
    prov:wasDerivedFrom   food:organicTomatoes ;
    prov:wasGeneratedBy   food:sauceProduction .

food:sauceProduction  a prov:Activity ;
    prov:used  food:organicTomatoes ;
    prov:wasAssociatedWith  food:factorySeoul .

월마트는 IBM과 협력하여 블록체인 기반 식품 추적 시스템을 구축했다. 망고의 농장-소비자 이동 경로를 추적하는 데 기존 7일이 걸리던 것이 2.2초로 단축되었다. 이것이 바로 프로비넌스의 힘이다.

시나리오 3: 뉴스와 팩트체킹

가짜뉴스 확산 경로도 PROV-O로 모델링할 수 있다:

원본 생성
Entity: 연구 논문 → Activity: 논문 작성 → Agent: 연구자 A
1차 변형
Entity: 뉴스 기사 (wasQuotedFrom 연구 논문) → Agent: 기자 B — 맥락 축소
2차 변형
Entity: SNS 게시물 (wasDerivedFrom 뉴스 기사) → Agent: 인플루언서 C — 과장·왜곡
팩트체크
Entity: 팩트체크 결과 (hadPrimarySource 연구 논문) → Agent: 팩트체커 D — 원본 대조

hadPrimarySource로 원본까지 거슬러 올라가 대조할 수 있다. 정보의 변형 과정 자체가 투명해지는 것이다.


7부: 2026년, PROV-O가 다시 뜨거워진 이유

AI 거버넌스와 프로비넌스

EU AI Act와 데이터 출처 의무

2026년 8월 시행 예정인 EU AI Act는 고위험 AI 시스템에 대해 다음을 의무화한다:

요구사항PROV-O 대응
학습 데이터의 출처·범위·특성 문서화Entity(데이터셋) + wasGeneratedBy + hadPrimarySource
데이터 획득·선별 방법 기록Activity(수집·정제) + used + wasAssociatedWith
학습 데이터 출처 공개 요약본 발행Bundle(프로비넌스 기술의 집합) + wasAttributedTo(발행자)
AI 생성 콘텐츠의 기계 판독 가능한 출처 표시Entity + wasGeneratedBy(AI Activity) + wasAssociatedWith(SoftwareAgent)

C2PA: 콘텐츠 프로비넌스의 최전선

C2PA(Coalition for Content Provenance and Authenticity) 는 Adobe, Microsoft, Google, OpenAI 등이 참여하는 디지털 콘텐츠 출처 인증 표준이다. 2025~2026년 주요 진전:

  • 삼성 Galaxy S25: 스마트폰 카메라에 C2PA 서명을 내장한 최초의 대중 제품
  • OpenAI, Google DeepMind, Meta: AI 생성 콘텐츠에 C2PA 메타데이터 삽입
  • C2PA v2.2 (2025.05): 비디오 매니페스트 처리, 클라우드 기반 매니페스트 지원

C2PA는 PROV 모델과 직접적으로 연결되지는 않지만, 같은 철학을 공유한다: "이 콘텐츠가 어디서 왔고, 어떤 과정을 거쳤는가를 기록하자."

😱
문제: 딥페이크의 범람
2025년 기준 온라인 이미지의 상당수가 AI 생성물이지만 구분이 불가능
🔐
해법: 프로비넌스 기록
콘텐츠 생성 시점부터 출처·변형 이력을 암호학적으로 기록
결과: 신뢰의 인프라
"이것은 진짜다"가 아니라 "이것의 이력은 이렇다"를 증명 — 판단은 수신자 몫

AI 에이전트 시대의 프로비넌스

2026년의 AI는 단순한 질의응답을 넘어 에이전트(Agent) 로 진화하고 있다. AI 에이전트는 여러 단계의 의사결정을 자율적으로 수행한다. 이때 전통적 데이터 리니지는 "이 소스에 접근했다"만 기록하지만, 에이전트 리니지는 "에이전트가 소스 Z에서 Y를 발견했기 때문에 소스 X에 접근하기로 결정했다"까지 추적한다.

PROV-O의 Entity-Activity-Agent 모델은 이 에이전트 의사결정 체인을 표현하기에 적합하다:

계획 수립
Activity: 질의 분석 → used: 사용자 질문(Entity) → hadPlan: 검색 전략(Plan)
정보 수집
Activity: 웹 검색 → used: 검색 API(Entity) → generated: 검색 결과(Entity)
추론
Activity: 결과 종합 → used: 검색 결과(Entity) → generated: 최종 답변(Entity)
검증
Activity: 팩트 체크 → wasInformedBy: 결과 종합 → hadPrimarySource: 원본 논문(Entity)

8부: PROV-O와 지식 그래프 — 시너지의 폭발

PROV-O는 OWL2 기반 온톨로지이기 때문에, 지식 그래프(Knowledge Graph) 와 자연스럽게 결합한다. 이것이 PROV-O가 JSON이나 XML 기반 프로비넌스 표현보다 강력한 이유다.

SPARQL로 프로비넌스 질의하기

PROV-O 데이터를 트리플스토어에 저장하면 SPARQL로 강력한 질의가 가능하다:

hljs language-sparql
# "이 데이터셋의 원본 출처가 무엇인가?"
SELECT ?source ?sourceTime
WHERE {
  ex:myDataset prov:wasDerivedFrom+ ?source .
  ?source prov:generatedAtTime ?sourceTime .
  FILTER NOT EXISTS { ?source prov:wasDerivedFrom ?deeper }
}
hljs language-sparql
# "김철수가 관여한 모든 데이터의 파생물은?"
SELECT ?entity ?derived
WHERE {
  ?activity prov:wasAssociatedWith ex:kimCS .
  ?entity prov:wasGeneratedBy ?activity .
  ?derived prov:wasDerivedFrom+ ?entity .
}

도메인 확장의 유연성

PROV-O는 확장을 위해 설계되었다. 어떤 도메인이든 PROV-O 클래스를 상속받아 특화할 수 있다:

hljs language-turtle
# 생명과학 도메인 확장 예시
bio:Experiment    rdfs:subClassOf  prov:Activity .
bio:Sample        rdfs:subClassOf  prov:Entity .
bio:Researcher    rdfs:subClassOf  prov:Person .
bio:Laboratory    rdfs:subClassOf  prov:Organization .

bio:experiment001  a bio:Experiment ;
    prov:used          bio:bloodSample42 ;
    prov:wasAssociatedWith  bio:drPark ;
    bio:protocol       bio:pcr-v3 ;
    bio:temperature    "37.0"^^xsd:decimal .

이미 바이오메디컬, 지구과학, 디지털 인문학 등 다양한 분야에서 PROV-O 기반 확장 온톨로지가 활발히 사용되고 있다.


9부: 블록체인과 PROV — 불변의 프로비넌스

프로비넌스 신뢰와 혼돈

프로비넌스의 가장 큰 약점은 "프로비넌스 기록 자체를 위변조할 수 있다" 는 점이다. 아무리 정밀하게 출처를 기록해도, 그 기록이 조작되면 의미가 없다.

여기서 블록체인이 등장한다. W3C PROV 모델을 블록체인에 통합하여 변조 불가능한 프로비넌스를 구현하는 연구가 활발히 진행되고 있다.

📄 PROV-O 데이터
프로비넌스 기록
→ 해시
⛓️ 블록체인
불변 저장
→ 검증
✅ 신뢰 보장
위변조 불가

실제 적용 사례:

  • 카르푸(Carrefour): 유럽 최대 소매업체, 블록체인으로 자유방목 닭의 프로비넌스를 추적. 연어, 토마토, 꿀, 달걀, 우유로 확장
  • 월마트 + IBM: 망고의 농장→소비자 추적 시간을 7일에서 2.2초로 단축
  • 백신 공급망: IoT + 블록체인으로 콜드체인 이상 역추적, 위조 백신 유입 방지

10부: 실습 — 나만의 프로비넌스 그래프 만들기

지금까지 배운 개념을 직접 적용해 보자. 이 블로그 글 자체의 프로비넌스를 PROV-O로 기록해 본다:

hljs language-turtle
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix blog: <https://coredot.today/blog/> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .

# 이 블로그 글의 프로비넌스
blog:prov-o-article  a prov:Entity ;
    prov:wasGeneratedBy       blog:articleWriting ;
    prov:wasAttributedTo      blog:coredotToday ;
    prov:generatedAtTime      "2026-04-07"^^xsd:date ;
    prov:wasDerivedFrom       blog:w3cProvSpec ;
    prov:wasDerivedFrom       blog:provChallengePapers ;
    prov:wasDerivedFrom       blog:euAiActDocs .

# 원본 출처들
blog:w3cProvSpec  a prov:Entity ;
    prov:wasAttributedTo   blog:w3cProvWG ;
    prov:generatedAtTime   "2013-04-30"^^xsd:date .

blog:provChallengePapers  a prov:Entity ;
    prov:wasAttributedTo   blog:lucMoreau .

# 작성 활동
blog:articleWriting  a prov:Activity ;
    prov:used                blog:w3cProvSpec ;
    prov:used                blog:provChallengePapers ;
    prov:used                blog:euAiActDocs ;
    prov:wasAssociatedWith   blog:coredotToday ;
    prov:startedAtTime       "2026-04-07T21:00:00"^^xsd:dateTime .

# 에이전트들
blog:coredotToday  a prov:Organization .
blog:w3cProvWG     a prov:Organization .
blog:lucMoreau     a prov:Person .

PROV 도구 생태계

직접 실습할 수 있는 오픈소스 도구들:

도구언어특징
prov (Python)PythonPROV-DM 구현, 그래프 시각화, PROV-N/JSON/RDF 변환
ProvToolboxJavaPROV-O/PROV-N/PROV-XML 간 변환, 검증
PROV Translator웹 서비스PROV 직렬화 형식 간 변환 (온라인)
ProvStore웹 서비스프로비넌스 문서 저장·공유·시각화

Python으로 프로비넌스 그래프를 만드는 예제:

hljs language-python
from prov.model import ProvDocument
from prov.dot import prov_to_dot

# 프로비넌스 문서 생성
doc = ProvDocument()
doc.set_default_namespace('http://example.org/')

# 엔티티, 액티비티, 에이전트 정의
report = doc.entity('report:v1', {'prov:type': 'Report'})
analysis = doc.activity('act:analysis',
                         '2026-03-01T09:00:00',
                         '2026-03-01T17:00:00')
derek = doc.agent('agent:derek', {'prov:type': 'prov:Person'})

# 관계 설정
doc.wasGeneratedBy('report:v1', 'act:analysis')
doc.wasAssociatedWith('act:analysis', 'agent:derek')
doc.wasAttributedTo('report:v1', 'agent:derek')

# 시각화
dot = prov_to_dot(doc)
dot.write_png('provenance_graph.png')

마치며: 프로비넌스는 신뢰의 인프라다

W3C PROV-O가 제시하는 비전은 명확하다:

데이터를 신뢰하려면, 데이터의 이력을 알아야 한다.

2013년에 발표된 이 표준은 단순히 "데이터의 족보를 기록하자"는 제안이 아니었다. 그것은 웹 전체에서 통용되는 신뢰의 언어를 만들자는 야심 찬 프로젝트였다. Entity-Activity-Agent라는 놀라울 정도로 단순한 세 가지 개념으로, 미술품의 소유 이력부터 AI 학습 데이터의 출처까지 — 세상의 모든 프로비넌스를 설명할 수 있다.

2026년, 우리는 역사상 가장 많은 데이터와 콘텐츠가 생산되는 시대에 살고 있다. AI가 텍스트, 이미지, 비디오를 쏟아내고, 그중 진짜와 가짜를 구분하기 어려운 시대. EU AI Act가 데이터 출처 공개를 법제화하고, C2PA가 콘텐츠 인증을 표준화하는 이유가 여기 있다.

프로비넌스는 선택이 아니다. 신뢰의 필수 인프라다.


PROV-O 이해도 퀴즈

지금까지 배운 내용을 점검해 보자! 8개의 질문으로 PROV-O 핵심 개념을 테스트할 수 있다:


참고 자료

  • Luc Moreau, Paul Groth et al. "PROV-O: The PROV Ontology." W3C Recommendation, 30 April 2013
  • Luc Moreau et al. "The Open Provenance Model core specification (v1.1)." Future Generation Computer Systems, 2011
  • Luc Moreau, Paul Groth. "Provenance: an introduction to PROV." Morgan & Claypool Publishers, 2013
  • Luc Moreau. "The rationale of PROV." Journal of Web Semantics, 2015
  • Baker, M. "1,500 scientists lift the lid on reproducibility." Nature 533, 452–454, 2016
  • EU AI Act, Article 50: Transparency Obligations, 2024
  • C2PA Technical Specification v2.2, May 2025