SHACL(Shapes Constraint Language)은 RDF 데이터가 정해둔 조건을 만족하는지 검사하는 언어다. 검사할 데이터와 조건을 기술한 셰이프(Shape)를 구분한다. 응용 프로파일의 요구사항을 기계가 확인할 규칙으로 옮길 때 사용할 수 있다. (W3C SHACL 명세)
-
예를 들어 책의 제목이 하나 이상 있어야 한다면 해당 속성에
sh:minCount 1을 지정할 수 있다. 날짜나 숫자는 값의 자료형을 제한할 수 있다. 제목이 있다는 사실과 그 제목이 정확하다는 사실은 별개의 판단이다. (개수·자료형 제약) -
sh:closed true를 사용하면 열거한 속성과 따로 허용한 예외 밖의 속성을 검출할 수 있다. 수집 대상의 기록에 새 항목이 생겼을 때 이를 허용할지, 검토 대상으로 삼을지 정하는 데 쓰인다. (닫힌 셰이프) -
더블린 코어가 제목이라는 항목의 의미를 제공한다면 SHACL은 특정 데이터에서 그 항목에 어떤 조건을 요구할지 표현한다. 데이터 검증 규칙을 바꾸면 이전에 통과한 기록의 검사 결과도 달라질 수 있다.