JuliaPhysics / JuliaPhysics/PeriodicTable.jl

Discussion: Borrow structure from mendeleev python package

Open
#41 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
124
Forks
28
PR merge metrics
No merged PRs in 30d

Description

There are a couple of open issues regarding adding of additional information, which have no progress in part due to laziness of the authors of these issues (myself included).

On the other hand, it seems to me that the internal organization of the information in the package might play a part in it (of course it is totally subjective). Let's say you want to add additional information to existing element type. Then, you have to create a new type with additional fields. Then, you have to go over all the lines where elements are defined and add the data in new fields. Sounds a bit complicated. When you start thinking about adding isotopic information, it gets even more complicated.

The counterpart of `PeriodicTable.jl` in python community is `mendeleev`. It is interesting that they store all the data as an sqlite database with several interconnected tables. May be we can take inspiration from that?

In Julia case, I think we might not need the whole database, but we can store the data in a dataframe (or several linked dataframes instead). Overall, it should make working with the information rather convenient. For example, one can add additional fields to the elements by appending a column with the relevant data. One can also leverage dataframe utilities and do all kinds of querying on the information.

This approach also lends itself nice for the purpose of introduction of isotopic information: we can create an additional dataframe which will store isotope-dependent information, and the proton number can be used to establish foreign key relationship with the main dataframe storing the elements.

We can also simply copy the database from `mendeleev`, provided that its maintainers are ok with that.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no files, entry points, or tests. Start by reviewing the existing element type and the lines where elements are defined, then compare the proposed organization with mendeleev's SQLite database. Done requires an agreed data model for element and isotope information before implementation can be scoped.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, sqlite
Domain
data, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.