SHACL 검증 대상 누락SHACL 검증 보고서온톨로지 검증 범위SHACL 실행 증거 대사

SHACL 검증 보고서: 통과했는데 검사 대상이 빠지는 이유

SHACL 검증 보고서의 통과와 실제 검사 범위를 구분하는 방법입니다. 대상 선택·그래프·규칙 버전을 고정하고 기대 목록과 완료 증거를 대사해 검사 대상 누락과 위반 결과를 따로 확인합니다.

이 글을 쓴 알파카랩스카카오·네이버·쿠팡 출신, 재하청 0%, 대기업·공공기관 등 18개사+ 레퍼런스

발행 ·알파카랩스

SHACL 검증 통과는 검사 범위를 함께 확인해야 합니다. 2026-10-29 기준, 대상이 빠진 실행은 전체 데이터의 품질 합격 근거가 아닙니다.

오류가 없다는 보고서를 받았다면, 원래 검사하려던 대상이 그 실행에 포함됐는지부터 확인하세요. 데이터를 잘못 골랐는데도 통과 표시만 보고 승인하는 상황을 막아야 합니다. 이 글은 고객 장애나 실측 성과가 아닌, 온톨로지 검증 배치의 범위와 완료 근거를 인수하는 설계 예시입니다.

검증 통과와 검사 범위는 어떻게 다른가요?#

검증 통과는 정해진 입력과 규칙에서 나온 판정입니다. 검사 범위는 어떤 규칙으로 어떤 객체를 확인할지 정한 목록입니다. 업무상 필수인 대상이 실행에 들어갔는지는 판정과 별도로 대조합니다.

공식 근거: W3C의 2017년 7월 20일 SHACL 권고안의 검증 보고서 정의를 기준으로 설명합니다. 2026년 10월 29일 확인했으며, 정상 완료한 검증의 sh:conforms 판정은 원천의 모든 객체를 검사했다는 증명이 아닙니다. 사용 엔진의 지원 버전과 실행 옵션도 함께 확인해야 합니다.

데이터 책임자는 기대 검사 목록을, 구현 담당자는 대상 선택과 완료 증적을 준비하세요. AI가 데이터의 부재를 답하는 문제는 온톨로지 부정 질의 검수에서 다룹니다. 여기서는 AI 답변 내용보다 검증 실행을 승인하는 근거에 집중합니다.

데이터가 있어도 검사 대상에서 빠질 수 있나요?#

데이터 그래프에 객체가 있어도 대상 선택 조건에 맞지 않으면 해당 규칙의 검사 대상에서 빠질 수 있습니다. 클래스 기반 선택은 그래프의 타입과 하위클래스 관계를 함께 확인해야 합니다. 다른 입력 경로가 있는지도 구분하세요.

가상 반례를 보겠습니다. 유효한 규칙 하나가 sh:targetClass로 품목을 선택하지만, 제공한 그래프에는 하위클래스 경로를 포함해 해당 클래스의 인스턴스가 없다고 가정합니다. 다른 대상 선언이나 암묵 대상, 직접 입력과 규칙 참조 경로도 없습니다. 이 제한된 조건에서는 대상0개로 정상 완료해도 그 규칙의 제약 위반이 없을 수 있습니다.

이 반례는 사양에서 도출한 설계 예시이며 엔진 실행 실측이 아닙니다. 반대로 target 선언이 없는 하위 규칙도 sh:node 같은 참조나 명시 입력으로 실행될 수 있습니다. W3C 권고안의 검사 대상과 focus node 정의를 확인하고, 선언 개수만으로 미실행을 단정하지 않습니다.

같은 검사 건수인데 왜 대사가 필요한가요?#

건수가 같아도 검사한 객체나 규칙이 다를 수 있습니다. 합의한 필수 규칙과 객체의 쌍을 기준으로 기대 목록과 완료 근거를 비교하세요. 완료 근거가 없는 항목은 실제 미실행인지, 증적을 수집하지 못했는지 추가로 확인합니다.

아래는 자사 설계 예시입니다. 같은 배치의 품목 규칙에 대해 기대 목록 E는 A와 B, 완료 근거를 확보한 목록 F는 B와 C라고 가정합니다. 규칙 이름과 A·B·C는 가상 식별자이며 실제 고객 데이터가 아닙니다.

가상 목록·산식규칙과 객체의 쌍검수 해석
기대 목록 E: 2개품목 규칙/A, 품목 규칙/B업무상 검사할 단위를 사전 합의
완료 근거 F: 2개품목 규칙/B, 품목 규칙/C건수는 같아도 A의 완료 근거는 없음
완료 근거 미확인: E − F품목 규칙/A선택 누락·중단·증적 미수집을 구분할 때까지 보류
추가 범위 확인: F − E품목 규칙/C허용된 추가 검사인지 합의 범위와 대조

E를 실행에 쓴 target 질의의 결과에서 그대로 복사하면 같은 누락을 반복할 수 있습니다. 동일 시점·권한 범위의 원천 목록과 업무상 포함·제외 기준으로 기대 목록을 정하세요. 다른 규칙이나 배치에서 나온 완료 근거를 합쳐 이번 실행을 승인하지 않습니다.

대사는 원천 자체의 정확성을 보장하지 않습니다. F에도 실제 완료를 확인할 수 있는 기록이 있어야 하며, 모든 엔진이 같은 증적을 제공한다고 가정할 수는 없습니다. 지원 방식이 불명확하면 먼저 미확인으로 남기고 수집 방법을 협의합니다.

위반 보고서와 완료 증거는 어떻게 나누나요?#

위반 보고서는 제약 판정의 문제를 찾는 데 사용하고, 완료 증거는 필수 검사가 수행된 범위를 확인하는 데 사용합니다. 결과의 sh:focusNode는 그 결과를 일으킨 대상이지 전체 검사 명부가 아닙니다. 정상 대상의 목록을 오류 결과에서 복원하려고 하지 마세요.

엔진이 정상 검사나 집계 정보를 별도로 제공할 수도 있습니다. 그 정보의 범위와 의미를 확인한 뒤 활용하며, 아래 명세를 SHACL 표준의 필수 출력 필드라고 제시하지는 않습니다. 다음 표는 배치 인수를 위한 자사 제안입니다.

실행 명세고정할 범위인수 때 확인할 근거
데이터 입력사용 그래프·스냅샷·원천 시점검증에 실제 전달된 입력 식별 정보
규칙 입력사용 규칙 버전·활성 여부·참조승인 규칙과 실행 규칙의 일치
대상과 권한필수 규칙·객체 목록과 제외 조건권한 내 기대 목록과 완료 근거의 대사
실행 환경엔진·사양 버전·추론·판정 옵션같은 조건으로 재현 가능한 설정
완료와 결과배치 종료·실패·검사 증적·위반위반 목록을 전체 검사 명부로 세지 않음

최신 사양의 지위도 구분해야 합니다. 2026년 10월 25일 발표된 SHACL 1.2 Core는 2026년 10월 29일 확인 기준 Working Draft입니다. 보고서와 판정 관련 내용이 포함돼 있지만 확정 권고나 모든 엔진의 지원 기능으로 취급하지 않습니다. 실행 버전·옵션을 고정하고 규칙 변경은 온톨로지 스키마 버전 관리와 함께 검토하세요.

어떤 실패 표본으로 검증 배치를 인수하나요?#

값이 틀린 표본과 검사 범위가 틀린 표본을 따로 준비합니다. 둘 다 승인 전에 확인할 문제지만, 데이터 수정과 실행 설정 수정의 담당자가 다를 수 있습니다. 정상적으로 대상이 없는 회차와 실행 실패도 구분하세요.

가상 검수 표본기대 판정확인할 후속 근거
필수 대상은 있는데 잘못된 그래프 전달통과 표시만으로 승인하지 않음입력 그래프와 원천 목록·대상 선택 비교
필수 규칙이 비활성화되거나 실행에서 빠짐값 품질 합격과 구분해 보류승인 버전·활성 상태·완료 근거 확인
같은 건수지만 기대 A의 완료 근거 없음완료 근거 미확인실제 미실행·중단·증적 수집 실패 분류
정상 대상에 필수값을 뺀 반례 추가활성 규칙의 예상 위반을 확인해당 대상·규칙과 보고된 결과의 연결
사전 합의 범위에 실제 대상 없음근거가 맞으면 해당 회차의 빈 범위 수용권한 내 원천 증거·허용 조건·승인 기록
엔진 오류·타임아웃·미완료품질 합격으로 바꾸지 않음실행 실패와 재검증 경로를 별도 기록

반례가 예상대로 잡혔다는 사실은 그 표본의 규칙 연결을 확인하는 근거입니다. 모든 규칙과 데이터의 정확성을 증명한 결과로 확대하지 않습니다. 출처와 실행 기록을 연결하는 방법은 AI 답변 출처 추적 설계도 참고할 수 있습니다.

검사 범위를 맞추려고 권한 밖 원천을 열거나 보호된 객체의 건수를 공개하지 않습니다. 접근할 수 없는 범위는 인수 담당자에게 제한을 명시하고 승인 조건을 다시 정합니다. 범위 대사 성공을 운영 데이터 공개 승인으로 해석하지 마세요.

알파카랩스와 어떤 검수 산출물을 정하나요?#

알파카랩스의 공개 온톨로지 서비스는 원천 매핑·정규화·사람 검수의 범위를 나누고 기존 통계와의 대사, 출처·권한과 검수 조건을 협의한다고 안내합니다. 게시일 미표기, 2026년 10월 29일 확인한 자사 제공 범위입니다. SHACL 전용 증적 수집이 모든 제품의 기본 기능이거나 검증 성과라는 뜻은 아닙니다.

비식별 기대 목록과 데이터·규칙 버전, 사용 엔진·실행 옵션, 통과·누락 표본을 준비하세요. 필수 검사 단위 명세와 누락·위반·미확인 판정표 초안을 협의합니다. 별도 산출물의 비용·기간은 자료·권한·엔진 증적 지원과 운영 승인 범위를 확인한 뒤 정합니다. 전체 구축 범위의 비교가 먼저라면 온톨로지 구축 업체 비교 기준에서 포함·제외 항목을 확인할 수 있습니다.

SHACL 검증 대상과 보고서에서 자주 묻는 질문#

SHACL 검증이 통과하면 전체 데이터가 정확한가요?
검증은 사용한 그래프와 규칙, 선택된 대상의 범위에서 해석해야 합니다. 합의한 필수 대상이 실제 검사됐는지와 원천 데이터가 정확한지는 별도 확인입니다. 통과 표시만으로 원천의 누락이나 업무상 진실까지 입증하지 않습니다.
검사 대상이 0개인 회차는 무조건 실패인가요?
해당 기간에 검사할 대상이 없는 정상 회차도 있습니다. 허용 범위와 원천 근거를 미리 합의했는지 확인하세요. 대상을 잘못 선택했거나 그래프가 빠진 상황과 구분할 수 없으면 승인 근거가 부족합니다.
target 선언이 없는 규칙은 실행되지 않나요?
다른 규칙에서 참조하거나 처리기에 검사 대상을 직접 전달하면 실행될 수 있습니다. target 선언만 세어서 전체 실행 범위를 판단하지 마세요. 필수 규칙을 어떤 경로로 호출하는지와 완료 근거를 함께 확인합니다.
보고서의 focusNode 개수가 실제 검사 건수인가요?
위반 결과에 표시된 focusNode는 그 결과를 일으킨 대상입니다. 같은 대상에서 여러 결과가 생기거나 정상 대상이 위반 목록에 나타나지 않을 수 있습니다. 전체 완료 목록은 엔진이 제공하는 별도 증적의 의미와 지원 범위를 확인해야 합니다.
기대 목록과 완료 목록의 차이가 실제 미실행을 뜻하나요?
완료 근거를 확보하지 못했다는 뜻부터 확인해야 합니다. 실제 대상 선택 누락, 실행 중단, 증적 수집 실패를 추가 기록으로 나누세요. 근거가 부족한 상태를 품질 합격이나 데이터 오류로 임의 확정하지 않습니다.

통과 보고서와 함께 검사 범위의 근거를 확인하세요.

비식별 기대 목록과 규칙·데이터·엔진 설정으로 필수 검사 단위 명세와 판정표 초안을 협의합니다. 별도 산출물의 비용·기간은 권한·엔진 증적 지원·운영 승인 범위 확인 후 정합니다.

검증 범위·판정표 협의