SHACL(Shapes Constraint Language)은 [[RDF]] 데이터가 정해둔 조건을 만족하는지 검사하는 언어다. 검사할 데이터와 조건을 기술한 셰이프(Shape)를 구분한다. [[응용 프로파일]]의 요구사항을 기계가 확인할 규칙으로 옮길 때 사용할 수 있다. ([W3C SHACL 명세](https://www.w3.org/TR/shacl/)) - [공식 명세](https://www.w3.org/TR/shacl/) - 예를 들어 책의 제목이 하나 이상 있어야 한다면 해당 속성에 `sh:minCount 1`을 지정할 수 있다. 날짜나 숫자는 값의 자료형을 제한할 수 있다. 제목이 있다는 사실과 그 제목이 정확하다는 사실은 별개의 판단이다. ([개수·자료형 제약](https://www.w3.org/TR/shacl/#core-components)) - `sh:closed true`를 사용하면 열거한 속성과 따로 허용한 예외 밖의 속성을 검출할 수 있다. 수집 대상의 기록에 새 항목이 생겼을 때 이를 허용할지, 검토 대상으로 삼을지 정하는 데 쓰인다. ([닫힌 셰이프](https://www.w3.org/TR/shacl/#ClosedConstraintComponent)) - [[더블린 코어]]가 제목이라는 항목의 의미를 제공한다면 SHACL은 특정 데이터에서 그 항목에 어떤 조건을 요구할지 표현한다. [[데이터 검증]] 규칙을 바꾸면 이전에 통과한 기록의 검사 결과도 달라질 수 있다. ## 기타 등등 - 셰이프에 `sh:deactivated true`를 지정하면 그 조건을 비활성화할 수 있다. 다른 사람이 만든 규칙을 가져오되 현재 용도에 맞지 않는 부분을 제외하는 방법으로 명세에 소개되어 있다. [출처](https://www.w3.org/TR/shacl/#deactivated) - 검사 결과를 담는 보고서도 RDF로 표현할 수 있다. 검사 대상뿐 아니라 어디서 어떤 조건을 어겼는지도 데이터로 남는다. [출처](https://www.w3.org/TR/shacl/#validation-report) #메타데이터 #웹 #데이터