| RE: [higgins-dev] Re: Original vs. Revised Access Control PolicyProposals |
|
I respond at the end to the last points in
this Paul/Jim thread, but I’m leaving the full thread intact as the
context is relevant. Jim wrote:
Paul wrote:
Jim wrote: Jim wrote:
Jim wrote:
Paul wrote:
=Drummond writes: There is a direct parallel to the XDI RDF graph
model here. In the grammar of that model, one XRI -- $has – is used to
express aggregation relationships, i.e, the XDI statement =a/$has/+b says that
entity =a aggregates entity +b. The inverse predicate is $a$has, i.e., +b/$a$has/=a
asserts that +b is aggregated by =a. So even though there could be many arcs expressing
different relationships between entities =a and +b, from the standpoint of hierarchical
access control, an XDI agent enforcing link contract policies only has to look
for a $has relationship. This leads me to a suggestion: in the XDI
RDF graph model, aggregation is aggregation no matter where it happens in the
graph. In other words, aggregation relationships between people (such as the
relationship between an entity representing a group and an entity representing
a member of the group), and aggregation relationships between data (such as the
relationship between an entity representing a business card and an entity
representing a postal address on that business card) are both expressed using
$has predicates. To keep policy enforcement simple and
universal, wouldn’t the Higgins model want to do the same thing, i.e.,
establish one Higgins predicate that – from the standpoint of policy
enforcement -- means aggregation no matter what type of entity is being
aggregated? Here’s my rationale: take the same Higgins
entity representing a group that is a _subject_
of a Policy in Paul’s example above, and therefore would have has “member/memberOf”
relationships to the set of entities representing its members. Now turn it around
and make that group the _object_ of
another policy that permits access to the some of the contact data of the group’s
members. You wouldn’t want to have to suddenly
create “part/partOf” relationships between the group and its
members just because they are now the object of a policy when the “member/memberOf”
relationships already express the same thing. Net net: you can always add other arcs
predicates to express specific types of relationships between entities. But having
one predicate that expresses the pure concept of aggregation will simplify the
job of policy enforcement everywhere. =Drummond |