Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Indirect collections #63

Open
pietercolpaert opened this issue Nov 17, 2021 · 1 comment
Open

Indirect collections #63

pietercolpaert opened this issue Nov 17, 2021 · 1 comment

Comments

@pietercolpaert
Copy link
Member

pietercolpaert commented Nov 17, 2021

User stories and problems

  1. As a publisher of a dcat:Catalog with dcat:Datasets, I want to paginate the catalog in different ways, to find dataset objects without having to redefine a dcat:Catalog as a tree:Collection with tree:members
  2. As the creator of the TREE specification, I do not want to specify each possible collection design (AS2, LDP, Hydra, ...) in the spec, but I want a technique to tell a TREE client how to derive TREE semantics from an existing collection design
  3. As a data publisher that doesn’t need TREE-specific features just yet, I don’t want to add extra triples just in case I’m going to need it, but I do want the TREE tools to work with my Linked Data file regardless, and also interpret for example LDP/AS2/HTTP Link rel=next/Hydra paging.

Possible solution

In order to cover US1, we’d need a way to merely describe the containment property. The rest can be automatically inferred.

E.g.:

:Catalog a dcat:Catalog;
    dcat:dataset :A, :B, :C .

If we add 1 triple or header saying:

:Catalog tree:containmentPath dcat:dataset .

Then we can infer that :Catalog is a tree:Collection, and the current @base is a dcterms:isPartOf the :Catalog. The <> can then be extended with tree:Relations and the likes.

In order to tackle US2 and US3 we can work with a default value: we can maintain a list of a default containment path that must be checked. This can be for example:

:Collection tree:containmentPath [sh:alternatePath (tree:member as:item hydra:member ldp:contains) ]

ISSUE: for AS2, the items are contained on a view, and not on the collection. How do we deal with that?

@pietercolpaert
Copy link
Member Author

Another use case is where I don’t at all have a collection / membership defined in a file, but I still want to indicate from a previous file how to set the targets of the member extraction algorithm. This could be useful to make regular files or data dumps more easily part of the TREE ecosystem by providing a bit of external context.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant