- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Mon, 12 May 2014 14:31:14 -0700
- To: Markus Lanthaler <markus.lanthaler@gmx.net>
- Cc: public-hydra@w3.org
On May 12, 2014, at 1:15 PM, Markus Lanthaler <markus.lanthaler@gmx.net> wrote:
> On Monday, May 12, 2014 8:15 PM, Gregg Kellogg wrote:
>> This topic's been quiet for a while, but for me, resolving this is pretty
> much my top priority.
>> At this point, I think there are two basic solutions:
>>
>> 1) Use a separate _collection property_, which has some semantic
> relationship to the base
>> property, where the range is specifically a collection. For example:
>>
>> </gregg> a foaf:Person; :knowsCollection </gregg/knowsCollection> .
>> :knowsCollection :collectionPropertyFor foaf:knows .
>
> Interesting.. so you would set the link from knowsCollection to knows and
> not vice-versa? What about asserting it on a, what we currently call,
> SupportedProperty?
I was just illustrating such a possible assertion. In fact, I did create a hydra:collectionProperty to use on a SupportedProperty, but I didn't find this particularly transparent or satisfying. In fact, it's easier to consider foaf:knows to not be a supported property, in this case.
>> Then the collection can reference each member and re-assert the
> relationship
>>
>> </gregg/knowsCollection> a hydra:Collection;
>> hydra:member </markus> .
>> </gregg> foaf:knows </markus> .
>>
>> 2) In a separate email, @lanthaler described an alternate using an
> intermediate object, such
>> as the following:
>>
>> </gregg> a foaf:Person;
>> :hasRelationshipIndirector [foaf:knows </gregg/knowsCollection>] .
>>
>> This could then reference the same type of collection I described above.
> It sort of breaks
>> foaf:knows, except it does so on a blank resource, which could have some
> _catch-all_
>> semantic description, and it at least does not mess up the definition of
> the primary Person
>> resource.
>>
>> I see many advantages to the 2nd proposal, but would really like to see
> this more actively
>> discussed.
>
> I would also like to hear more opinions on this. I think it has a number of
> advantages but, as Gregg points out, it is a bit weird from a semantical
> point of view.
>
> There's also a third option which would be somewhat similar to what LDP
> does. Namely assert what subject-property pair the collection is managing.
> Something like
>
> </gregg/knowsCollection> :manages [
> :subject </gregg/> ;
> :property foaf:knows
> ] .
This is also quite close to something Nikas suggested from the VOID vocabulary [1]:
</gregg> a foaf:Person;
rdfs:seeAlso [
a void:Linkset;
void:subjectsTarget </gregg>;
void:objectsTarget </gregg/friends>;
void:linkPredicate foaf:knows
] .
Although, this does not assert the relationship in the Collection, but in the Linkset. It does have the advantage of being a pattern from a widley-deployed vocabulary for describing datasets.
> The link to the collection can then be done by something very generic such
> as rdf:seeAlso.
In your example, the seeAlso would presumably directly reference the collection, but would need to extract some useful properties of that collection, perhaps like this:
</gregg> a foaf:Person;
rdfs:seeAlso </gregg/friends> .
</gregg/friends> a hydra:Collection;
:manages [
:property foaf:knows;
:subject </gregg>
] .
They really both have the same amount of indirection, but in your case, it's more :subject => :collection => :manages, and in the VOID case, its :subject => :Linkset => :collection, which does seem a little more natural to me.
> Last but not least, for some vocabularies (most notably Schema.org) simply
> sticking to the current approach would work as well but introduces an
> undesired triple unless you remove it when you ingest the data
>
> </GreggKellog> schema:knows </gregg/knowsCollection>
Well, I've already objected to this pattern, so that would be a no-go for me.
> Gregg, at this stage, what would be your preferred approach?
>
>
> --
> Markus Lanthaler
> @markuslanthaler
Gregg
[1] http://lists.w3.org/Archives/Public/public-hydra/2014Mar/0125.html
Received on Monday, 12 May 2014 21:31:45 UTC