Membership predicate
Opened this issue · 3 comments
Exploring the Loc-I cache, I have found
- each feature (e.g. Address, Meshblock, ContractedCatchment) is a member of a dataset, using
reg:register
as the membership predicate - each linking statement is a members of a linkset, using
dct:isPartOf
as the membership predicate.
I'm not sure 'is part of' is exactly the right semantics - it should be 'is member of' (discrete) though that may be hair-splitting. But is there a benefit in having different predicates for membership of the two different kinds of dataset?
Would need to check why we have different predicates used in Dataset resource vs Linkset resource. Do we consider Linkset to be a register in the same way as a Dataset?
We are re-using elements from a number of existing RDF vocabularies. I'm just a bit concerned that we might be picking-and-mixing most than is helpful. The most generic 'has-member' predicate is rdfs:member
. AFAIK there is not common inverse for this. reg:register
points the other way (from item to collection) so I see how it kinda matches the semantics, but the Registry vocabulary is not well known. Furthermore, I think I would argue that while our 'datasets' might be understood as Registers, I don't think we are using anything else from the registry model or RDF vocabulary, so I think it is a distraction to introduce it. Overenthusiasm?
I think I would be inclined to sinplify things and rely on rdfs:member
for both cases (which means caching the inverse relationship and re-writing the queries around that - it is quite trivial in SPARQL at least).
Use of reg:register
(and reg:Register
) is required by pyLDAPI, but is inconsistent with the semantics of Registry Ontology. See RDFLib/pyLDAPI#17