Troubleshooting

If things don't just work as described in the readme.

Getting the content graph manually:
- curl -u admin:admin -H "Accept: text/rdf+nt" http://localhost:8080/graph?name=urn:x-localinstance:/content.graph > graph.nt

Manually deploying:
- retrieve a zipped offline version from http://localhost:8080/admin/offline/download?baseUri=http://localhost:8080/&targetUri=http://incubator.apache.org/clerezza/&formatExtension=xhtml&formatExtension=rdf&formatExtension=png&formatExtension=html&formatExtension=js&formatExtension=jpeg&rootLinkPrefix=/clerezza
- scp site<id>.zip  people.apache.org:/www/incubator.apache.org/clerezza
- on people.apache.org: unzip -o site<id>.zip


NOTES:
- as the documentation at /documentation is not a resource in rdf it wasn't
contained in the oflline site, so I added a resource with that URI
- to have the content of index-resources displayed on localhost you need to create the respective collection, otherwise the resource can only be accessed with the URI ending with "/index". This can be done on the clerzza shell as follows:


import rdf.core._
import rdf.core.impl._
import rdf.ontologies._
import platform.graphprovider.content.ContentGraphProvider
val cgp = $[ContentGraphProvider]
val cg = cgp.getContentGraph
cg.add(new TripleImpl(new UriRef("http://localhost:8080/downloads/"), RDF.`type`, HIERARCHY.Collection))

