-
Notifications
You must be signed in to change notification settings - Fork 47
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
deprecate wac:Control #303
Comments
pretty cool that this issue is numbered 303! |
My initial reaction is that it is an interesting idea, but then "how far do we recurse?" I.e. is it only the first ACL resource that has an ACL resource, or can that go on? |
Most servers that move away from acl:Control, would be set up so that Let me illustrate with a simple example to make things clear. Say GET /some/document HTTP/1.0 and the server responds
That Link points to the ACR. Then a 200 Ok
Link: <>; rel="acl"
Content-Length: 1022
Content-Type: text/turtle
..... There is no new danger of infinite recursion that did not exist before: since web pages and RDF documents can already have links pointing to themselves. That is: any good web client, needs to keep track of the resources they have already visited to avoid re-visiting resources. Good caches and DBs are helpful for that. |
@kjetilk suggested leaving out acl:Control from the discussion on modes and moving it here. So I will summarise the new mathematical aspect that I introduced recently to the discussion here. The discussion on Modes starts with a very nice inheritance diagram with three categories of modes, narrowing into various subcategories. What is important here are the top three categories: Read, Write and Control. What my study of mathematics over the past 5 years has led me to discover is that of those three: Read and Write are fundamentally important in the mathematics of dynamic systems. And dynamic systems themselves are expressed as coalgebras that are duals to another fundamental concept in mathematics and computing namely algebras. Dynamical systems (see recent book) are based on two types of functions on a state S.
Note that in the 1990ies Bart Jacobs' Objects and Classes Coalgebraically found these to give a theory of Object Oriented Programming: the setters and getters of Java Beans were not an arbitrary invention! For a full history of the concept see Lenses for Philosophers. Later Functional Programming rediscovered this as Lenses which are Monadic versions of the above. And recent mathematical work shows that these fall into a general conception of lenses which can model dynamical systems. For many more resources see this twitter thread. So
To get a handle on That is why I think it is actually better modelled as being the |
A little additional point. In N3 one would model the basic ABNL @prefix log: <http://www.w3.org/2000/10/swap/log#> .
:says a rdf:Property;
rdfs:domain foaf:Agent;
rdfs:range log:Formula; A formula is a generalisation of a graph (they can contain variables), and a graph is what an RDF resource returns. So we should be able to say things like, :John :says </accessRules> where [] :accessTo :WhiteHouse
:mode Enter;
:agent </me#> . We can express that in Trig as a relation to a named graph, and in N3 as :John :says {
[] :accessTo :WhiteHouse
:mode Enter;
:agent </me#> .
} What is in the So back to { ?a :controls ?p } => { ?a says ?p . ?p a log:Truth } => ?p In WAC we have that a guard takes the HTTP header Link: <?acl>; rel="http://www.w3.org/ns/auth/acl#accessControl" returned by a resource |
In todays authorization panel (see PR) it was pointed out that the access modes were currently defined in the spec.
So @matthieubosquet argued and others seemed to agree that
Given that I would like to point to the issue #94 deprecate acl:Control, replace with ... that I mistakenly wrote up in the WAC spec site thinking that this issue was decided there.
The text was updated successfully, but these errors were encountered: