> On Aug 12, 2016, at 3:55 AM, Ben Laurie <
b...@links.org> wrote:
>
> On 12 August 2016 at 02:19, Thomas Wetmore <
tt...@verizon.net> wrote:
>>
>>> On Aug 11, 2016, at 8:04 PM, Ben Laurie <
b...@links.org> wrote:
>>>
>>> On 16 January 2016 at 19:25, Thomas Wetmore <
tt...@verizon.net> wrote:
>>>> Gary,
>>>>
>>>> The possibilities are endless. I agree that relational databases are not the best fit to genealogical database. That being said, nearly all genealogical system use them!! Which is why filling out data forms on many genealogical programs can feel so much like forcing square pegs into round holes. That being said, both RootsMagic and Gramps, two popular systems, use relational databases. The others probably do too.
>>>>
>>>> MongoDB is a great option in my opinion. So are graph databases such as neo4j. There are a number of others that have their proponents. MongoDB and neo4j are the only two I have looked at seriously, and either one would do a bang up job as the backing store for a genealogical system.
>>>>
>>>> Twenty five years ago I developed a genealogical database in which all the records were Gedcom structures. I allow any tags so that users can design their own schemas, introducing new conventions (e.g., new event types, new attribute types), on the fly. Note that for all practical purposes Gedcom syntax is the same as JSON syntax is that same as XML syntax, so anything you can do with one of them you can do with all of them.
>>>
>>> Surely the important point is that GEDCOM allows you to reference
>>> other entities? JSON doesn't. XML probably does, but I am confident is
>>> not human readable once you’ve done it.
>>
>> Sorry, I don’t understand what you mean, which I suppose, is my polite way of saying that you are wrong. It is trivial to refer to other entities with JSON,
>
> My point is that there is nothing in the standard that says how to do
> this, unlike GEDCOM. Yes, of course, you can invent your own way of
> doing it, but then you have a data structure that is more than JSON
> can represent in a standardized way.
GEDCOM is both a syntactic standard AND a semantic standard. JSON and XML are syntactic standards. So GEDCOM has built into its semantic standard how to refer to other objects. JSON and XML, as syntactic standards, allow their users to define both how to represent objects and how to represent references between them in pretty much any fashion a user might wish. Is this what you are trying to say?
However, the underlying point I was making back in January, is that there is no difference in the fitness of GEDCOM, JSON or XML (or other formats) to represent genealogical data. Your statement that JSON does not allow an entity to refer to another entity is simply untrue and irrelevant to that point. I don’t understand what other point you might be making, but what you have said has no bearing on the ability or usefulness of JSON or XML to hold representations of genealogical data.
The GEDCOM-X standard is generally thought of as an abstract data model. However, if you wish to put GEDCOM-X data into an external file format, the LDS has defined both a JSON external format and an XML external format for that data. So there are two direct counter points to your argument there.
Your statement that “then you have a data structure that is more than JSON can represent in a standardized way,” is meaningless and indicates a lack of understanding of the purpose of JSON. When you define how to use JSON to represent genealogical data, you have to specify how you are going to do it, which includes how you are going to have children refer to parents, spouses to spouses, and so on. But this is the whole raison d’être of JSON in the first place. It gives designers the flexibility of defining how to represent data the way that seems best for their applications. Your statement negates the whole purpose of JSON.
Tom Wetmore