Hi Tim,
Can you tell me which version of Trellis you are using? Are you using the latest release (0.8.3) or are you pulling from the tip of development? Are you building and running the software manually or are you using a docker container from docker hub (if so, which one)? And what backend persistence layer are you using (triplestore or relational database)?
There are a few issues you mentioned in your initial email. I tried replicated the steps outlined, using the current master branch (with a triplestore backend) and I saw different behavior, though some of this might be due to some commits that were merged just last week.
First of all, you *should* see the `<> a ldp:BasicContainer` triple in a resource. This triple is managed by the server and there is a configuration property to turn that on or off; previously, the default was off but it is now turned on, which will be new behavior for the upcoming 0.9 release.
Secondly, when you create a resource with cURL, I would recommend using the `-i` flag so that you can inspect the response headers. In LDP, there is a lot of information in response headers, especially the Link headers. Those Link headers will always be the canonical source of information about a resource's LDP type (e.g RDFSource or BasicContainer).
And finally, should you first create an RDFSource (not a container) and then try to POST a new resource (as if it were a container), you *should* be getting a `405 Method Not Allowed` error rather than a 500 error. In my tests just now, I receive a 405 error when trying to POST to an ldp:RDFSource (which is an expected response). A POST to a BasicContainer succeeds as expected.
Cheers,
Aaron