CSIRO-enviro-informatics / pyldapi

A very small module to add Linked Data API functionality to a Python Flask installation
GNU General Public License v3.0
1 stars 0 forks source link

Limitations of pyLDAPI which need addressing before rollout. #13

Open ashleysommer opened 6 years ago

ashleysommer commented 6 years ago

Look at this output of the current implementation of the GNAF Register of Registers: https://pastebin.com/raw/QpL4iPYx

You will notice there are triples in that output that currently the pyLDAPI cannot be configured to output.

For example, this is what the same RofR would look like as ouput by the current version of the pyLDAPI: https://pastebin.com/raw/UiMc3krd

Comparing the two, notice:

ashleysommer commented 6 years ago

@nicholascar I need to know whether it is important to address these limitations (by adding these features to the pyLDAPI) before rolling out the pyLDAPI to our implementations.

nicholascar commented 6 years ago

For each of the three points above in order:

  1. The overall issue here is that the relationships of registers of things to datasets of things isn't worked out yet.

So, just generate what you can with the RofR as a reg:Register and ignore all dcat:Dataset and similar properties. We will need to work out some convention like pyLDAPI installations auto-generating a top-level register that is, itself, just a reg:Register and what you see as the dcat:Dataset object here will have to be another object. Perhaps in re-doing the GNAF, make the RofR at linked.data.gov.au/dataset/gnaf/ and the dcat:Dataset declaration for linked.data.gov.au/dataset/gnaf (no trailing slash). We can then think of a way to link the two perhaps with a static declaration in the dataset of <http://linked.data.gov.au/dataset/gnaf> dct:hasPart <http://linked.data.gov.au/dataset/gnaf/> . and/or a way to inject additional triples into the RofR graph to allow for <http://linked.data.gov.au/dataset/gnaf/> dct:isPartOf <http://linked.data.gov.au/dataset/gnaf> . We may think of better relationships than dct:hasPart/dct:isPartOf later.

  1. As above, push these out of the Rof R and delegate them to the Dataset object which can be static for now, as it currently is in the index.ttl file.

  2. I think we really need reg:containedItemClass for all registers starting with the RofR (where the reg:containedItemClass is, of course, reg:Register) so when building the RofR, the method used to interrogate the other Registers in the API is going to have to ask those registers for this info also.

ashleysommer commented 6 years ago
  1. is fixed by https://github.com/CSIRO-enviro-informatics/pyldapi/commit/04e0159a9b9b70093958b29c39b6c63784ef2abd