Diamond inherits from grandparent once 01

A policy from the Compliance corpus. The table gives the source and what the policy shows, in the source's words.

SourceWhat it shows
diamond-inherits-from-grandparent-once-01.ttlGenuine diamond dsc:inheritsFrom (grandparent -> {parent-1, parent-2} -> child): the grandparent's permission and obligation reach the child exactly once, not once per path

Policy #

{
  "@context": [
    "http://www.w3.org/ns/odrl.jsonld",
    {
      "case": "https://ds-labs-org.github.io/ds-odrl-compliance-rdf/cases/diamond-inherits-from-grandparent-once-01#",
      "dsc": "https://ds-labs-org.github.io/ds-odrl-compliance-rdf/ns#",
      "dpv": "https://w3id.org/dpv#",
      "foaf": "http://xmlns.com/foaf/0.1/",
      "vcard": "http://www.w3.org/2006/vcard/ns#"
    }
  ],
  "@graph": [
    {
      "@type": "Set",
      "uid": "case:policy-grandparent",
      "assigner": "did:web:root-provider.example",
      "permission": [
        {
          "uid": "case:perm-use",
          "action": "use"
        }
      ],
      "obligation": [
        {
          "uid": "case:duty-notify",
          "action": "notify"
        }
      ]
    },
    {
      "@type": "Set",
      "uid": "case:policy-parent-1",
      "inheritFrom": "case:policy-grandparent",
      "assigner": "did:web:root-provider.example"
    },
    {
      "@type": "Set",
      "uid": "case:policy-parent-2",
      "inheritFrom": "case:policy-grandparent",
      "assigner": "did:web:root-provider.example"
    },
    {
      "@type": "Agreement",
      "uid": "case:policy-child",
      "inheritFrom": [
        "case:policy-parent-1",
        "case:policy-parent-2"
      ],
      "assignee": "did:web:caller.example"
    }
  ]
}

Reading #

The sentences OdrlProse writes for this policy, without a profile.

Policy set case:policy-grandparent

A set of rules from did:web:root-provider.example (assigner).

  1. Anyone may use an unspecified asset, as permitted by the assigner did:web:root-provider.example.

  2. The assignee must notify, as required by the assigner did:web:root-provider.example.

Policy set case:policy-parent-1

A set of rules from did:web:root-provider.example (assigner).

  • Inherits the rules of case:policy-grandparent.
  1. Inherited from case:policy-grandparent: Anyone may use an unspecified asset, as permitted by the assigner did:web:root-provider.example.

  2. Inherited from case:policy-grandparent: The assignee must notify, as required by the assigner did:web:root-provider.example.

Policy set case:policy-parent-2

A set of rules from did:web:root-provider.example (assigner).

  • Inherits the rules of case:policy-grandparent.
  1. Inherited from case:policy-grandparent: Anyone may use an unspecified asset, as permitted by the assigner did:web:root-provider.example.

  2. Inherited from case:policy-grandparent: The assignee must notify, as required by the assigner did:web:root-provider.example.

Agreement case:policy-child

An agreement between did:web:root-provider.example (assigner) and did:web:caller.example (assignee).

  • Inherits the rules of case:policy-parent-1 and case:policy-parent-2.
  1. Inherited from case:policy-grandparent: did:web:caller.example may use an unspecified asset, as permitted by the assigner did:web:root-provider.example.

  2. Inherited from case:policy-grandparent: did:web:caller.example must notify, as required by the assigner did:web:root-provider.example.

The renderer raised no warning for this policy.

Back to the Compliance corpus or the catalog.