11import { DataFactory , Quad , Store } from "n3" ;
2- import { v4 as uuidv4 } from 'uuid ' ;
2+ import { randomUUID } from 'node:crypto ' ;
33import { ODRL , RDF , XSD } from "../util/Vocabularies" ;
44import { SimplePolicy , UCPConstraint , UCPPolicy , UCPRule } from "./UsageControlPolicy" ;
55const { quad, namedNode, literal } = DataFactory
66
77/**
88 * Create a simple ODRL policy with an agreement and one rule
9- * @param policy
10- * @param policyIRI
11- * @returns
9+ * @param policy
10+ * @param policyIRI
11+ * @returns
1212 */
1313export function basicPolicy ( policy : UCPPolicy , policyIRI ?: string ) : SimplePolicy {
14- policyIRI = policyIRI ?? "urn:ucp:policy:" + uuidv4 ( ) ;
14+ policyIRI = policyIRI ?? "urn:ucp:policy:" + randomUUID ( ) ;
1515 const store = new Store ( ) ;
1616 const ruleIRIs : string [ ] = [ ]
1717 if ( policy . type ) {
@@ -33,13 +33,13 @@ export function basicPolicy(policy: UCPPolicy, policyIRI?: string): SimplePolicy
3333
3434/**
3535 * Convert an Usage Control Rule to ODRL quads
36- * @param rule
37- * @param policyIRI
38- * @returns
36+ * @param rule
37+ * @param policyIRI
38+ * @returns
3939 */
4040export function createRuleQuads ( rule : UCPRule , policyIRI ?: string ) : { quads : Quad [ ] , ruleIRI : string } {
4141 const quads : Quad [ ] = [ ]
42- const ruleIRI = "urn:ucp:rule:" + uuidv4 ( ) ;
42+ const ruleIRI = "urn:ucp:rule:" + randomUUID ( ) ;
4343 quads . push ( quad ( namedNode ( ruleIRI ) , ODRL . terms . action , namedNode ( rule . action ) ) )
4444 quads . push ( quad ( namedNode ( ruleIRI ) , ODRL . terms . target , namedNode ( rule . resource ) ) )
4545 quads . push ( quad ( namedNode ( ruleIRI ) , ODRL . terms . assignee , namedNode ( rule . requestingParty ) ) )
@@ -67,21 +67,21 @@ export function createRuleQuads(rule: UCPRule, policyIRI?: string): { quads: Qua
6767
6868/**
6969 * Convert an Usage Control Constraint to ODRL quads
70- * @param rule
71- * @param policyIRI
72- * @returns
70+ * @param rule
71+ * @param policyIRI
72+ * @returns
7373 */
7474export function createConstraintQuads (
75- constraint : UCPConstraint ,
75+ constraint : UCPConstraint ,
7676 ruleIRI ?: string
7777) : { quads : Quad [ ] , constraintIRI : string } {
7878 const quads : Quad [ ] = [ ]
79- const constraintIRI = "urn:ucp:constraint:" + uuidv4 ( ) ;
79+ const constraintIRI = "urn:ucp:constraint:" + randomUUID ( ) ;
8080 switch ( constraint . type ) {
8181 case "temporal" : // maybe have as type something more semantically defined?
8282 quads . push ( quad ( namedNode ( constraintIRI ) , ODRL . terms . leftOperand , ODRL . terms . dateTime ) ) ;
8383 quads . push ( quad ( namedNode ( constraintIRI ) , ODRL . terms . operator , namedNode ( constraint . operator ) ) ) ;
84- quads . push ( quad ( namedNode ( constraintIRI ) , ODRL . terms . rightOperand ,
84+ quads . push ( quad ( namedNode ( constraintIRI ) , ODRL . terms . rightOperand ,
8585 literal ( ( constraint . value as Date ) . toISOString ( ) , XSD . terms . dateTime ) ) ) ;
8686 if ( ruleIRI ) {
8787 quads . push ( quad ( namedNode ( ruleIRI ) , ODRL . terms . constraint , namedNode ( constraintIRI ) ) )
@@ -104,6 +104,3 @@ export function createConstraintQuads(
104104 constraintIRI
105105 }
106106}
107-
108-
109-
0 commit comments