Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

shaclc-parse

Package Overview
Dependencies
Maintainers
1
Versions
10
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.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4.6K
increased by30.92%
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(`
BASE <http://example.org/basic-shape-with-targets>

PREFIX ex: <http://example.org/test#>

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

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

FAQs

Package last updated on 07 May 2023

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc