[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Simple] Models for representing presence rules



This should come as now surprise, but I'm in favor of semantic transformations. Beyond the reasons you mention, there is the one of representing and editing rules. With a syntactic model, it is possible for a user interface to translate a human-understandable policy into a show-element, but the reverse transformation is somewhat more difficult to make without exposing the user to fairly meaningless information that is often in a foreign language (unless your native language happens to be English).

It also seems easier to accidentally create an invalid PIDF extension document if a schema has a minOccurs > 0 in some nested element.

Clearly, restrictions on attributes will be difficult to express in the syntactic model, since we (correctly, I think) didn't want to go down the XPath. (As an example, would we want to restrict access to the since/until information in RPID, which is expressed as attributes?)

From a practical perspective, all in-progress PIDF extensions (CIPID, RPID, etc.) could already provide filtering information, so backward-compatibility doesn't seem much of a problem.

Henning

Jonathan Rosenberg wrote:

I wanted to make the group aware of an important implicit decision that has been made in the way presence authorization rules have been structured in:

http://www.ietf.org/internet-drafts/draft-rosenberg-simple-rules-00.txt

The model used in this document is that the transformation rules are syntactic in nature. That is, they define rules based on XML constructs, such as adding and removing elements, adding and removing namespaces, and so on. These kinds of rules have the benefit that they can be used for new presence extensions that havent even been defined yet. For example, if we defined a new extension that included contact information within a namespace urn:ietf:params:xml:ns:pidf:cipid, a presentity could define rules for giving out this information using the show-namespace construct in rosenberg-simple-rules, even though the cipid extension did not exist when simple-rules was defined.

The drawback is that the impact of a set of rules on a document could be non-obvious and have the wrong effect. Hisham has already pointed out some cases where, for example, if the same element appeared in several places in a document, the show-element transformation might have unintended consequences. It also complicates interactions between transformations that can affect the same data - for example, show-namespace and show-element can affect the same element in a presence document, and thus there is an interaction between them.

A different approach is a more semantic approach, which is actually what is done in the geopriv equivalent:

http://www.ietf.org/internet-drafts/draft-ietf-geopriv-policy-01.txt

For us, the analagous thing would be to define rules for each specific part of the presence document. For example, for the note, we could define three levels of privacy - to not send any notes, to send notes for tuples only, notes for the whole document, or all:

<note>tuples-only</note>

We would also need to define elements for various rpid pieces. For example:

<placetype>home-only</placetype>
<icon>black-and-white</icon>

would specify that the placetype element is included only if its value is home, and the icon that is sent (defined in cipid) should be converted to black and white first.

The semantic approach allows us to carefully construct our privacy policies so that there is no feature interaction (as we have the syntactic approach today); it would also allow us to specify transformations that are non-trivially represented via XML constructs, for example converting an image to black and white.

To be honest, I'm on the fence on this. I have gradually been coming over to the "semantic" side of the argument, because it allows us to be more concise. The cost is that new extensions to pidf would have to define their own authorization policies as well.

This is a major decision point we need to make. Please comment.

Thanks,
Jonathan R.
_______________________________________________
Simple mailing list
Simple@ietf.org
https://www1.ietf.org/mailman/listinfo/simple