Definition for GenoProX JSON Export/Import


Introduction

The GenoProX json syntax is described here using railroad diagrams as used on json.org. Each top level property is shown as a separate 'track' as are the more complex or shared subproperties with hyperlinks for ease of navigation.

'tooltips' are used extensively to provide further details as required, indicated by this background style,
also used for notes and examples using this background style.note e.g. etc.

subproperties are generally named with a single letter e.g. k = kind/type/category, w = when (i.e. date or date range), t = title (simple text) n = name structure, d = detail/description or narrative. c = comments/notes etc.
sometimes a letter may be used for more than one purpose but can be distinguished by the context: e.g. t = 'title' as above or 'top' for object position on a genomap


hover here to see 2018 revisions (last update 2018.03.13)

2018.03.02 (Ron) revised citation details for source references to be separate object (see cit definition)

2018.03.13 (Ron) added optional citation details for source references (see src definition 'x' property)

2018.02.03 (Ron) added 'pat' property to 'fam' (geno)map object for line pattern and 'x' on map 'rel' object
for position on family line for twin/multiple birth connection


hover here to see 2017 revisions (last update 2017.12.30)

2017.12.30 (Ron) Changes to 'rel' for twins/multiple births

2017.11.21 (Ron) Revised path 'p' property to 'mm' to more reflect GenoPro 201x usage

2017.07.14 (Ron) Added 'q' property to 'MapItem' definitions for tooltip or 'qualifier'

2017.07.10 (Ron) Added 'x' property to attribute definitions eand attributes set to allow them to bemarked as 'private' i.e. excluded from reports

2017.06.24 (Ron) Corrected 'attrs' to 'att' in root. Added 'evt' & 'doc' to possible attribute set types (att). Created 'Attributes' subtrack and set as optional item on all allowed record types (as per root.att )

2017.04.05 (Ron) Added 'child' events to event object to allow for nested/sub events

2017.01.12 (Ron) Added optional opacity value to color specification.


hover here to see 2016 revisions

2016.12.12 (Ron) Even more 'refactoring' and renaming of properties for consistency. Changed 'Style' to 'pat' (i.e. pattern). Added 'sha' as a genomap object property for shapes, including boxes/labels, circles and polylines/polygons.

2016.08.29 (Ron) Further refactoring and renaming of properties for consistency. added complex date property

2016.06.13 (Ron) added 'a' property 'Appearance' for lines and 'style' and 'StyleName' to allow definition of complex/compound lines

2016.05.19 (Ron) refactored to add 'MediaItems' for 'mm' references and 'MapRefs' sub-track for 'map' references

2016.04.11 (Ron) added 'text' property to 'map.obj' type 'data.org'

2016.03.06 (Ron) added 'w' (width) and 'h' (height') properties to top and bottom labels. Also some syntax corrections.

2016.02.07 (Ron) top and bottom labels for 'ind' on 'map' changed from lt & lb to l.t & l.b with sub properties t (text) and c (colors).
Also for 'ind' on 'map' added g property for gender fill with t (top) b (bottom) both wirh r & l (right & left) sub properties. This property also has m for 'mask' indicating which quadrants are filled and whether horizontal and/or vertical divider present.
new map.evt property. value is array listing dated events connected with the map (used to produce timelines for the genomap)
new map.pla property as an object with the place ids as keys listing geo-coded places connected to the map. Each place id key has as its value an array of the events connected to that place (used to produce Google maps incl.heatmaps)

2016.01.15 (Ron) changed 'ref' string in 'ind's and 'fam's 'evt' property to be 'pri' or 'sec' i.e. primary or secondary participant in the event
added missing '{}' around this property in 'ind' 'evt'.
added 'fam' to event 'Participant' references.

2016.01.06 (Ron) added 'role' as top level property
changed 'role' string in 'evt's 'pri' & 'sec' properties to be a UID referencing an entry in the above 'role' property


hover here to see 2015 revisions

2015.12.21 (Ron) In 'map', add 's' for scale (or size) (e.g. gender symbol, line thickness)
also 'f' like 'c' (color) for 'ind' 'frame' colors (like GenoPro 200xx Individual 'border') and 'lt', 'lb' (label top/bottom)

2015.12.15 (Ron) In 'MapData', use 'm' for margin instead of 'p' for padding.
'p' is then used for vertices or 'points' along relationship lines e.g. pedigree links and social/emotional relationships.

2015.12.08 (Ron)
move part of 'map' definition to 'MapItem' subsection for clarity.(cosmetic)
corrected definition of 'rel' under map>obj>data to show ind and fam properties.
add 'data.evt' property to map obj to describe 'events' such as emotional and social relationships and role/relation between individuals and organizations such as pupils/students in schools/colleges and employees in companies.

2015.11.05 (Ron) Add missing properties to 'map'.
Add 'pla', 'src' and 'rel' definitions
Change definition of reference to 'evt' (events) from 'ind' to allow age at event to be specified e.g. age at death, census, wedding etc. N.B. As events can shared could not be stored within event
rationalize 'desc' and 'note' to use 'desc' for publishable narrative and 'note' for any private comments/research notes
rationalize 'name' and 'title' by always using 'title' unless name is complex i.e. for 'ind' or 'pla'

2015.11.02 (Ron) Initial draft using the EBNF 'railroad' style



root

att

Referenced from: root

"att"
:
{
"doc"
"evt"
"fam"
"ind"
"mm"
"org"
"pla"
"src"
:
,
}
Note

attributes are grouped into sets such ‘contact info’ or ‘appearance’ and can also be used to import GenoPro 2 custom tags where a set is equivalent to a custom tag dialog layout. custom tags in a default dialog will be imported into a special set ‘Miscellaneous’. Custom Tags not in a dialog layout will be imported into a setnamed ‘Other’

Each object type, ind, fam, org, pic, pla, src, rel, has its own attribute sets.
Attribute Sets can be user defined similar to GenoPro 2 Custom tags and can be marked as private to avoid inclusion in reports.
n.b. each ‘set’ has its own list of possible attribute keys e.g. the ‘contact’ set could have home, work and mobile phone numbers, Facebook page or other URL.

cit

Referenced from: root evt fam ind mm org pla

"cit"
:
{
"Uid"
:
{
"c"
"t"
"p"
"q"
:
"w"
:
"r"
:
,
}
,

doc

Referenced from: root

"doc"
:
{
,
}

evt

Referenced from: root evt

"evt"
:
{
,
}
e.g.

"evt":{
"162": {
"type": "occu", "pri": {"45": {"ind": 155}},
"w": {"d":["1930","1980"],"f":"MMM YYYY":"},
"pla": 3,
"d": "During his long initial period of employment at Hogwarts, Slughorn taught several of the main characters in the Harry Potter story. Among his pupils were a young Severus Snape and Lily Evans, Harry's mother and one of Slughorn's favourite students, whom he repeatedly praises as "one of the brightest I ever taught...vivacious...charming...cheeky". Significantly, however, an earlier cohort of students included Tom Marvolo Riddle. On one occasion, Riddle questioned Slughorn about Horcruxes, artifacts which could act as vessels for pieces of a person's soul in order to grant immortality. Having learnt of the nature of Horcruxes, Riddle went on to perform the necessary Dark magic to create his own Horcruxes, which contributed to his formidable power in his later reign of terror under his assumed name of Lord Voldemort.",
"org": 2
}
}

fam

Referenced from: root mm

"fam"
:
{
"Uid"
:
{
"k"
:
"M"
"D"
"evt"
:
{
:
"pri"
"sec"
":"
,
}
"d"
"c"
:
"h"
:
true
"ref"
:
{
,
}
"o"
"p"
"rel"
:
,
}
,
}

ind

Referenced from: root mm

"ind"
:
{
"Uid"
:
{
"g"
:
"M"
"F"
"evt"
:
{
:
{
"pri"
"sec"
":"
,
"age"
:
}
,
}
"ref"
:
{
,
}
"d"
"c"
:
"h"
:
true
,
}
,
}
e.g.

"ind":{
"4": {
"ref": {"map": {"1": [8]},"rel": [2,10]},
"gender": "F",
"name": {"f": "Petunia","l": ["Evans","Dursley"]},
"evt": {"occu": {"ref": [7]},"emo": {"ref": [205]}},
"mm": {"pic": [8],"pri": 8},
"desc": "Is described as being a blonde woman, with bony hands, a horsey face and a very long neck, which she uses to spy on her neighbours. Was bitter and jealous that her parents were proud to have a witch in the family.",
"attr": {"5": {"1": "Muggle born","2": "None","3": "Fiona Shaw"}}
}

map

Referenced from: root

"map"
:
{
"Uid"
:
{
"t"
:
,
"l"
"r"
"t"
"b"
"z"
:
Integer
,
"obj"
:
{
"evt"
:
"pla"
:
,
}
,

mm

Referenced from: root

"mm"
:
{
"Uid"
:
{
"ref"
:
{
,
}
,
"t"
"d"
"c"
:
"p"
:
{
"s"
"e"
"t"
"l"
"r"
"u"
:
"URL"
,
}
 
,
}

org

Referenced from: root evt mm

"org"
:
{
"Uid"
:
{
"d"
"k"
"c"
:
"ref"
:
{
,
}
,
,
,
}

pat

Referenced from: root

"pat"
:
{
"Uid"
:
{
"t"
:
,
"l"
:
[
]
,

pla

Referenced from: root evt mm org pla

"pla"
:
{
"Uid"
:
{
"d"
"k"
"c"
:
"a"
:
{
"b"
"s"
"t"
"r"
"p"
"c"
"z"
:
,
}
"p"
:
{
"z"
:
Integer
"t"
:
,
}
,
,
}

rel

Referenced from: root

"rel"
:
{
"Uid"
:
{
"ind"
:
,
"fam"
:
,
"k"
:
"B"
"A"
"F"
,
"rel"
:
"M"
,
"i"
:
[
,
]
,
"ref"
:
{
}
,

rol

Referenced from: root Participants

"rol"
:
{
Uid
:
{
"t"
:
String
,
"k"
:
EventType
}

src

Referenced from: root cit

"src"
:
{
"Uid"
:
{
"a"
"k"
"d"
"c"
"i"
"r"
"t"
"s"
:
"pla"
:
"u"
:
"URL"
"evt"
:
"src"
:
"ref"
:
{
"evt"
"fam"
"ind"
"mm"
:
,
}
,
,

Appearance

Referenced from: MapItem pat Box Shape

{
"b"
"f"
"c"
"t"
:
"h"
:
"l"
"c"
"r"
"v"
:
"t"
"m"
"b"
"s"
"p"
"z"
:
integer
"w"
:
decimal fraction
"d"
:
[
Integer
,
]
"o"
:
Integer
"m"
:
{
"s"
"m"
"e"
:
"Y"
"D"
"S"
"E"
marker name
,
}
,
}

AttrDef

Referenced from: AttrSet

Uid
:
{
"t"
:
String
,
"d"
:
,
"x"
:
true
}

Attributes

Referenced from: doc evt fam ind mm org pla rel rol src

"att"
:
{
"Uid"
:
{
,
}
,
}

AttrSet

Referenced from: att

Uid
:
{
"t"
:
String
,
"d"
:
,
"x"
:
true
"a"
:
{
,
}
}

Box

Referenced from: MapItem Shape

"b"
:
{
"r"
:
Integer
,
"l"
:
Integer
,
"t"
:
Integer
,
"b"
:
Integer
,
"a"
:
Appearance
}

Color

Referenced from: MapItem Appearance

"
hex color code e.g. #00CCFF
"
/
opacity value 0.0 - 1.0

Date

Referenced from: doc cit evt NameDetail

Note

Dates and held in Gregorian format (G) to facilitate calculation and comparison
If a calendar code (c) is specified then dates will be converted to that calendar for display purposes
If a format (f) is specified then dates will be displayed in that format, unless a cached 'display' value (d) is specified, in which case that value is used.

DateString

Referenced from: Date

"
<
~
>
YYYY
mmdd
mm
BCE
"

EventType

Referenced from: evt fam ind rol

"birt"
"cens"
"deat"
"disp"
"educ"
"emo"
"fune"
"grad"
"heal"
"occu"
"qual"
"resi"
"reli"
"soc"

LangCode

Referenced from: doc NameDetail

"
[A‑Z]
[A‑Z]
-
[A‑Z]
[A‑Z]
"

LatLong

Referenced from: pla

"
-90<=decimal number<=90
,
-180<=decimal number<=180
"

MapItem

Referenced from: map

"Uid"
:
{
"data"
:
{
"ind"
:
}
,
"x"
"y"
:
integer
"g"
:
{
"t"
"b"
:
{
"r"
"l"
:
)
"m"
:
Integer
,
}
"l"
:
{
"t"
"b"
":"
{
"t"
:
"w"
"h"
:
integer
"t"
:
"u"
:
"URL"
,
}
,
}
"q"
:
"s"
"z"
:
Integer
,
{
"fam"
:
}
,
"x"
"y"
"l"
"r"
:
integer
"b"
:
{
"x"
"y"
"l"
"r"
:
integer
,
}
"t"
:
"q"
:
"pat"
:
"s"
"z"
:
Integer
"p"
:
,
{
"rel"
:
}
,
"fam"
:
,
"ind"
:
{
"evt"
:
}
,
"pri"
:
,
"sec"
:
,
"s"
"z"
"x"
:
integer
"p"
:
"pat"
:
,
{
"org"
:
}
,
"sha"
:
{
}
}

MapRefs

Referenced from: fam ind org rel

"map"
:
{
}

MediaItems

Referenced from: cit evt fam ind org pla src

"mm"
:
{
"pic"
"vid"
"aud"
"doc"
"pri"
"por"
:
,
}

Name

Referenced from: ind org pla

e.g.

"n":[
{"f":["Elizabeth","Alexandra","Mary"],"l":"Windsor","k":"Her Royal Highness"},
{"k":"a","f":"Lizzie"},
{"k":"t","p":"Queen","f":"Elizabeth","s":"II","d":">1952"},
{"k":"t","f":"Elizabeth", "s":"the Second, by the Grace of God, of Great Britain, Ireland and the British Dominions beyond the Seas Queen, Defender of the Faith", "d":["19520206","19530326"]},
{"k":"t","lc":"LA","f":"Elizabeth", "s":"II, Dei Gratia Britanniarum Regnorumque Suorum Ceterorum Regina, Consortionis Populorum Princeps, Fidei Defensor", "d":">19530226"}
]

NameDetail

Referenced from: Name

{
"k"
:
"b"
"d"
"f"
"m"
"a"
"t"
"i"
"c"
"x"
"r"
:
"f"
"l"
"e"
"p"
"s"
:
"i"
:
[0‑99]
"w"
:
,
}

Participants

Referenced from: evt

"pri"
"sec"
:
{
Uid → rol
:
{
"ind"
"fam"
"org"
:
[
,
]
,
}
,
}
,

Shape

Referenced from: MapItem

,
"t"
:
"q"
:
"i"
:
"c"
:
{
"r"
:
Integer
,
"x"
:
Integer
,
"y"
:
Integer
,
"a"
:
}
"p"
:
{
"p"
:
,
"a"
:
}
,
"z"
:
Integer
"
Any UNICODE code unit except
`"`, `\`, or a control character
\
"
\
/
u
4 hexadecimal
digits
"

StringArray

Referenced from: NameDetail

[
,
]

PatternName

Referenced from:

"
ASCII character string
"

TimeSpan

Referenced from: ind

Integer
"
Integer
y
Integer
m
Integer
d
"
"
Integer
w
"
Integer

Uids

Referenced from: evt fam ind map MediaItems mm org pla rel src MapRefs

[
,
]
Uid

GedcomTag

Referenced from: AttrDef

Rol

Referenced from: cit

Points

Referenced from: MapItem Shape

[
{
x
:
Integer
y
:
Integer
}
,
]