gora-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gabriela ortiz <arqgabyor...@gmail.com>
Subject Re: Outreachy 2020-2021 - Neo4j - Weekly reports.
Date Thu, 07 Jan 2021 18:28:49 GMT
Hi John

Thanks for your comments.


El mié, 6 de ene. de 2021 a la(s) 16:10, John Mora (jhnmora000@gmail.com)
escribió:

> Hi
>
> Thanks for your report.
>
> Some comments:
>
> You are creating a UNIQUE index instead of the NODE KEY you mentioned on
> your design document. why?
>
>
> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L141
>
>
I found this limitation in the Neo4j community version: "Node key
constraints, node property existence constraints and relationship property
existence constraints are only available in Neo4j Enterprise Edition".

And, the UNIQUE indexes work in the community version. Should I seek a
trial version of the enterprise version or work only with the UNIQUE
indexes of the community version?



> Also, can you write the CREATE CONSTRAINT query with Cypher-DSL?
>
>
 I could not find a API for constraints creation in Cypher DSL. The create
statements that I found are only for nodes.

Please add javadoc documentation and comments on these classes:
>
>
> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jConstants.java
>
> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jParameters.java
>
> I will add the documentation


> Please add a test for the XSD Validation
>
>
> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/resources/gora-neo4j.xsd
>
> I will add a test for this.


> Cheers,
> John
>
> El dom, 3 ene 2021 a las 23:12, gabriela ortiz (<arqgabyortiz@gmail.com>)
> escribió:
>
>> Hi
>>
>> I wanted to inform the tasks I worked on this week: Dec 26 - Dec 31
>>
>> * Develop the Datastore methods: getSchemaName, createSchema, deleteSchema,
>> schemaExists
>> * Enable tests in Neo4jStoreTest : testCreateSchema ,  testSchemaExists
>> * Enhance the implementation of the connection to the backend.
>> * Write a blog about my project.
>>
>> You can find my code in my branch:
>>
>> https://github.com/mgov88/gora/tree/GORA-663
>>
>> Best Regards,
>> Gaby
>>
>> El mié, 30 de dic. de 2020 a la(s) 13:28, John Mora (jhnmora000@gmail.com)
>> escribió:
>>
>>> Hi
>>>
>>> Thanks for your report.
>>>
>>> The Utils package is specific for each datastore; it is not mandatory.
>>> You can move some code there to improve the readability of the core classes
>>> of the datastore but it is up to you.
>>>
>>> I could not find your last changes in your branch in github, please make
>>> sure to push the commits, so I can review the code.
>>>
>>> Cheers,
>>> John
>>>
>>>
>>> El mar, 29 dic 2020 a las 1:03, gabriela ortiz (<arqgabyortiz@gmail.com>)
>>> escribió:
>>>
>>>> Hi
>>>>
>>>> I wanted to inform the tasks I worked on this week: Dec 19 - Dec 25
>>>>
>>>> * I developed a GoraTestDriver for Neo4j using GenericContainer from
>>>> the Test Containers library
>>>> * I developed the initialize method from Neo4jStore to establish
>>>> connection to the backend (Neo4j)
>>>> * I developed a XSD validation file for the XML mapping
>>>>
>>>> I have a question, I realized that some Datastores have 'utils'
>>>> packages in the code, are they obligatory? What kind of code should go in
>>>> them?
>>>>
>>>> Best Regards,
>>>> Gaby
>>>>
>>>>
>>>>
>>>> El lun, 21 de dic. de 2020 a la(s) 15:45, gabriela ortiz (
>>>> arqgabyortiz@gmail.com) escribió:
>>>>
>>>>> Hi John
>>>>>
>>>>> El sáb, 19 de dic. de 2020 a la(s) 17:13, John Mora (
>>>>> jhnmora000@gmail.com) escribió:
>>>>>
>>>>>> Hi Gaby
>>>>>>
>>>>>> Thanks for your report and your hard work!
>>>>>>
>>>>>> I left some comments on your design document please give them a look.
>>>>>>
>>>>>>
>>>>> Thanks you for your comments,
>>>>>
>>>>>
>>>>>> Some comments about your code:
>>>>>>
>>>>>> IMHO, the attributes unique, exists and index should be optional
>>>>>> (default: false) [0].
>>>>>>
>>>>>
>>>>> I agree I will change that
>>>>>
>>>>>
>>>>>> The KeyClassCanonicalName and PersistentClassCanonicalName should
be
>>>>>> read from the datastore not hard coded [1]
>>>>>>
>>>>>
>>>>> I put that hard coded because I had an error because the Datastore
>>>>> methods are not yet implemented, but I will change that.
>>>>>
>>>>>
>>>>>> I think this class [2] should be deleted, there are proper tests
for
>>>>>> this in the DataStoreTestBase class. If you are using this for your
own
>>>>>> experiments please do not push it to github.
>>>>>>
>>>>>>
>>>>> yes, I am using this class to temporary test my code, you are right I
>>>>> will remove it from github.
>>>>>
>>>>> Thanks you for your feedback.
>>>>>
>>>>> Regards,
>>>>> Gaby
>>>>>
>>>>>
>>>>>> [0]
>>>>>> https://github.com/mgov88/gora/blob/867d06e1fcf29e90b0431b9a42b82810c5409dda/gora-neo4j/src/test/resources/gora-neo4j-mapping.xml
>>>>>> [1]
>>>>>> https://github.com/mgov88/gora/blob/867d06e1fcf29e90b0431b9a42b82810c5409dda/gora-neo4j/src/main/java/org/apache/gora/neo4j/mapping/Neo4jMappingBuilder.java#L44
>>>>>> [2]
>>>>>> https://github.com/mgov88/gora/blob/867d06e1fcf29e90b0431b9a42b82810c5409dda/gora-neo4j/src/main/java/org/apache/gora/neo4j/experimental/experiment.java
>>>>>>
>>>>>> Cheers
>>>>>> John
>>>>>>
>>>>>> El vie, 18 dic 2020 a las 23:06, gabriela ortiz (<
>>>>>> arqgabyortiz@gmail.com>) escribió:
>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I wanted to inform the tasks I worked on this week: Dec 12 -
Dec 18
>>>>>>>
>>>>>>> * I wrote a blog about the struggles learning CQL of Neo4j :
>>>>>>> https://gabycoder88.wordpress.com/2020/12/18/discovering-cypher-everybody-struggles/
>>>>>>> * I created the suggested design document (link below ) with
details
>>>>>>> about the Neo4j datastore.
>>>>>>> * I finished creating the structure of the datastore project.
>>>>>>> * I developed and tested the parsing of XML mappings for the
>>>>>>> datastore from gora-neo4j-mapping.xml
>>>>>>> * I developed and tested the read of connection properties from
>>>>>>> gora.properties
>>>>>>>
>>>>>>> My code is here:
>>>>>>> https://github.com/mgov88/gora/commits/GORA-663
>>>>>>>
>>>>>>> My design document:
>>>>>>>
>>>>>>> https://docs.google.com/document/d/1fQbCHNIFEKxAUlOuwqDRDdnpecLk2S4TkOJSWIk6qCE/edit?usp=sharing
>>>>>>>
>>>>>>> Best Regards,
>>>>>>> Gaby
>>>>>>>
>>>>>>> El lun, 14 de dic. de 2020 a la(s) 15:25, gabriela ortiz (
>>>>>>> arqgabyortiz@gmail.com) escribió:
>>>>>>>
>>>>>>>> Hi John.
>>>>>>>>
>>>>>>>> Thanks very much for your feedback. I shall work on the document
>>>>>>>> and the structure of the datastore project.
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>> Gaby
>>>>>>>>
>>>>>>>> El sáb, 12 de dic. de 2020 a la(s) 17:43, John Mora (
>>>>>>>> jhnmora000@gmail.com) escribió:
>>>>>>>>
>>>>>>>>> Hi Gaby,
>>>>>>>>>
>>>>>>>>> Thanks for the update and your hard work.
>>>>>>>>>
>>>>>>>>> Do  not worry about the paid versions of Neo4j. They
all share a
>>>>>>>>> common interface (Cypher Graph Query Language) and connect
using the same
>>>>>>>>> protocols, so it is fine that your work only with community
version.
>>>>>>>>>
>>>>>>>>> Nice to see that you added a basic input/output example
working
>>>>>>>>> with Neo4j but eventually you should move it to another
project. Now let's
>>>>>>>>> create all the packages and resources needed for the
structure of a
>>>>>>>>> datastore.
>>>>>>>>>
>>>>>>>>> I think you should put your ideas in a Google Docs document
and
>>>>>>>>> share in the mailing list.
>>>>>>>>> * Your UML design* The branch that you are working on.*
How the
>>>>>>>>> connection will be implemented.* Which connection parameters
the datastore
>>>>>>>>> will need,* How you will set up a testing instance in
the unit test of
>>>>>>>>> Gora.* The data type mapping between your datastore and
Java data types.
>>>>>>>>> Keep it simple, here [0] you have a document that I made
for the
>>>>>>>>> Kudu datastore a couple of years ago.
>>>>>>>>>
>>>>>>>>> [0]
>>>>>>>>> https://docs.google.com/document/d/1colS1ooQZIvuJcnx6DSsZIgesokK8TjwaEfgdygt4mo/edit#heading=h.pcphnswc4uen
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>> John
>>>>>>>>>
>>>>>>>>> El vie, 11 dic 2020 a las 23:06, gabriela ortiz (<
>>>>>>>>> arqgabyortiz@gmail.com>) escribió:
>>>>>>>>>
>>>>>>>>>> Hi all.
>>>>>>>>>>
>>>>>>>>>> I wanted to inform the tasks I worked on this week:
Dec 06 - Dec
>>>>>>>>>> 11
>>>>>>>>>>
>>>>>>>>>> - I created a new branch for my project :
>>>>>>>>>> https://github.com/mgov88/gora/tree/GORA-663
>>>>>>>>>> - I created a new module for datastore gora-neo4j
>>>>>>>>>> - I add the maven dependencies for neo4j JDBC and
Cypher-DSL
>>>>>>>>>> - I read the JDBC and DSL documentation.
>>>>>>>>>> - I implemented a example inserting and querying
nodes into neo4j
>>>>>>>>>> - I joined the Interns chat session of this week.
>>>>>>>>>> - I submitted the forms asked by Outreachy.
>>>>>>>>>> - I submitted the initial feedback of Outreachy.
>>>>>>>>>>
>>>>>>>>>> I have a question, neo4j has many editions (
>>>>>>>>>> https://neo4j.com/subscriptions/ ) and the docker
that I have
>>>>>>>>>> been using is the community.
>>>>>>>>>> Should I be test all the editions, there are demos
or open server
>>>>>>>>>> that I can use instead of buying a subscription ?
>>>>>>>>>>
>>>>>>>>>> Regardss
>>>>>>>>>> Gaby
>>>>>>>>>>
>>>>>>>>>> El sáb, 5 de dic. de 2020 a la(s) 15:21, John Mora
(
>>>>>>>>>> jhnmora000@gmail.com) escribió:
>>>>>>>>>>
>>>>>>>>>>> Hi Gaby.
>>>>>>>>>>>
>>>>>>>>>>> Thanks for your work and  the update of your
progress.
>>>>>>>>>>>
>>>>>>>>>>> Working with docker containers is totally fine,
but take into
>>>>>>>>>>> account that you need to expose all the necessary
ports in the container
>>>>>>>>>>> for the communication with Apache Gora. Also
you can start checking out
>>>>>>>>>>> testcontainers [1] for the unit test of the new
datastore.
>>>>>>>>>>>
>>>>>>>>>>> Your design looks good to me, I noticed that
you plan to use the
>>>>>>>>>>> Neo4j driver. If you have some experience working
with JDBC you can also
>>>>>>>>>>> use the Neo4j JDBC Driver [2]. But it is up to
you, it should not have any
>>>>>>>>>>> impact on the functionality of the datastore.
>>>>>>>>>>>
>>>>>>>>>>> [1] https://www.testcontainers.org/
>>>>>>>>>>> [2] https://github.com/neo4j-contrib/neo4j-jdbc
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> John
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> El sáb, 5 dic 2020 a las 8:20, Madhawa Kasun
Gunasekara (<
>>>>>>>>>>> madhawa30@gmail.com>) escribió:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Gaby,
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks for the update. Yes, we haven't tested
Gora in java11,
>>>>>>>>>>>> So I don't think you should spend time on
installing neo4j locally. docker
>>>>>>>>>>>> container is enough.
>>>>>>>>>>>> Please add your project proposal to the confluence
page as well
>>>>>>>>>>>> [1]. I wish you good luck with this project.
Let me know if you have any
>>>>>>>>>>>> questions.
>>>>>>>>>>>>
>>>>>>>>>>>> [1]
>>>>>>>>>>>> https://cwiki.apache.org/confluence/display/GORA/Outreachy%3A+2020+Winter
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Madhawa
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Sat, Dec 5, 2020 at 6:29 AM gabriela ortiz
<
>>>>>>>>>>>> arqgabyortiz@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi
>>>>>>>>>>>>> I wanted to inform the tasks I worked
on this week: Dec 01 -
>>>>>>>>>>>>> Dec 05
>>>>>>>>>>>>>
>>>>>>>>>>>>> 1. I created a personal Blog for Outreachy
reports:
>>>>>>>>>>>>> https://gabycoder88.wordpress.com/
>>>>>>>>>>>>> 2. I wrote the first post of my blog
titled 'About me':
>>>>>>>>>>>>> https://gabycoder88.wordpress.com/2020/11/30/example-post-3/
>>>>>>>>>>>>> 3. I joined the Outreachy Zulip server
for the chats.
>>>>>>>>>>>>> 4. I installed Neo4j on my computer using
docker * .
>>>>>>>>>>>>> 5. I drew a class diagram of my project
(attached).
>>>>>>>>>>>>> 6. I read the Neo4j documentation about
the Java connector,
>>>>>>>>>>>>> Neo4j (Neo4j Driver) syntax and concepts
of graph databases.
>>>>>>>>>>>>>
>>>>>>>>>>>>> * I tried to install native Neo4j, but
I figured that Neo4j
>>>>>>>>>>>>> requires java 11 and apache gora requires
java 8, hence I preferred to
>>>>>>>>>>>>> install using docker to avoid any issues
with the java version. Is a docker
>>>>>>>>>>>>> container enough or I must install natively?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>> Gaby
>>>>>>>>>>>>>
>>>>>>>>>>>>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message