neo4j-labs / neosemantics

Graph+Semantics: Import/Export RDF from Neo4j. SHACL Validation, Model mapping and more.... If you like it, please ★ ⇧
https://neo4j.com/labs/neosemantics/
Apache License 2.0
807 stars 140 forks source link

Getting neosemantics installed and working with docker #153

Open James-Hudson3010 opened 4 years ago

James-Hudson3010 commented 4 years ago

I have a gist of my docker-compose file in a gist at: docker-compose.yml

(1)

My first question relates to the instructions in the documentation which say to place this

dbms.unmanaged_extension_classes=semantics.extension=/rdf

line in the neo4j.conf file. I am using the neo4j:3.5 image and the neo4j.conf file contains the following line:

dbms.unmanaged.extension.classes=semantics_extension=/rdf

which is close, but not an exact match to the instructions. The instructions say to use a _, but the file coming from the docker image uses a .. Does it matter?

I did try to edit the neo4j.conf file, but every time I bring the docker image down and back up again, it stomps on every change I make.

(2)

My next question is about the=/rdf part. Is /rdf a path from the root of the running container or relative to /var/lib/neo4j? In my docker-compose file, I have a volume mapping - ../data/rdf:/rdf, but I am not sure if it should be - ../data/rdf:/var/lib/neo4j/rdf...?

(3)

When I bring the container up, I get a warning which says Unknown config option: dbms.unmanaged.extension.classes. I am not sure if this warning is important or what to do about it. I am finding it odd that google turns up zero search results for dbms.unmanaged.extension.classes.

(4)

When I run Neo4J Desktop, I was able to get APOC installed as a plugin and neosemantics-3.5.0.4.jar it sitting next to apoc-3.5.0.9-all.jar in my plugins directory ( volume map: - ../data/plugins:/var/lib/neo4j/plugins ). However, when I click on the Add Plugin button, APOC shows as installed, but neosemantics is not mentioned at all. I assume it should be...?

(5)

I can connect to my DB and run Neo4J Browser (4.0.6). Within the browser, I can execute call dbms.procedures(), but do not see anything related to neosemantics in the results.

The instructions also suggest :GET /rdf/ping, but when I execute that, I get the following error:

FetchURLError
Could not fetch URL: "Failed to fetch". This could be due to the remote server policy. See your web browsers error console for more information.

There is nothing in the error console.

xiaojinwhu commented 4 years ago

tch".

Neo4j config have a special format in docker compose here

Any configuration value (see Section A.1, “Configuration settings”) can be passed using the following naming scheme: Prefix with NEO4J. Underscores must be written twice: is written as _. Periods are converted to underscores: . is written as .

so, you should use this format: NEO4J_dbms_unmanaged__extension__classes='semantics.extension'='/rdf'

robinsonkwame commented 2 years ago

@James-Hudson3010 did you ever get this working with docker, if so would you mind sharing?

robinsonkwame commented 2 years ago

Looks like docker run --name neo4j --publish=7474:7474 --publish=7687:7687 --volume=$HOME/neo4j/data:/data --env='NEO4JLABS_PLUGINS=["apoc", "n10s"]' --env=NEO4J_AUTH=none neo4j:3.5.17 per here does the trick (and did for you)

RicardoTrindade commented 4 months ago

This one did the trick for me in docker-compose with an environment variable using Neo4j 5.18 NEO4J_dbms_unmanaged__extension__classes=n10s.endpoint: '/rdf'