Hi...

I have query regarding the clojure and neo4j..

I have started the program to load the dataset and also allocated 4G ram to
it.

But after processing around 272000 records, the process hangs and nothing
happens. If i try to stop the process then, and copy the data in neo4j
folder i get this error :
 'neostore' does not contain a store version, please ensure that the
original database was shut down in a clean state.


Can you please advice what can be done on that and how should i proceed
further?

Many Thanks,

Kind Regards
Himakshi


On Sat, Dec 7, 2013 at 1:15 AM, Joseph Guhlin <joseph.guh...@gmail.com>wrote:

> Glad it worked, if you have any further questions feel free to ask. I'm
> using it extensively and it and Clojure seem to be a perfect match these
> days, especially on very large datasets.
>
> --Joseph
>
>
> On Friday, December 6, 2013 12:56:40 AM UTC-6, Himakshi Mangal wrote:
>>
>> Hi Joseph Guhlin,
>>
>> Thanks your idea helped and i could send some sample data to my neo4j
>> database.
>>
>> Thank you very much... :)
>>
>>
>> On Monday, December 2, 2013 3:41:53 PM UTC+5:30, Himakshi Mangal wrote:
>>>
>>> Hi...
>>>
>>>
>>> I am using clojure to import dbpedia data into neo4j.
>>>
>>> Here's the code:
>>> (ns opal.dbpedia
>>>   (:use [clojure.tools.logging :only [log]])
>>>   (:require [clojure.java.io :as io])
>>>   (:import [uk.ac.manchester.cs.owl.owlapi.turtle.parser TurtleParser]
>>>            [org.neo4j.unsafe.batchinsert BatchInserters]
>>>            [org.neo4j.graphdb DynamicRelationshipType]))
>>>
>>> ;; PARSING METHODS
>>>
>>> (defn get-next-tuple
>>>   [parser]
>>>   (let [last-item (atom nil)
>>>         tuple (atom [])]
>>>     (while (and (not= "." @last-item)
>>>                 (not= "" @last-item))
>>>       (reset! last-item
>>>               (-> parser
>>>                 (.getNextToken)
>>>                 (.toString)))
>>>       (swap! tuple conj @last-item))
>>>     (when-not (empty? (first @tuple)) ; .getNextToken returns "" once
>>> you are out of data
>>>       @tuple)))
>>>
>>> (defn seq-of-parser
>>>   [parser]
>>>   (if-let [next-tuple (get-next-tuple parser)]
>>>     (lazy-cat [next-tuple]
>>>               (seq-of-parser parser))))
>>>
>>> (defn parse-file
>>>   [filename]
>>>   (seq-of-parser
>>>     (TurtleParser.
>>>       (io/input-stream filename))))
>>>
>>> ;; BATCH UPSERT METHODS
>>>
>>> (def id-map (atom nil))
>>> (defn insert-resource-node!
>>>   [inserter res]
>>>   (if-let [id (get @id-map res)]
>>>     ; If the resource has aleady been added, just return the id.
>>>     id
>>>     ; Otherwise, add the node for the node, and remember its id for
>>> later.
>>>     (let [id (.createNode inserter {"resource" res})]
>>>       (swap! id-map #(assoc! % res id))
>>>       id)))
>>>
>>> (defn connect-resource-nodes!
>>>   [inserter node1 node2 label]
>>>   (let [relationship (DynamicRelationshipType/withName label)]
>>>     (.createRelationship inserter node1 node2 relationship nil)))
>>>
>>> (defn insert-tuple!
>>>   [inserter tuple]
>>>   ; Get the resource and label names out of the tuple.
>>>   (let [[resource-1 label resource-2 & _ ] tuple
>>>         ; Upsert the resource nodes.
>>>         node-1 (insert-resource-node! inserter resource-1)
>>>         node-2 (insert-resource-node! inserter resource-2)]
>>>     ; Connect the nodes with an edge.
>>>     (connect-resource-nodes! inserter node-1 node-2 label)))
>>>
>>> (defn -main [graph-path & files]
>>>   (let [inserter (BatchInserters/inserter graph-path)]
>>>     (doseq [file files]
>>>       (log :debug (str "Loading file: " file))
>>>       (let [c (atom 0)]
>>>         (doseq [tuple (parse-file file)]
>>>           (if (= (mod @c 10000) 0)
>>>             (log :debug (str file ": " @c)))
>>>           (swap! c inc)
>>>           (insert-tuple! inserter tuple))))
>>>     (log :debug "Loading complete.")
>>>     (log :debug "Shutting down.")
>>>     (.shutdown inserter)
>>>     (log :debug "Shutdown complete!")))
>>>
>>> I am getting the following errors:
>>>
>>> IllegalAccessError Transient used by non-owner thread  clojure.lang.
>>> PersistentArrayMap$TransientArrayMap.ensureEditable
>>> (PersistentArrayMap.java:449)
>>>
>>> &&
>>>
>>>
>>> IllegalArgumentException No matching method found: createNode for class
>>> org.neo4j.unsafe.batchinsert.BatchInserterImpl  clojure.lang.Reflector.
>>> invokeMatchingMethod
>>>
>>>
>>> Can anyone please help me in this.. Am doing something wrong or am i
>>> missing something.. I am completely new to clojure. Is there a working
>>> example for this?
>>>
>>>
>>> Please help..
>>>
>>> Thanks
>>>
>>>
>>>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/HpI6wKHb8Pc/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to