🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

shaclc-parse

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shaclc-parse

A parser for files written with SHACL compact syntax

1.4.3
latest
Source
npm
Version published
Weekly downloads
6.2K
-34.18%
Maintainers
1
Weekly downloads
 
Created
Source

shaclc-parse

A parser for files written with SHACL compact syntax

Usage

import { parse } from 'shaclc-parse'

const quads = parse(`
PREFIX ex: <http://example.org/test#>

shape ex:TestShape -> ex:TestClass1 ex:TestClass2 {
	targetNode=ex:TestNode targetSubjectsOf=ex:subjectProperty targetObjectsOf=ex:objectProperty .
}
`, { baseIRI: "http://example.org/basic-shape-with-targets" })

Extended SHACL Compact Syntax

The SHACL Compact Syntax specification is not expressive enough to make any RDF 1.0 statement. This package includes an opt-in extended syntax that allows users to make any RDF 1.0 statement. Parsing of this extended syntax can be enabled via an option in the parse function

const quads = parse(/*shaclc extended string*/, { extendedSyntax: true })

Making additional statements about the NodeShape

Additional statements can be made about NodeShapes by using a turtle-like syntax before the body of the shape. For instance we can add the following statements to the above ex:TestShape.

ex:TestShape ex:myCustomAnnotation ex:myCustomValue ;
	ex:myCustomBlankNodeAnnotation [
		ex:myCustomList ( 1 ex:myCustomValue )
	] .

by doing the following:

shape ex:TestShape -> ex:TestClass1 ex:TestClass2 ;
	ex:myCustomAnnotation ex:myCustomValue ;
	ex:myCustomBlankNodeAnnotation [
		ex:myCustomList ( 1 ex:myCustomValue )
	] {
		targetNode=ex:TestNode targetSubjectsOf=ex:subjectProperty targetObjectsOf=ex:objectProperty .
	}

Making additional statements about the sh:property

additional statements can be made about each blank node property as follows:

shape ex:TestShape -> ex:TestClass1 ex:TestClass2 {
	ex:myPath [0..1] %
		ex:myCustomPropertyAnnotation ex:myCustomPropertyValue ;
		ex:myCustomPropertyAnnotation2 ex:myCustomPropertyValue2 ;
	% .
}

Making arbitrary statements

Finally we permit the use of turtle syntax at the end of the file to make any additional statements

shape ex:TestShape -> ex:TestClass1 ex:TestClass2 {
	targetNode=ex:TestNode targetSubjectsOf=ex:subjectProperty targetObjectsOf=ex:objectProperty .
}

ex:bob a ex:Person .

License

©2022–present Jesse Wright, MIT License.

Keywords

shacl

FAQs

Package last updated on 25 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts