View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Questions on Spring 2004 Milestone 4

So MergedMap is a subclass of GenealogyMap. So when assigning Collaborators to its Responsibilities, should I include Collaborators that are a result of it extending GenealogyMap or simply make GenealogyMap its collaborator? Thanks.

What is expected for the method comments that ECoDE inserts? As in, it seems to be expecing purpose, usage, preconditions, and postconditions...that's a little excessive for most of the methods. Must we adhere to this format, or can we use what comments make sense?

Matt Balaun

What tags can there be multiple of? Obviously level 0 tags, but aside from FAMS and CHIL at level one, are there tags where we can have multiple of them? For example could you have:
0 @I145@
1 NAME Robert /JONES/

What about
0 @I145@
2 DATE 02 APR 2003
2 DATE 04 APR 2003

If these sort of things are legal GEDCOM, how should we be handling them? If not, what are legal repeated tags, and where could we find a list of them?

Seth Horrigan

as a general rule, i wouldn't worry too much about this. if you really want to match the gedcom spec perfectly, check out one of these links: or from my quick skimming of the document, it appears that multiple instances of tags are possible, but that it is ok for programs to only handle the first instance. hence, preferred names are required to be listed before any other names. as far as birthdates go, it is impossible for someone to have multiple birthdates, so i wouldn't worry about that case. just think about which things in real life it would be possible to have duplicates of: name, child, family, marriage, etc... -ellie


1. ecode will not be required for the uml class diagram portion of m4-m6. you can use any tool you like (as long as you check with your ta to make sure he/she will be able to open that type of file)

2. the due date for m4 has been extended from tuesday the 23rd to thursday the 25th

We were told in class that a GEDCOM file that has been imported and then exported again should be a mirror image of the original. That being said, do we need to ensure that indexes for the elements of a GEDCOM file remain the same (i.e., if it says "0 @I5X1@ INDI" when imported, it should say "0 @I5X1@ INDI" when exported); or alternately, do indexes not matter as long as the people and families don't change (i.e., can it say "0 @I3@ INDI" instead)? –Scott Thompson

no, i don't think that's important, as long as all the data is exactly the same. we just want to make clear that no information should be lost (even if you don't support a particular tag directly) - make sense? -ellie

How do you break in Squeak? I know this isn't particular to Milestone4, but that needs to be in a hot spot or something. I just made a recursive call with no end and squeak died from no memory before I could find the page that says how to break.
alt-. (press "alt" and "dot" keys simultaneously) i believe. on a mac that's command-. let me know if that doesnt work -ellie

What do you mean when you say "no information should be lost (even if you don't support a particular tag directly)". How can we preserve information in a tag thats not supported? If we dont have data structures to store the information represented by the tags, then how can we avoid losing information? I understand that our code shouldnt break if we encounter an unknown tag, but shouldn't we stick to the geneology specifications of m1?

no you shouldn't stick to the m1 requirements - this project progresses some with every milestone. from the m4 requirements: "You don't have to support every GEDCOM tag by having a slot for it in your Person and Family objects, but you should have some way to perserve all of the information that was in the file. That is, when you write out what you have read in, no information should be lost." there are quite a few ways to do this (hints: strings or objects or collections or...), we want you to consider this as one of the design issues you try to figure out. if you need more guidance, come visit one of us during office hours.-ellie

Can we assume a standard date format? I don't really feel like supporting multiple date formats in my parser.

multiple date formats for what? user input? the Date class supports quite a few on its own. i'd say you should at least support those. -ellie

Should we worry about the user trying to read bad GEDCOM files, or files with a .ged extension that aren't actually GEDCOM files at all?

yea, i think it would be a good case to handle. if you run into parsing problems, you can just throw up an error that says "this is not a valid gedcom file" or the like. you might even let the user know the string you're reading in that caused the problem. for example if you came across a line like:
0 @I145@ 1 NAM Bob /JONES/
you could pop up an error message: "there seems to be a problem with file myfamily.ged on the line reading: "0 @I145@ 1 NAM Bob /JONES/"" -ellie

Link to this Page