Have explored using the Neosemantics plugin, and although I have had some success I'm not convinced it's importing the data in its entirety, Have used the following commands
CREATE CONSTRAINT n10s_unique_uri ON (r:Resource)
ASSERT r.uri IS UNIQUE;
call n10s.graphconfig.init( { handleMultival: "ARRAY" })
CALL n10s.onto.preview.fetch("file:///home/xxxxx/.config/Neo4j Desktop/Application/relate-data/dbmss/dbms-785d18d6-677e-4238-b22b-a94227bc4930/import/Thesaurus.owl","RDF/XML");
The result is as follows, the difference between the number of triplesLoaded and triplesParsed is somewhat disconcerting, and as far as I can tell not all relationships are displaying.
I'm not sure if it's related to the initial graph config have tried various variations to no avail.
Right off the bat - you are correct that the import is not importing the ontology entirely or preserving all triples.
That said:
There are a few things you can do here. Take a look at the n10s documentation for importing ontologies. You'll find there it notes that only the following 6 criteria will be accounted for upon import.
Named class (category) declarations with both rdfs:Class and owl:Class.
Explicit class hierarchies defined with rdf:subClassOf statements.
Property definitions with owl:ObjectProperty, owl:DatatypeProperty and rdfs:Property
Explicit property hierarchies defined with rdfs:subPropertyOf statements.
Domain and range information for properties described as rdfs:domain and rdfs:range statements.
Restrictions defined with owl:Restriction.
_(i believe the rdf:subClassOf is a typo and means rdfs:subClassOf)
_A Solution (possibly helpful alternative):
Rather than using:
n10s.onto.import.fetch(url :: STRING?, format :: STRING?)
Try using:
n10s.rdf.import.fetch(url :: STRING?, format :: STRING?)
This will import the ontology and preserve all triples.
Hope this helps! Feel free to loop back for more help.
I did an example import using your configuration but using n10s.rdf.import.fetch() & here is output: