gora-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Mora <jhnmora...@gmail.com>
Subject Re: Outreachy 2020-2021 - Neo4j - Weekly reports.
Date Mon, 11 Jan 2021 05:16:31 GMT
Hi.

Thanks for the update.

Some comments:

Please use constants instead of literal values here:
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/java/org/apache/gora/neo4j/GoraNeo4jTestDriver.java#L37

Add javadocs in these classes:
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/java/org/apache/gora/neo4j/store/Neo4jStoreTest.java
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/java/org/apache/gora/neo4j/GoraNeo4jTestDriver.java

Add descriptions for the attributes of these classes:
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/mapping/Neo4jMapping.java
https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/mapping/Property.java

Please do not forget to submit your midpoint feedback. It is due Jan. 12
4pm UTC.

Cheers,
John

El sáb, 9 ene 2021 a las 18:18, gabriela ortiz (<arqgabyortiz@gmail.com>)
escribió:

> 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