샤클
SHACL쉐이프 제약 언어(SHACL)는 일련의 조건에 대해 그래프 기반 데이터를[1] 검증하기 위한 W3C(World Wide Web Consortium) 규격이다. 그 중에서도 SHACL은 속성이 가질 수 있는 값의 수, 그러한 값의 유형, 숫자 범위, 문자열 매칭 패턴, 그리고 그러한 제약조건의 논리적 조합을 구속하는 조건을 표현하기 위한 기능을 포함한다. 또한 SHACL은 SPARQL과 같은 언어에서 더 복잡한 조건을 표현하기 위한 확장 메커니즘을 포함하고 있다.
SHACL 유효성 검사 엔진은 형상 선언이 포함된 데이터 그래프와 그래프를 입력하여 도구로 사용할 수 있는 유효성 검사 보고서를 생성한다. 이 모든 그래프는 JSON-LD 또는 터틀을 포함한 모든 RDF(Resource Description Framework) 일련화 형식으로 나타낼 수 있다. SHACL의 채택은 연계된 데이터의 미래에 영향을 미칠 수 있다.[3]
월드 와이드 웹 컨소시엄은 다음과 같은 SHACL 규격을 발표했다.
- SHACL[1] (W3C Technical Recommendation)은 SHACL Core의 특징과 SHACL-SPARQL이라는 확장 메커니즘을 정의한 본문서로, SHACL Core는 형상, 제약조건의 기본 구문 및 구조, 내장형 제약조건의 종류, 형상들을 데이터 노드에 연결하는 방법을 정의하고 있다. SHACL-SPARQL은 내장된 제약조건 종류에서 다루지 않는 제약조건을 표현하는 방법을 정의한다.
- SHACL 커뮤니티 그룹에 의해 유지되는 최신 버전의 SHACL 고급 기능[4](W3C Working Group Note)은 데이터 변환, 추론 및 데이터 형상에 기반한 매핑을 위한 강력한 기능인 SHACL 규칙에 대한 지원을 정의한다. 사용자 정의 함수와 같은 SHACL-SPARQL 확장도 포함한다.
- SHACL JavaScript Extensions[5](W3C Working Group Note)는 JavaScript를 제약조건, 규칙, 기능 및 기타 기능을 표현하는데 사용하는 방법을 정의한다. 이것은 SHACL-SPARQL과 유사한 접지를 다루지만 실행 언어로 자바스크립트를 사용한다.
- SHACL 콤팩트 구문[6](SHACL 커뮤니티 그룹 보고서)
오픈소스 도구
SHACL W3C 규격에서 연결된 SHACL 테스트 제품군 및 구현 보고서에는[7] 2019년 6월 현재 SHACL 유효성 검사에 사용할 수 있는 몇 가지 오픈 소스 도구가 나열되어 있다. 2019년 말까지 많은 상용 RDF 데이터베이스와 프레임워크 공급업체들은 적어도 SHACL Core에 대한 지원을 발표했다.
보고서에 나열된 일부 오픈 소스 도구는 다음과 같다.
- dotNetRDF SHACL - 에 기록된 온라인 SHACL 검증자 서비스.NET Framework[8][9]
- pySHACL - Python에서[10] 작성된 명령줄용 오픈 소스 SHACL 검증자 라이브러리
- SHACLEX - SHACL과 ShEX의[11] 스칼라 구현
- TopBraid SHACL API - Apache Jena를 기반으로 TopQuadrant에 의해 SHACL의 오픈 소스 구현. SHACL Core 및 SHACL-SPARQL 검증뿐만 아니라 SHACL 고급 기능, SHACL Javascript Extension 및 SHACL Compact Syntax를 다룬다. TopBraid 상용 제품에도 같은 코드가 사용된다.[12]
SHACL 플레이그라운드는 자바스크립트에서 구현되는 무료 SHACL 인증 서비스다.[13]
Eclipse rdf4j는 SHACL 유효성 검사를 지원하는 Eclipse Foundation의 RDF 데이터 처리를 위한 오픈 소스 Java 프레임워크다.[14]
참고 항목
참조
- ^ Jump up to: a b c d Knublauch, Holger; Kontokostas, Dimitris, eds. (2017-07-20). "Shapes Constraint Language (SHACL)". W3C. RDF Data Shapes Working Group. Retrieved 2021-04-06.
- ^ Jump up to: a b "Shapes Constraint Language (SHACL) Publication History - W3C". W3C. Retrieved 2021-04-06.
- ^ Voskuil, Jan (2017-11-14). "Web-based graph technology is on the rise. Here is why". LinkedIn (Blog post). Retrieved 2021-04-06.
- ^ Knublauch, Holger; Allemang, Dean; Steyskal, Simon, eds. (2017-06-08). "SHACL Advanced Features". W3C. RDF Data Shapes Working Group. Retrieved 2021-04-06.
- ^ Knublauch, Holger; Maria, Pano, eds. (2018-01-09). "SHACL JavaScript Extensions". W3C. SHACL Community Group.
- ^ Knublauch, Holger; Maria, Pano, eds. (2018-01-09). "SHACL Compact Syntax". W3C. SHACL Community Group.
- ^ Labra Gayo, Jose Emilio; Knublauch, Holger; Kontokostas, Dimitris, eds. (2021-01-22). "SHACL Test Suite and Implementation Report". W3C.
- ^ Lang, Samu (n.d.). "dotNetRDF SHACL". langsamu.net. Retrieved 2021-04-06.
- ^ Lang, Samu (2019-06-01). "dotNetRDF SHACL validator service". GitHub. Retrieved 2021-04-07.
- ^ Sommer, Ashley; Car, Nicholas (2018-08-15). "RDFLib/pySHACL: A Python validator for SHACL". GitHub. Retrieved 2021-04-06.
- ^ Labra Gayo, Jose Emilio; et al. (Web Semantics Oviedo, University of Oviedo). "weso/shaclex: SHACL/ShEx implementation". GitHub. Retrieved 2021-04-06.
- ^ Knublauch, Holger (2015-05-24). "TopQuadrant/shacl: SHACL API in Java based on Apache Jena". GitHub. Retrieved 2021-04-06.
- ^ Knublauch, Holger (2017-05-01). "SHACL Playground". SHACL Playground. Retrieved 2021-04-07.
- ^ Eclipse Foundation (n.d.). "Validation With SHACL The Eclipse Foundation". Eclipse RDF4J. Eclipse Foundation. Retrieved 2021-04-07.