OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xdi message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [xdi] Link Contracts revised


Hello Markus,

I understand your concerns! but, I fear that if we do not assign the  
correct semantics to operators we risk to have an inconsistent model  
(and vanish the advantages of RDF syntax).

The problem highlighted in issue #1 is related to the associativity  
(see for example http://en.wikipedia.org/wiki/Operator_associativity)  
of the $has operator; as we used right now, this is a left associative  
operator.

Therefore

+a+b+c reads as ((+a/+b)/+c)), i.e. (+a+b/+c)

but if we want to compose +a with +b+c the ONLY way I see is to refer  
to +b+c is using an xref: (+b/+c)

+a(+b+c) reads as (+a/(+b/+c)), i.e. (+a/+b+c)

therefore, +a+b+c and +a(+b+c) are NOT synonyms.

When +b+c appears as an object in the RDF triple, we probably do not  
need to xref it, as there is no ambiguity.

What do you think?

Btw, for the sake of clearness, issue #2 is something different (in my  
original mail there are two different issues with two proposed  
solutions, not one single issue with two different solutions ;-)

ciao!
Giovanni

Def. Quota "Markus Sabadello" <markus.sabadello@xdi.org>:

> Hey Giovanni,
>
> I think the challenge we have here is to try and align the theoretical /
> scientific background (the XDI metagraph model) with practical, intuitive
> patterns that are easy to use. I don't know if that can always be done. I
> assume when Drummond wrote those link contract examples, he probably tried
> to make it as simple as possible :)
>
> From a practical perspective, I want to be able to easily write and evaluate
> link contracts, e.g. I want a list of all subjects to which a link contract
> grants permissions.
>
> First of all, I don't think $has should sometimes produce subjects with ( ),
> and sometimes not. It seems in your examples the parentheses get added
> "automatically".
>
> For your solution #1, I think to produce subject
> =drummond+friend$contract$sig(=web*markus) I would have to construct my link
> contracts like this:
>
> =drummond+friend$contract$sig
>        $has
>               (=web*markus)
>
> And for your solution #2, to produce subject
> =drummond+friend$contract(=web*markus$sig), I think I would have to do this:
>
> =drummond+friend$contract
>        $has
>                (=web*markus$sig)
>
> Both patterns look a bit more complicated than the original, but I guess
> they would work too.. Not sure what makes most sense from a theoretical
> perspective.. I'm basically happy with anything that can be parsed and
> understood by an XDI endpoint that has to evaluate the link contracts.
>
> Markus
>
> On Mon, Nov 9, 2009 at 3:46 AM, Giovanni Bartolomeo <
> giovanni.bartolomeo@uniroma2.it> wrote:
>
>> Hello,
>>
>> I was revising link contracts and I've noted the following two issues:
>>
>> We have this example:
>>
>> =drummond+friend$contract$sig
>>        $has
>>                =web*markus     <-- Drummond adds Markus to this contract
>> -->
>>
>> Thus a new subject is created:
>>
>> =drummond+friend$contract$sig=web*markus
>>
>> ISSUE#1: since $has is left associative (+a+b+c <==> ((+a/+b)/+c)), see
>> mail "Key implications of new metagraph $has definition" (May 4, 2009) this
>> statement is parsed as =web was part of the composite subject
>> =drummond+friend$contract$sig=web, and not part of =web*markus.
>> To solve this, my proposal is to use xref, as follow:
>>
>> =drummond+friend$contract$sig(=web*markus)
>>
>> ISSUE#2: we have now the following entailment (+x+y==>+x+y/$is$a/+y):
>>
>> =drummond+friend$contract$sig(=web*markus)
>>        $is$a
>>                =web*markus
>>
>> this sounds a bit odd. My proposal is to change the original statement as
>> follow
>>
>> =drummond+friend$contract
>>        $has
>>                =web*markus$sig <-- Drummond adds Markus to this contract
>> -->
>>
>> This way we have the new composite subject
>> =drummond+friend$contract(=web*markus$sig) which correctly entails
>>
>> =drummond+friend$contract(=web*markus$sig)
>>        $is$a
>>                =web*markus$sig
>>
>> There would be more to say about the relationship btw $contract$sig and
>> =drummond+friend$contract(=web*markus$sig), OO people (like myself) could
>> see inheritance and polimorphism applied here, but for the moment just stop
>> here, waiting for your comments.
>>
>> Kind Regards,
>> Giovanni
>>
>> ----------------------------------------------------------------
>> This message was sent using IMP, the Internet Messaging Program.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this mail list, you must leave the OASIS TC that
>> generates this mail.  Follow this link to all your TCs in OASIS at:
>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>>
>



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]