@@ -9,7 +9,7 @@ interface PolicyOptions {
99 assigner : string ;
1010 target : string ;
1111 scopes ?: string [ ] ;
12- containerName ?: string ;
12+ container ?: boolean ;
1313 client ?: string ;
1414}
1515
@@ -44,12 +44,12 @@ export async function createPolicies(policies: PolicyOptions[]): Promise<{ turtl
4444}
4545
4646export function createPolicy ( store : Store , options : PolicyOptions ) : string {
47- const { name, assignee, assigner, scopes = [ "read" ] , target, containerName , client } = options ;
47+ const { name, assignee, assigner, scopes = [ "read" ] , target, container , client } = options ;
4848 const uuid = randomUUID ( ) ;
4949 const baseIRI = `http://example.com/${ uuid } #` ;
5050
5151 const policyNode = namedNode ( `${ baseIRI } ${ name } Policy` ) ;
52- const permissionNode = blankNode ( ) ;
52+ const permissionNode = namedNode ( ` ${ baseIRI } ${ name } Permission` ) ;
5353
5454 // Policy triples
5555 store . addQuad ( policyNode , namedNode ( "rdf:type" ) , namedNode ( "odrl:Agreement" ) ) ;
@@ -65,23 +65,20 @@ export function createPolicy(store: Store, options: PolicyOptions): string {
6565 store . addQuad ( permissionNode , namedNode ( "odrl:assigner" ) , namedNode ( assigner ) ) ;
6666
6767 // Target triples
68- if ( containerName ) {
69- const containerNode = namedNode ( `${ baseIRI } ${ containerName } ` ) ;
68+ if ( container ) {
69+ const containerNode = namedNode ( `collection: ${ target } :http://www.w3.org/ns/ldp#contains ` ) ;
7070 store . addQuad ( permissionNode , namedNode ( "odrl:target" ) , containerNode ) ;
71- store . addQuad ( containerNode , namedNode ( "rdf:type" ) , namedNode ( "odrl:AssetCollection" ) ) ;
72- store . addQuad ( containerNode , namedNode ( "odrl:source" ) , namedNode ( target ) ) ;
73- store . addQuad ( containerNode , namedNode ( "odrl_p:relation" ) , namedNode ( "ldp:contains" ) ) ;
7471 } else {
7572 store . addQuad ( permissionNode , namedNode ( "odrl:target" ) , namedNode ( target ) ) ;
7673 }
7774
7875 // Client triples
7976 if ( client ) {
80- const constraintNode = blankNode ( ) ;
77+ const constraintNode = namedNode ( ` ${ baseIRI } ${ name } ClientConstraint` ) ;
8178 store . addQuad ( permissionNode , namedNode ( "odrl:constraint" ) , constraintNode ) ;
8279 store . addQuad ( constraintNode , namedNode ( "odrl:leftOperand" ) , namedNode ( "odrl:purpose" ) ) ;
8380 store . addQuad ( constraintNode , namedNode ( "odrl:operator" ) , namedNode ( "odrl:eq" ) ) ;
84- store . addQuad ( constraintNode , namedNode ( "odrl:rightOperand" ) , namedNode ( `ex: ${ client } ` ) ) ;
81+ store . addQuad ( constraintNode , namedNode ( "odrl:rightOperand" ) , namedNode ( `${ client } ` ) ) ;
8582 }
8683
8784 return policyNode . value ;
0 commit comments