-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discovery of an ODRL resource #12
Comments
A few thoughts on that:
|
Well, how does one know whether e.g., <https://example.org/foo>
<http://purl.org/dc/terms/rights> <https://example.org/foo.odrl> .
<https://example.org/foo>
<http://purl.org/dc/terms/rights> <https://example.org/foo2.odrl> . second.ttl <https://example.org/foo>
<http://purl.org/dc/terms/rights> <https://example.org/foo.odrl>, <https://example.org/foo3.odrl>, <https://example.org/foo4.odrl> . the question is less about
I reckon @csarven was referring to something along the lines of what's discussed here https://solid.github.io/web-access-control-spec/#acl-resource-discovery - simon |
Thanks @simonstey . Yes, along the lines of an ACL resource associated with a resource. @nitmws I meant the What's sought is about discovering a resource containing ODRL information that's associated with a resource. There is no strict expectation that the ODRL resource must contain all ODRL data about the resource. The controller (publisher) of the resource decides. I would say the property that I'm looking for to help with discovery is similar to PROV-O's http://www.w3.org/ns/prov#has_provenance :
(I used So, a property - just to illustrate the idea - like I would add that this relation does not need to (and probably should not) mandate that the ODRL resource must include certain or complete information. Surely the best practice would be that the associated ODRL resource contains "useful" information about the resource. There are other properties out there with the same general idea. Perhaps the IANA
For a bit more detail from Linked Data Platform's update to
Aside: In the W3C Solid CG ( https://www.w3.org/community/solid/ ) we are looking into how to incorporate ODRL in the Solid ecosystem eg. solid/specification#151 , solid/specification#116 . Having this property (URI) defined by the ODRL vocab can pave the way for easy interop. Alternatively, we can add a property to the Solid Terms ( http://www.w3.org/ns/solid/terms ) but I think id be best for ODRL to take this on... for obvious reasons. |
I think this "finding all ODRL policies relevant for a resource/target" is an issue a bit outside the scope of ODRL because how to solve that depends a/ on how rights expressions/licenses are created and applied by the assigner and b/ on a metadata standard applied to a type of resource/target. (Sorry, but still I consider metadata standards for assets as relevant as they define a vocabulary for the communication between quite different parties.) I see these options - and let's assume the ODRL-assigner is the party responsible for creating and applying ODRL policies:
This option raises the question "should the ODRL specs help with that"? Another option is to define an abstract umbrella - or let's call it an ODRL policy collection. Its data model covers only having a role and a list of identifiers of existing ODRL policies. The value of the role could be "all policies covering the same target asset" but others as well, e.g. "all policies covering the same assignee". Response to @csarven 's comment, just coming in: I guess my suggested ODRL policy collection is quite close to the provenance record. Michael |
@nitmws , thanks. If the proposal here is sufficiently clear, is there a process to take further? A review of the proposal in an upcoming CG meeting? |
@csarven first asking you: goes my proposal in the right direction? In this case I would create a new issue with a specification draft. This can be discussed at upcoming ODRL calls. Regarding next steps: ODRL 2.2 is a W3C Recommendation, therefore it is impossible to change it without a Working Group established by W3C. But the CG could work on a specification draft, test it ... = make it ready for formal adoption. |
I admit that I'm not entirely clear about your proposal or at least how it differs from what I've originally proposed ie. I would like to mention another related use case here on having an independent "ODRL resource" (again, what information goes in there is decided by the controller/publisher): the lifecycle of an ODRL resource may be dependent on the lifecycle of the resource that's referring to it. For example, re: Thanks for creating a new issue / spec draft and willing to take it up in an upcoming call! I'll make sure to be present. It is possible to add terms to existing namespaces, see https://www.w3.org/2016/08/namespaces/#adding with or without spec reference in both WGs and CGs. Related case: addition of the |
I'll try to sort out the issues @csarven has raised and provide comments and a spec draft: A) Referring to an ODRL Policy: this is already available. There is an odrl:hasPolicy property/predicate in the ODRL namespace: https://www.w3.org/TR/odrl-vocab/#term-hasPolicy. A has_odrl would compete with this property, different semantics are needed, see below hasPolicyCollection. B) re lifecycle: it may be the case that his issue can be covered by the ODRL Temporal Profile: https://w3c.github.io/odrl/profile-temporal/ with a list of requirements: https://www.w3.org/community/odrl/wiki/ODRL_Temporal_Profile_Requirements C) Spec - first draft :PolicyCollection a rdfs:Class, owl:Class, skos:Concept; rdfs:isDefinedBy odrl: ; rdfs:label "Policy Collection"@en; skos:definition "A set of one or more ODRL Policies, they may be collated for a specific purpose"@en . :includesPolicy a rdf:Property , owl:ObjectProperty, skos:Concept ; rdfs:isDefinedBy odrl: ; rdfs:label "Included Policy"@en ; skos:definition "Identifies an ODRL Policy which is included into an ODRL Policy Collection."@en ; rdfs:domain :PolicyCollection ; rdfs:range :Policy . :collectionPurpose a rdf:Property , owl:ObjectProperty, skos:Concept ; rdfs:isDefinedBy odrl: ; rdfs:label "Policy Collection Purpose"@en ; skos:definition "Identifies which purpose drives the collection of ODRL Policies."@en ; rdfs:domain :PolicyCollection ; rdfs:range :CollectionPurpose . :CollectionPurpose a rdfs:Class, owl:Class, skos:Concept ; rdfs:isDefinedBy odrl: ; skos:definition "A purpose for a collection of ODRL Policies."@en ; rdfs:label "Policy Collection Purpose"@en . :sharedAsset a :CollectionPurpose, skos:Concept ; rdfs:isDefinedBy odrl: ; rdfs:label "Shared Asset"@en ; skos:definition "A Policy Collection for which the identified Asset is the target Asset of all the Rules of the included ODRL Policies"@en ; skos:scopeNote "Example"@en . :sharedAssignee a :CollectionPurpose, skos:Concept ; rdfs:isDefinedBy odrl: ; rdfs:label "Shared Assignee"@en ; skos:definition "A Policy Collection for which the identified Assignee is the Assignee of all the Rules of the included ODRL Policies"@en ; skos:scopeNote "Example"@en . :hasPolicyCollection a rdf:Property , owl:ObjectProperty, skos:Concept ; rdfs:isDefinedBy odrl: ; rdfs:label "Target Policy"@en ; skos:definition "Identifies an ODRL Policy Collection which is relevant for the identified Asset or Party."@en ; rdfs:domain [ a owl:Class ; owl:unionOf ( :Asset :Party ) ; ]; rdfs:range :PolicyCollection . Quick summary following the raised need:
|
My brief comment is that we have defined the odrl:hasPolicy property: https://www.w3.org/TR/odrl-model/#policy-has for this purpose. And this has been adopted by DCAT: https://www.w3.org/TR/vocab-dcat-2/#Property:resource_has_policy |
Thanks @nitmws @riannella . I think I now better understand your suggestion involving FWIW, there are some key differences to what's intended with An "ODRL resource" can potentially be self-contained or -containable information. It is intended to be an atomic resource describing the ODRL information specific to the target resource. So, a property like Whereas the target of HEAD https://example.org/foo
200
Link: <https://example.org/foo.policy>; rel="http://www.w3.org/ns/odrl/2/hasPolicy" And when we <>
a odrl:Policy , odrl:Offer ;
odrl:target <https://example.org/foo> ;
odrl:permission [
odrl:action odrl:archive ;
odrl:assigner <https://csarven.ca/#i>
] . Because the base URL is intended to be the Policy, we have to refer to other instances of classes through fragments, bnodes or external resource. For the example above, bnode seems reasonable. For simple resource lifecycle management by the server, it'd be easier for clients that are writing the policy to use bnodes. This may need to be a shared agreement between clients and servers. It'd be possible to use an external IRI for the target of
This may appear to be nitpicky but we can contrast that with the generic ODRL resource case (similar to Hence, resource description and lifecycle is notably different for |
We spoke about this today - my 5 cents:
DCAT ( https://www.w3.org/TR/vocab-dcat-3/ ) already references odrl and has a set of definitions for different types of assets. You can then build and end up with:
|
Hi @csarven |
Closing issue as no response received |
Use case: agent wants to know how to display or further process policies directly associated with a resource.
If the ODRL policies are managed separately from the resources it describes, there needs to be a way to discover the policies.
What is the discovery path for agents starting with a resource that wants to find out about the ODRL resource (including information on policies, rules, actions, permissions, prohibitions, duties, assets, parties, constraints).
Is there an intended ODRL "protocol"? Is it in this CG scope?
By protocol, I mean something very lightweight eg:
(or along the lines of
Link: <https://example.org/foo.odrl>; rel="http://www.w3.org/ns/odrl/2/rights">
)Certainly ODRL information can be discovered on the data layer (using whatever most appropriate property):
but I'm primarily interested in the discovery of a resource that may hold all ODRL information about the associated resource. When the general use case is taken in context of authorization, discovery through the HTTP header would allow the consumer to get further details about the target.
The text was updated successfully, but these errors were encountered: