>>    </people/markus> foaf:knows [ hydra:memberOf </people/markus/friends> ].
>> 
>>     means “Markus knows somebody who is a member of collection X".
> 
> But that's not what this says.  It says that Markus knows some entity that is 
> related by an unknown relationship to some unknown other entity.

Well, obviously we'd have to define the hydra:memberOf predicate…

It's not helpful to interpret "foaf:knows" as "knows"
but "hydra:memberOf" as "unknown relationship”.

And “unknown entity” is intended; this is why you have to fetch it if you're 
curious.

>> If you want more semantics, just add them:
>>     </people/markus/friends> :isACollectionOf [
>>         :hasPredicate foaf:knows;
>>         :hasSubject </people/Markus
>>     ]
>> But that is _not_ needed to achieve my 1 and 2.
> 
> Well this certainly adds more triples.  Whether it adds more meaning is a 
> separate issue.

Obviously, we'd define isACollectionOf as well.

> It appears that you feel that adding significant new expressive power is 
> somehow less of a change than adding new syntax.

I'm not adding any new expressive power. Can you point exactly to where you 
think I'm doing that?
Yes, I define a memberOf predicate that clients have to understand.
But that's a given if we just define it was owl:inverseProperty hydra:member.

Best,

Ruben

Reply via email to