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 Sat, 09 Jan 2021 23:18:30 GMT
Hi all.

I wanted to inform the tasks I worked on this week: Jan 01 - Jan 08

- Develop a test for XSD validations.
- Develop methods: exists and delete in the datastore.
- Switch to Neo4j Enterprise from Neo4j Community in the container of the
tests.
- Add comments and javadocs
- Change the UNIQUE indexes for NODE KEY indexes (present in the Neo4j
Enterprise version)

My code is here: https://github.com/mgov88/gora/tree/GORA-663

Regardss
Gaby

El jue, 7 de ene. de 2021 a la(s) 13:28, gabriela ortiz (
arqgabyortiz@gmail.com) escribió:

> 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