neosemantics icon indicating copy to clipboard operation
neosemantics copied to clipboard

Getting neosemantics installed and working with docker

Open James-Hudson3010 opened this issue 4 years ago • 4 comments

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.

James-Hudson3010 avatar Mar 31 '20 19:03 James-Hudson3010

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'

xiaojinwhu avatar May 15 '20 03:05 xiaojinwhu

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

robinsonkwame avatar Mar 29 '22 20:03 robinsonkwame

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)

robinsonkwame avatar Mar 30 '22 21:03 robinsonkwame

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'

RicardoTrindade avatar Mar 25 '24 11:03 RicardoTrindade