Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Schema upgrade to GEDCOM X #19

Closed
justincy opened this issue Apr 26, 2016 · 7 comments
Closed

Schema upgrade to GEDCOM X #19

justincy opened this issue Apr 26, 2016 · 7 comments
Milestone

Comments

@justincy
Copy link
Member

justincy commented Apr 26, 2016

genscrape uses the gensearch schema. It's a simple schema designed for searching on genealogy websites. But genscrape has many more use cases and ought have a more advanced schema with first-class support for multiple persons, relationships, and sources.

{
    "persons": [],
    "relationships": [],
    "sources": []
}

That looks very similar to the GEDCOM X JSON format, with the only exception being that GEDCOM X has sourceDescriptions instead of sources. Despite how much I dislike the term sourceDescriptions and it's schema, I _really_ like the idea of not having to create my own data format.

@dovy
Copy link

dovy commented Apr 26, 2016

Not opposed to that, but we should expand the model. I'm fine with using a "standard" but i'm not fine having endless nested objects to get something that should be easy.

Plus we should have a bigger model for genscrape anyways. ;)

@justincy
Copy link
Member Author

Plus we should have a bigger model for genscrape anyways. ;)

Could you expound?

@dovy
Copy link

dovy commented Apr 26, 2016

Just making sure we can have more types of elements. Example is relationships, children, marriage, etc. Stuff that we could expand in a repeatable object to expand different types of records.

@justincy
Copy link
Member Author

justincy commented Apr 27, 2016

If we used GEDCOM X we would need a library which makes it easier to work with the data types.

FamilySearch has client libraries available in various languages, but not JavaScript. They use enunciate to automatically generate those libraries but enunciate doesn't support JavaScript.

We could create the library by hand. There are currently 46 data types and 14 enums. That would be pretty tedious to setup by hand. Any takers? Adding types would be easier but it would be a pain to refactor if we decided to change our approach (prototypes vs es6 classes vs factories).

@justincy
Copy link
Member Author

Using enunciate would require a significant amount of time to add support for JavaScript. Plus we would still need to write helper methods such as Person.getFacts(type) that is in the Java code. I say those methods are necessary based on my experience using GEDCOM X data in the FamilySearch JS SDK.

While we're on that note, we can't use the classes from the JS SDK because 1) they don't always follow the spec and 2) they were designed for an HTTP client and therefore have async methods designed for interacting with the API.

@justincy
Copy link
Member Author

justincy commented May 6, 2016

I'm tracking design of the GEDCOM X JS library here: https://github.com/rootsdev/gedcomx-js/issues

I've submitted a PR to enunciate for supporting JavaScript but I'm still probably not going to use it.

@justincy justincy changed the title Schema upgrade to GEDCOM X? Schema upgrade to GEDCOM X May 31, 2016
@justincy
Copy link
Member Author

I finished the first version of https://github.com/rootsdev/gedcomx-js. I'm committed to using that as the data model for the next version of genscrape. I will begin work on that this week; maybe even today.

@justincy justincy modified the milestone: v1 Jun 2, 2016
@justincy justincy closed this as completed Aug 8, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants