scossu / lakesuperior

Lakesuperior, an alternative Fedora Repository implementation
http://lakesuperior.readthedocs.io/
Apache License 2.0
32 stars 5 forks source link

Add support for hash URIs as membership resources #64

Open acoburn opened 6 years ago

acoburn commented 6 years ago

Environment

Operating system: OS X

Python version: 3.6

LAKEsuperior release, branch, or commit #: alpha 14

Steps to reproduce

  1. Create a membership resource.
  2. Create a direct container with the ldp:membershipResource pointing to a hash URI on that membership resource.

For example: given a membership resource of http://localhost:8000/ldp/resource the DC would include the triple: <> ldp:membershipResource <http://localhost:8000/ldp/resource#members>.

Observed behavior

When adding child resources to the DC, there are no membership triples generated for the member resource.

Expected behavior

The member resource would contain triples with the DC child resources.

Other notes worth mentioning

You may want to take a look at some of the "bug tracker" examples in the LDP primer: https://www.w3.org/TR/ldp-primer/

acoburn commented 6 years ago

Furthermore, when creating a Direct Container whose membership resource is a self-referential hash URI (e.g. the DC is http://localhost:8000/ldp/dc and the membership resource is http://localhost:8000/ldp/dc#it), POSTing a child resource returns a 404 Not Found.

i.e. given this DC at http://localhost:8000/ldp/dc:

PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX ldp: <http://www.w3.org/ns/ldp#>

<> dcterms:title "Direct Container" ;
    ldp:membershipResource <#it> ;
    ldp:hasMemberRelation dcterms:relation .

I cannot POST a child resource to this container, because I get this error:

HTTP/1.1 404 NOT FOUND
Server: gunicorn/19.7.1
Date: Wed, 25 Apr 2018 17:48:52 GMT
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Content-Length: 60

Resource /dc#it not found.