From: Stein E. B. <gr...@be...> - 2010-07-23 09:59:16
|
Hi! I'm trying to create a GRAMPS xml file to import into GRAMPS. Background: I've got a lot of stuff that I need to import that is not in any 'useful' format. I was then thinking of converting this into XML and import that into GRAMPS. I have created this file: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE database PUBLIC "-//Gramps//DTD Gramps XML 1.3.0//EN" "http://gramps-project.org/xml/1.3.0/grampsxml.dtd"> <database xmlns="http://gramps-project.org/xml/1.3.0/"> <events> <event handle="event-776412720"> <type>Birth</type> <dateval val="1920-03-31" /> </event> <event handle="event-1057945868"> <type>Death</type> <dateval val="2004-12-12" /> </event> <event handle="event-1879089963"> <type>Burial</type> <dateval val="2004-12-20" /> </event> <event handle="event-977199748"> <type>Birth</type> <dateval val="1920-03-31" /> </event> </events> <people> <person handle="person-1106961350"> <name type="Birth Name"> <first>first</first> <last>last</last> </name> <eventref hlink="event-776412720" role="Primary"> </eventref> <eventref hlink="event-1057945868" role="Primary"> </eventref> <eventref hlink="event-1879089963" role="Primary"> </eventref> </person> <person handle="person-970495359"> <name type="Birth Name"> <first>second</first> <last>last</last> </name> <eventref hlink="event-977199748" role="Primary"> </eventref> </person> </people> </database> As a attempt in creating a minimal XML file, but this one does not import. It fails with this message: 304462: ERROR: dbloader.py: line 247: Failed to import database. Traceback (most recent call last): File "/usr/share/gramps/gui/dbloader.py", line 237, in do_import self._pulse_progress) File "/usr/share/gramps/plugins/import/ImportXml.py", line 119, in importData info = parser.parse(xml_file, line_cnt, person_cnt) File "/usr/share/gramps/plugins/import/ImportXml.py", line 749, in parse self.p.ParseFile(ifile) File "/usr/share/gramps/plugins/import/ImportXml.py", line 2349, in startElement f(attrs) File "/usr/share/gramps/plugins/import/ImportXml.py", line 1793, in start_dateval date_value = self.event.get_date_object() AttributeError: 'NoneType' object has no attribute 'get_date_object' Which 'date' object are we talking about here? Or if anyone have a example of a minimal XML file that can be imported. I don't want to add the id="" as I want GRAMPS to select that itself when importing. -- Stein Erik Berget |
From: Peter L. <pet...@te...> - 2010-07-23 14:40:56
|
In this case, 'self.event' has the value 'None', which obviously has no attribute. I have no idea why this happens. We have a number of this type of error recently when importing GEDCOM or XML. /Peter > Hi! > > I'm trying to create a GRAMPS xml file to import into GRAMPS. Background: > I've got a lot of stuff that I need to import that is not in any 'useful' > format. I was then thinking of converting this into XML and import that > into GRAMPS. I have created this file: > > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE database PUBLIC "-//Gramps//DTD Gramps XML 1.3.0//EN" > "http://gramps-project.org/xml/1.3.0/grampsxml.dtd"> > > <database xmlns="http://gramps-project.org/xml/1.3.0/"> > <events> > <event handle="event-776412720"> > <type>Birth</type> > <dateval val="1920-03-31" /> > </event> > <event handle="event-1057945868"> > <type>Death</type> > <dateval val="2004-12-12" /> > </event> > <event handle="event-1879089963"> > <type>Burial</type> > <dateval val="2004-12-20" /> > </event> > <event handle="event-977199748"> > <type>Birth</type> > <dateval val="1920-03-31" /> > </event> > </events> > <people> > <person handle="person-1106961350"> > <name type="Birth Name"> > <first>first</first> > <last>last</last> > </name> > <eventref hlink="event-776412720" role="Primary"> > </eventref> > <eventref hlink="event-1057945868" role="Primary"> > </eventref> > <eventref hlink="event-1879089963" role="Primary"> > </eventref> > </person> > <person handle="person-970495359"> > <name type="Birth Name"> > <first>second</first> > <last>last</last> > </name> > <eventref hlink="event-977199748" role="Primary"> > </eventref> > </person> > </people> > </database> > > > As a attempt in creating a minimal XML file, but this one does not import. > It fails with this message: > > > 304462: ERROR: dbloader.py: line 247: Failed to import database. > Traceback (most recent call last): > File "/usr/share/gramps/gui/dbloader.py", line 237, in do_import > self._pulse_progress) > File "/usr/share/gramps/plugins/import/ImportXml.py", line 119, in > importData > info = parser.parse(xml_file, line_cnt, person_cnt) > File "/usr/share/gramps/plugins/import/ImportXml.py", line 749, in parse > self.p.ParseFile(ifile) > File "/usr/share/gramps/plugins/import/ImportXml.py", line 2349, in > startElement > f(attrs) > File "/usr/share/gramps/plugins/import/ImportXml.py", line 1793, in > start_dateval > date_value = self.event.get_date_object() > AttributeError: 'NoneType' object has no attribute 'get_date_object' > > Which 'date' object are we talking about here? Or if anyone have a example > of a minimal XML file that can be imported. I don't want to add the id="" > as I want GRAMPS to select that itself when importing. -- Peter Landgren Talken Hagen 671 94 BRUNSKOG 0570-530 21 070-345 0964 pet...@te... Skype: pgl4820.2 |
From: jerome <rom...@ya...> - 2010-07-23 14:56:19
|
> Which 'date' object are we talking about here? Or if anyone > have a example > of a minimal XML file that can be imported. I don't want to > add the id="" > as I want GRAMPS to select that itself when importing. But you are forcing/setting the DB handler value! You can see some samples on : http://gramps.svn.sourceforge.net/viewvc/gramps/branches/maintenance/gramps32/example/gramps/ http://gramps-project.org/wiki/index.php?title=Generate_XML#How_do_I_uncompress_the_file.3F --- En date de : Ven 23.7.10, Stein Erik Berget <gr...@be...> a écrit : > De: Stein Erik Berget <gr...@be...> > Objet: [Gramps-users] Importing GRAMPS xml > À: "gra...@li..." <gra...@li...> > Date: Vendredi 23 juillet 2010, 11h59 > Hi! > > I'm trying to create a GRAMPS xml file to import into > GRAMPS. Background: > I've got a lot of stuff that I need to import that is not > in any 'useful' > format. I was then thinking of converting this into XML and > import that > into GRAMPS. I have created this file: > > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE database PUBLIC "-//Gramps//DTD Gramps XML > 1.3.0//EN" > "http://gramps-project.org/xml/1.3.0/grampsxml.dtd"> > > <database xmlns="http://gramps-project.org/xml/1.3.0/"> > <events> > <event > handle="event-776412720"> > > <type>Birth</type> > <dateval > val="1920-03-31" /> > </event> > <event > handle="event-1057945868"> > > <type>Death</type> > <dateval > val="2004-12-12" /> > </event> > <event > handle="event-1879089963"> > > <type>Burial</type> > <dateval > val="2004-12-20" /> > </event> > <event > handle="event-977199748"> > > <type>Birth</type> > <dateval > val="1920-03-31" /> > </event> > </events> > <people> > <person > handle="person-1106961350"> > <name type="Birth > Name"> > > <first>first</first> > > <last>last</last> > </name> > <eventref > hlink="event-776412720" role="Primary"> > </eventref> > <eventref > hlink="event-1057945868" role="Primary"> > </eventref> > <eventref > hlink="event-1879089963" role="Primary"> > </eventref> > </person> > <person > handle="person-970495359"> > <name type="Birth > Name"> > > <first>second</first> > > <last>last</last> > </name> > <eventref > hlink="event-977199748" role="Primary"> > </eventref> > </person> > </people> > </database> > > > As a attempt in creating a minimal XML file, but this one > does not import. > It fails with this message: > > > 304462: ERROR: dbloader.py: line 247: Failed to import > database. > Traceback (most recent call last): > File "/usr/share/gramps/gui/dbloader.py", > line 237, in do_import > self._pulse_progress) > File > "/usr/share/gramps/plugins/import/ImportXml.py", line 119, > in > importData > info = parser.parse(xml_file, > line_cnt, person_cnt) > File > "/usr/share/gramps/plugins/import/ImportXml.py", line 749, > in parse > self.p.ParseFile(ifile) > File > "/usr/share/gramps/plugins/import/ImportXml.py", line 2349, > in > startElement > f(attrs) > File > "/usr/share/gramps/plugins/import/ImportXml.py", line 1793, > in > start_dateval > date_value = > self.event.get_date_object() > AttributeError: 'NoneType' object has no attribute > 'get_date_object' > > Which 'date' object are we talking about here? Or if anyone > have a example > of a minimal XML file that can be imported. I don't want to > add the id="" > as I want GRAMPS to select that itself when importing. > > -- > Stein Erik Berget > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Stein E. B. <gr...@be...> - 2010-08-01 15:38:37
|
On Fri, 23 Jul 2010 16:56:11 +0200, jerome <rom...@ya...> wrote: >> Which 'date' object are we talking about here? Or if anyone >> have a example >> of a minimal XML file that can be imported. I don't want to >> add the id="" >> as I want GRAMPS to select that itself when importing. > > But you are forcing/setting the DB handler value! OKi:-) I was under the impression that the 'handle' was the XML file 'internal' handle, and not the Database record Id/Primary Key. As I can see from http://gramps-project.org/xml/1.3.0/grampsxml.dtd the definition of id/handle states that they _both_ are _required_ as far as I can see: <!ELEMENT person (gender, name*, nick?, eventref*, lds_ord*, objref*, address*, attribute*, url*, childof*, parentin*, personref*, noteref*, sourceref*)> <!ATTLIST person id CDATA #REQUIRED handle ID #REQUIRED priv (0|1) #IMPLIED marker CDATA #IMPLIED change CDATA #REQUIRED > I should of course have checked this before... Sorry. > You can see some samples on : > http://gramps.svn.sourceforge.net/viewvc/gramps/branches/maintenance/gramps32/example/gramps/ > http://gramps-project.org/wiki/index.php?title=Generate_XML#How_do_I_uncompress_the_file.3F I've seen those, and created my own export out of a small sample tree. But if you only set the 'id', as I understand from you is the 'key' you can set yourself. How do I refer to the different evens/persons and so on? -- Stein Erik |
From: jerome <rom...@ya...> - 2010-08-01 16:19:49
|
> How do I refer to the different evens/persons and so on? Maybe <eventref hlink="Person's ID"> ? <!ELEMENT eventref (attribute*,noteref*)> <!ATTLIST eventref hlink IDREF #REQUIRED priv (0|1) #IMPLIED role CDATA #IMPLIED --- En date de : Dim 1.8.10, Stein Erik Berget <gr...@be...> a écrit : > De: Stein Erik Berget <gr...@be...> > Objet: Re: [Gramps-users] Re : Importing GRAMPS xml > À: "gra...@li..." <gra...@li...> > Date: Dimanche 1 août 2010, 17h38 > On Fri, 23 Jul 2010 16:56:11 +0200, > jerome <rom...@ya...> > wrote: > > >> Which 'date' object are we talking about here? Or > if anyone > >> have a example > >> of a minimal XML file that can be imported. I > don't want to > >> add the id="" > >> as I want GRAMPS to select that itself when > importing. > > > > But you are forcing/setting the DB handler value! > > OKi:-) I was under the impression that the 'handle' was the > XML file > 'internal' handle, and not the Database record Id/Primary > Key. As I can > see from http://gramps-project.org/xml/1.3.0/grampsxml.dtd the > definition > of id/handle states that they _both_ are _required_ as far > as I can see: > > > <!ELEMENT person > (gender, name*, nick?, eventref*, lds_ord*, > > objref*, address*, > attribute*, url*, childof*, > > parentin*, > personref*, noteref*, sourceref*)> > <!ATTLIST person > > id CDATA > #REQUIRED > > handle ID > #REQUIRED > > priv (0|1) #IMPLIED > marker CDATA > #IMPLIED > > change CDATA #REQUIRED > > > > I should of course have checked this before... Sorry. > > > > You can see some samples on : > > http://gramps.svn.sourceforge.net/viewvc/gramps/branches/maintenance/gramps32/example/gramps/ > > http://gramps-project.org/wiki/index.php?title=Generate_XML#How_do_I_uncompress_the_file.3F > > I've seen those, and created my own export out of a small > sample tree. But > if you only set the 'id', as I understand from you is the > 'key' you can > set yourself. How do I refer to the different evens/persons > and so on? > > -- > Stein Erik > > ------------------------------------------------------------------------------ > The Palm PDK Hot Apps Program offers developers who use > the > Plug-In Development Kit to bring their C/C++ apps to Palm > for a share > of $1 Million in cash or HP Products. Visit us here for > more details: > http://p.sf.net/sfu/dev2dev-palm > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Stein E. B. <gr...@be...> - 2010-08-01 17:56:11
|
On Sun, 01 Aug 2010 18:19:41 +0200, jerome <rom...@ya...> wrote: >> How do I refer to the different evens/persons and so on? > > Maybe <eventref hlink="Person's ID"> ? > > <!ELEMENT eventref (attribute*,noteref*)> > <!ATTLIST eventref > hlink IDREF #REQUIRED > priv (0|1) #IMPLIED > role CDATA #IMPLIED I've tried that but it don't work <!ATTLIST person id CDATA #REQUIRED handle ID #REQUIRED priv (0|1) #IMPLIED marker CDATA #IMPLIED change CDATA #REQUIRED > explains why. As id is not a IDREF attribute, but only a CDATA one. :-( The result is that the persons and events are both imported, but the link between them don't exist. -- Stein Erik Berget |
From: Michiel N. <m.d...@he...> - 2010-08-01 20:58:08
|
Hi Stein, As you notice, both ID and handle are needed. The handle is the primary key that ties everything together in the database. It is what I would call part of the pluming, invisible to the user, but without it Gramps would fall apart. The ID is primarily for binding Gramps objects (persons/events/places, etc.) to external applications. There could be other programs managing information that relates to data you store in Gramps. To tie that to Gramps you use the Gramps IDs. That is also the reason why a user can set his own ID (as long it is unique), so that he can adjust it to whatever other software he uses. So in the example of the eventref, hlink should be an handle, not an ID. Michiel Stein Erik Berget wrote: > On Sun, 01 Aug 2010 18:19:41 +0200, jerome <rom...@ya...> wrote: > >>> How do I refer to the different evens/persons and so on? >> Maybe <eventref hlink="Person's ID"> ? >> >> <!ELEMENT eventref (attribute*,noteref*)> >> <!ATTLIST eventref >> hlink IDREF #REQUIRED >> priv (0|1) #IMPLIED >> role CDATA #IMPLIED > > I've tried that but it don't work > > <!ATTLIST person > id CDATA #REQUIRED > handle ID #REQUIRED > priv (0|1) #IMPLIED > marker CDATA #IMPLIED > change CDATA #REQUIRED > > explains why. As id is not a IDREF attribute, but only a CDATA one. :-( > The result is that the persons and events are both imported, but the link > between them don't exist. |
From: jerome <rom...@ya...> - 2010-08-02 03:38:10
|
Does it mean, we can 'easily' import primary objects by using ID but not theirs relations without handle values ? :( > hlink should be an handle Is there a rule for setting handle ? Or current Gramps DB is able to manage every type of value ? Thank you. Jérôme --- En date de : Dim 1.8.10, Michiel Nauta <m.d...@he...> a écrit : > De: Michiel Nauta <m.d...@he...> > Objet: Re: [Gramps-users] Re : Importing GRAMPS xml > À: "Stein Erik Berget" <gr...@be...> > Cc: "gra...@li..." <gra...@li...> > Date: Dimanche 1 août 2010, 22h58 > Hi Stein, > > As you notice, both ID and handle are needed. The handle is > the primary > key that ties everything together in the database. It is > what I would > call part of the pluming, invisible to the user, but > without it Gramps > would fall apart. The ID is primarily for binding Gramps > objects > (persons/events/places, etc.) to external applications. > There could be > other programs managing information that relates to data > you store in > Gramps. To tie that to Gramps you use the Gramps IDs. That > is also the > reason why a user can set his own ID (as long it is > unique), so that he > can adjust it to whatever other software he uses. > > So in the example of the eventref, hlink should be an > handle, not an ID. > > Michiel > > Stein Erik Berget wrote: > > On Sun, 01 Aug 2010 18:19:41 +0200, jerome <rom...@ya...> > wrote: > > > >>> How do I refer to the different evens/persons > and so on? > >> Maybe <eventref hlink="Person's ID"> ? > >> > >> <!ELEMENT eventref (attribute*,noteref*)> > >> <!ATTLIST eventref > >> hlink IDREF #REQUIRED > >> priv (0|1) #IMPLIED > >> role CDATA #IMPLIED > > > > I've tried that but it don't work > > > > <!ATTLIST person > > id > CDATA #REQUIRED > > handle > ID #REQUIRED > > priv > (0|1) #IMPLIED > > marker CDATA #IMPLIED > > change > CDATA #REQUIRED > > > > explains why. As id is not a IDREF attribute, but only > a CDATA one. :-( > > The result is that the persons and events are both > imported, but the link > > between them don't exist. > > ------------------------------------------------------------------------------ > The Palm PDK Hot Apps Program offers developers who use > the > Plug-In Development Kit to bring their C/C++ apps to Palm > for a share > of $1 Million in cash or HP Products. Visit us here for > more details: > http://p.sf.net/sfu/dev2dev-palm > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Stein E. B. <gr...@be...> - 2010-08-02 07:04:33
|
On Sun, 01 Aug 2010 22:58:00 +0200, Michiel Nauta <m.d...@he...> wrote: > Hi Stein, > > As you notice, both ID and handle are needed. The handle is the primary > key that ties everything together in the database. It is what I would > call part of the pluming, invisible to the user, but without it Gramps > would fall apart. This scares the living daylight out of me! Giving external tools the ability to modify the primary keys used in a database, that's what I call scary! > The ID is primarily for binding Gramps objects (persons/events/places, > etc.) to external applications. There could be other programs managing > information that relates to data you store in Gramps. To tie that to > Gramps you use the Gramps IDs. That is also the reason why a user can > set his own ID (as long it is unique), so that he can adjust it to > whatever other software he uses. This is what we call source/sourceId in my companies CMS. We use it to handle syndication with other sources, like AP/Routers and other news agencies. Having it in one field as opposed to two should not matter. > So in the example of the eventref, hlink should be an handle, not an ID. In our system you have the opportunity to relate pieces of information together by doing one of 3 methods, or any combination thereof: * Source/SourceId Which you can use to relate to information already in the database. Or imported in the same file. * Id which is the ID/IDREF found in your current import file. This is the way to relate to information in the same file which is according to the XML specification. * dbId which is the primary key for the given Object in the DB. You can only refer to existing DbIds, and not set it yourself. Modifying/setting the Handle/dbId sounds to me very scary, but what do I know. -- Stein Erik Berget |
From: jerome <rom...@ya...> - 2010-08-02 07:57:07
|
> Modifying/setting the Handle/dbId sounds to me very scary, > but what do I > know. But it seems to be an experimental import, no ? "I'm trying to create a GRAMPS xml file to import into GRAMPS. Background: I've got a lot of stuff that I need to import that is not in any 'useful' format. I was then thinking of converting this into XML and import that into GRAMPS. I have created this file" As Doug mentionned, you could also have a try to csv import. Anyway, it seems you pointed out one limitation : we cannot generate (out of program) an advanced GRAMPS XML without handles set. Maybe some lines might be added on Gramps XML documentation ? http://gramps-project.org/wiki/index.php?title=GRAMPS_XML http://gramps-project.org/wiki/index.php?title=GEPS_009:_Import_Export_Merge Could be <object handle="object-776412720">, <object handle="modulo10timelog">, or <object handle="[A-Z][a-zA-Z0-9]">, etc ...? Jérôme --- En date de : Lun 2.8.10, Stein Erik Berget <gr...@be...> a écrit : > De: Stein Erik Berget <gr...@be...> > Objet: Re: [Gramps-users] Re : Importing GRAMPS xml > À: "gra...@li..." <gra...@li...> > Date: Lundi 2 août 2010, 9h04 > On Sun, 01 Aug 2010 22:58:00 +0200, > Michiel Nauta <m.d...@he...> > > wrote: > > > Hi Stein, > > > > As you notice, both ID and handle are needed. The > handle is the primary > > key that ties everything together in the database. It > is what I would > > call part of the pluming, invisible to the user, but > without it Gramps > > would fall apart. > > This scares the living daylight out of me! Giving external > tools the > ability to modify the primary keys used in a database, > that's what I call > scary! > > > > The ID is primarily for binding Gramps objects > (persons/events/places, > > etc.) to external applications. There could be other > programs managing > > information that relates to data you store in Gramps. > To tie that to > > Gramps you use the Gramps IDs. That is also the reason > why a user can > > set his own ID (as long it is unique), so that he can > adjust it to > > whatever other software he uses. > > This is what we call source/sourceId in my companies CMS. > We use it to > handle syndication with other sources, like AP/Routers and > other news > agencies. Having it in one field as opposed to two should > not matter. > > > > So in the example of the eventref, hlink should be an > handle, not an ID. > > In our system you have the opportunity to relate pieces of > information > together by doing one of 3 methods, or any combination > thereof: > > * Source/SourceId Which you can use to relate to > information already in > the database. Or imported in the same file. > * Id which is the ID/IDREF found in your current import > file. This is the > way to relate to information in the same file which is > according to the > XML specification. > * dbId which is the primary key for the given Object in the > DB. You can > only refer to existing DbIds, and not set it yourself. > > Modifying/setting the Handle/dbId sounds to me very scary, > but what do I > know. > -- > Stein Erik Berget > > ------------------------------------------------------------------------------ > The Palm PDK Hot Apps Program offers developers who use > the > Plug-In Development Kit to bring their C/C++ apps to Palm > for a share > of $1 Million in cash or HP Products. Visit us here for > more details: > http://p.sf.net/sfu/dev2dev-palm > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Stein E. B. <gr...@be...> - 2010-08-02 09:39:02
|
On Mon, 02 Aug 2010 09:56:58 +0200, jerome <rom...@ya...> wrote: >> Modifying/setting the Handle/dbId sounds to me very scary, >> but what do I >> know. > > But it seems to be an experimental import, no ? Well, I want to import over 1000 people with related events... And creating a little tool to do syndication between two users of GRAMPS is better done with the use of GRAMPS XML than GedCom, as the latter 'looses' information, as I understand it. It does not properly syndicate GRAMPS extensions to the 'standard'. I've thinking about AKA, married Name and so on. > "I'm trying to create a GRAMPS xml file to import into GRAMPS. > Background: I've got a lot of stuff that I need to import that is not in > any 'useful' format. I was then thinking of converting this into XML and > import that into GRAMPS. I have created this file" > > As Doug mentionned, you could also have a try to csv import. Ugh! I've got this nice XML tool called www.jdom.org that helps me in creating a good XML file. And CSV and encoding, I've got bad feelings for that. And here I'm also not able to get in all the information I want. For me an XML import would be a lot nicer. > Anyway, it seems you pointed out one limitation : we cannot generate > (out of program) an advanced GRAMPS XML without handles set. Seems to be the case :-( > Maybe some lines might be added on Gramps XML documentation ? > http://gramps-project.org/wiki/index.php?title=GRAMPS_XML > http://gramps-project.org/wiki/index.php?title=GEPS_009:_Import_Export_Merge > > Could be <object handle="object-776412720">, <object > handle="modulo10timelog">, or <object handle="[A-Z][a-zA-Z0-9]">, etc > ...? Seems like a good idea. Seems that a inferior CVS import is the only way forward for the time being :-( -- Stein Erik Berget |
From: jerome <rom...@ya...> - 2010-08-02 09:52:45
|
> Seems like a good idea. Seems that a inferior CVS import is > the only way forward for the time being A good alternative could be : 'sql import'[1], also used[2] by experimental Gramps-connect[3]! [1] http://gramps-project.org/wiki/index.php?title=GRAMPS_SQL_Database [2] http://gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp#Getting_Started_with_Gramps_in_Django [3] http://gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp --- En date de : Lun 2.8.10, Stein Erik Berget <gr...@be...> a écrit : > De: Stein Erik Berget <gr...@be...> > Objet: Re: [Gramps-users] Re : Importing GRAMPS xml > À: "gra...@li..." <gra...@li...> > Date: Lundi 2 août 2010, 11h38 > On Mon, 02 Aug 2010 09:56:58 +0200, > jerome <rom...@ya...> > wrote: > > >> Modifying/setting the Handle/dbId sounds to me > very scary, > >> but what do I > >> know. > > > > But it seems to be an experimental import, no ? > > Well, I want to import over 1000 people with related > events... And > creating a little tool to do syndication between two users > of GRAMPS is > better done with the use of GRAMPS XML than GedCom, as the > latter 'looses' > information, as I understand it. It does not properly > syndicate GRAMPS > extensions to the 'standard'. I've thinking about AKA, > married Name and so > on. > > > > "I'm trying to create a GRAMPS xml file to import into > GRAMPS. > > Background: I've got a lot of stuff that I need to > import that is not in > > any 'useful' format. I was then thinking of converting > this into XML and > > import that into GRAMPS. I have created this file" > > > > As Doug mentionned, you could also have a try to csv > import. > > Ugh! I've got this nice XML tool called www.jdom.org that > helps me in > creating a good XML file. And CSV and encoding, I've got > bad feelings for > that. And here I'm also not able to get in all the > information I want. For > me an XML import would be a lot nicer. > > > > Anyway, it seems you pointed out one limitation : we > cannot generate > > (out of program) an advanced GRAMPS XML without > handles set. > > Seems to be the case :-( > > > > Maybe some lines might be added on Gramps XML > documentation ? > > http://gramps-project.org/wiki/index.php?title=GRAMPS_XML > > http://gramps-project.org/wiki/index.php?title=GEPS_009:_Import_Export_Merge > > > > Could be <object handle="object-776412720">, > <object > > handle="modulo10timelog">, or <object > handle="[A-Z][a-zA-Z0-9]">, etc > > ...? > > Seems like a good idea. Seems that a inferior CVS import is > the only way > forward for the time being :-( > > -- > Stein Erik Berget > > ------------------------------------------------------------------------------ > The Palm PDK Hot Apps Program offers developers who use > the > Plug-In Development Kit to bring their C/C++ apps to Palm > for a share > of $1 Million in cash or HP Products. Visit us here for > more details: > http://p.sf.net/sfu/dev2dev-palm > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Doug B. <dou...@gm...> - 2010-08-02 12:43:31
|
On Mon, Aug 2, 2010 at 5:38 AM, Stein Erik Berget <gr...@be...> wrote: > On Mon, 02 Aug 2010 09:56:58 +0200, jerome <rom...@ya...> wrote: > >>> Modifying/setting the Handle/dbId sounds to me very scary, >>> but what do I >>> know. >> >> But it seems to be an experimental import, no ? > > Well, I want to import over 1000 people with related events... And > creating a little tool to do syndication between two users of GRAMPS is > better done with the use of GRAMPS XML than GedCom, as the latter 'looses' > information, as I understand it. It does not properly syndicate GRAMPS > extensions to the 'standard'. I've thinking about AKA, married Name and so > on. If you are willing to help us, your case would be an excellent motivation to help move forward on this issue. I think your point is really about Universal Identifiers, UIDs. I've updated GEPS #9 with some additional discussion links: >http://www.gramps-project.org/wiki/index.php?title=GEPS_009:_Import_Export_Merge#UID.2C_GUID_and__UID.2C_what_is_needed_in_GRAMPS.3F Not only are these keys used for binding data together in the XML file, and currently used internally in gramps, but could also be used to later do syncs to keep info between users updated. I think the goal is to remove the internal use, but keep track of them so we remember for later syncs. If you have ideas on how we can work towards this, it would be appreciated. XML is the right tool for the job, and we want to make it work correctly. -Doug >> "I'm trying to create a GRAMPS xml file to import into GRAMPS. >> Background: I've got a lot of stuff that I need to import that is not in >> any 'useful' format. I was then thinking of converting this into XML and >> import that into GRAMPS. I have created this file" >> >> As Doug mentionned, you could also have a try to csv import. > > Ugh! I've got this nice XML tool called www.jdom.org that helps me in > creating a good XML file. And CSV and encoding, I've got bad feelings for > that. And here I'm also not able to get in all the information I want. For > me an XML import would be a lot nicer. > > >> Anyway, it seems you pointed out one limitation : we cannot generate >> (out of program) an advanced GRAMPS XML without handles set. > > Seems to be the case :-( > > >> Maybe some lines might be added on Gramps XML documentation ? >> http://gramps-project.org/wiki/index.php?title=GRAMPS_XML >> http://gramps-project.org/wiki/index.php?title=GEPS_009:_Import_Export_Merge >> >> Could be <object handle="object-776412720">, <object >> handle="modulo10timelog">, or <object handle="[A-Z][a-zA-Z0-9]">, etc >> ...? > > Seems like a good idea. Seems that a inferior CVS import is the only way > forward for the time being :-( > > -- > Stein Erik Berget > > ------------------------------------------------------------------------------ > The Palm PDK Hot Apps Program offers developers who use the > Plug-In Development Kit to bring their C/C++ apps to Palm for a share > of $1 Million in cash or HP Products. Visit us here for more details: > http://p.sf.net/sfu/dev2dev-palm > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Stein E. B. <gr...@be...> - 2010-08-03 11:52:59
|
On Mon, 02 Aug 2010 14:43:21 +0200, Doug Blank <dou...@gm...> wrote: > On Mon, Aug 2, 2010 at 5:38 AM, Stein Erik Berget <gr...@be...> > wrote: >> On Mon, 02 Aug 2010 09:56:58 +0200, jerome <rom...@ya...> wrote: >> >>>> Modifying/setting the Handle/dbId sounds to me very scary, >>>> but what do I >>>> know. >>> >>> But it seems to be an experimental import, no ? >> >> Well, I want to import over 1000 people with related events... And >> creating a little tool to do syndication between two users of GRAMPS is >> better done with the use of GRAMPS XML than GedCom, as the latter >> 'looses' >> information, as I understand it. It does not properly syndicate GRAMPS >> extensions to the 'standard'. I've thinking about AKA, married Name and >> so >> on. > > If you are willing to help us, your case would be an excellent > motivation to help move forward on this issue. I'll all for that! I'll try to write up what I'm after. I'll probably create a DTD explaining what I would like to have working. Would that be useful? > I think your point is > really about Universal Identifiers, UIDs. I've updated GEPS #9 with > some additional discussion links: > >> http://www.gramps-project.org/wiki/index.php?title=GEPS_009:_Import_Export_Merge#UID.2C_GUID_and__UID.2C_what_is_needed_in_GRAMPS.3F I've had a look at that. Yes and no. Firstly I would like to have internal linking inside a XML file work. That does not require a [UID|GUID|UUID] as I can see, but you might see something I don't. > Not only are these keys used for binding data together in the XML > file, and currently used internally in gramps, but could also be used > to later do syncs to keep info between users updated. I think the goal > is to remove the internal use, but keep track of them so we remember > for later syncs. I think the existing ID could be used for this. As it is imported/exported as it is today. What needs to be done is to remove the 'handle' part of the XML and only rely on 'id' and internal 'linking' in the file. > If you have ideas on how we can work towards this, it would be > appreciated. XML is the right tool for the job, and we want to make it > work correctly. What do you think about the above? <snip /> -- Stein Erik Berget |
From: Doug B. <dou...@gm...> - 2010-08-03 12:37:40
|
On Tue, Aug 3, 2010 at 7:52 AM, Stein Erik Berget <gr...@be...> wrote: > On Mon, 02 Aug 2010 14:43:21 +0200, Doug Blank <dou...@gm...> > wrote: > >> On Mon, Aug 2, 2010 at 5:38 AM, Stein Erik Berget <gr...@be...> >> wrote: >>> On Mon, 02 Aug 2010 09:56:58 +0200, jerome <rom...@ya...> wrote: >>> >>>>> Modifying/setting the Handle/dbId sounds to me very scary, >>>>> but what do I >>>>> know. >>>> >>>> But it seems to be an experimental import, no ? >>> >>> Well, I want to import over 1000 people with related events... And >>> creating a little tool to do syndication between two users of GRAMPS is >>> better done with the use of GRAMPS XML than GedCom, as the latter >>> 'looses' >>> information, as I understand it. It does not properly syndicate GRAMPS >>> extensions to the 'standard'. I've thinking about AKA, married Name and >>> so >>> on. >> >> If you are willing to help us, your case would be an excellent >> motivation to help move forward on this issue. > > I'll all for that! I'll try to write up what I'm after. I'll probably > create a DTD explaining what I would like to have working. > > Would that be useful? Great, and yes that would be a nice data point. >> I think your point is >> really about Universal Identifiers, UIDs. I've updated GEPS #9 with >> some additional discussion links: >> >>> http://www.gramps-project.org/wiki/index.php?title=GEPS_009:_Import_Export_Merge#UID.2C_GUID_and__UID.2C_what_is_needed_in_GRAMPS.3F > > I've had a look at that. Yes and no. Firstly I would like to have internal > linking inside a XML file work. That does not require a [UID|GUID|UUID] as > I can see, but you might see something I don't. > > >> Not only are these keys used for binding data together in the XML >> file, and currently used internally in gramps, but could also be used >> to later do syncs to keep info between users updated. I think the goal >> is to remove the internal use, but keep track of them so we remember >> for later syncs. > > I think the existing ID could be used for this. As it is imported/exported > as it is today. What needs to be done is to remove the 'handle' part of > the XML and only rely on 'id' and internal 'linking' in the file. At this point, we probably need to figure out what features and behavior we want from Gramps, and then discuss implementations. We can't do exactly what you suggest, at least that can't be the only method of import. For many programs, the id (gramps_id) is under user control. Users can have duplicate id's, or leave off the id completely. But I think that what we need to do is separate the handle in the XML from directly being the handle in the database. Then it becomes just an internal XML linking id. And, perhaps, also a UID for later synchronization, which we need to associate with the actual handle. I don't think that this will be too complicated, and think we could have a solution for Gramps 3.3. Benny will hopefully be able to weigh in on these ideas. Thanks for your offer of help... I think this will have a large, positive impact on a number of users. -Doug >> If you have ideas on how we can work towards this, it would be >> appreciated. XML is the right tool for the job, and we want to make it >> work correctly. > > What do you think about the above? > > > <snip /> > -- > Stein Erik Berget > > ------------------------------------------------------------------------------ > The Palm PDK Hot Apps Program offers developers who use the > Plug-In Development Kit to bring their C/C++ apps to Palm for a share > of $1 Million in cash or HP Products. Visit us here for more details: > http://p.sf.net/sfu/dev2dev-palm > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Stein E. B. <gr...@be...> - 2010-08-03 13:55:23
|
On Tue, 03 Aug 2010 14:37:30 +0200, Doug Blank <dou...@gm...> wrote: <snip /> >> Would that be useful? > > Great, and yes that would be a nice data point. Goody! I've attached a modified DTD to this e-mail. Hope it goes through! What I've done is this: I've 'renamed' handle to 'xmlid' to indicate that this is for internal XML use. I've also changed the #REQUIRES from the existing ID to #IMPLIED. <snip /> > I think the existing ID could be used for this. As it is >> imported/exported >> as it is today. What needs to be done is to remove the 'handle' part of >> the XML and only rely on 'id' and internal 'linking' in the file. > > At this point, we probably need to figure out what features and > behavior we want from Gramps, and then discuss implementations. I've got some experience with the use of XML as a syndication format. What the GRAMPS project should keep in mind is to separate the 'data format' and the 'command language'. Some use cases: When you for the first time import a person into GRAMPS all is well. The next time you import the same person (you have kept some sort of ID to update the same person). What do you do with 'missing information' in the new file? Last time you had two names attached to this person, now you only have one, which you have changed. What does this mean? That you want to _delete_ the content in GRAMPS, do you want to _leave it alone_? What about the information you have _added_ to the content in GRAMPS should this be _removed_ when you do an update? All the above should be clearly defined, ether as separate elements, or clearly defined that this is what happens when you have these scenarios. All of the above could happen if you cooperate with another one, and you get a new 'dump' from their database, and you have added value to the data in the time span between those dumps. Did this make any sense to you? > We can't do exactly what you suggest, at least that can't be the only > method of import. For many programs, the id (gramps_id) is under user > control. Users can have duplicate id's, or leave off the id > completely. Agreed. In our system the source/sourceId is not available in any GUI to be set, so it sort of safe. The only way you can set it by doing an import, and it is there it makes sense to set it. > But I think that what we need to do is separate the handle > in the XML from directly being the handle in the database. Then it > becomes just an internal XML linking id. And, perhaps, also a UID for > later synchronization, which we need to associate with the actual > handle. Agreed. The current 'id' in the XML format seems to be used for this, but it needs some additional behavior attached to it > I don't think that this will be too complicated, and think we could > have a solution for Gramps 3.3. Benny will hopefully be able to weigh > in on these ideas. :-) > Thanks for your offer of help... I think this will have a large, > positive impact on a number of users. Please keep me in the loop! <snip /> -- Stein Erik Berget |
From: Doug B. <dou...@gm...> - 2010-07-23 15:10:01
|
On Fri, Jul 23, 2010 at 5:59 AM, Stein Erik Berget <gr...@be...> wrote: > Hi! > > I'm trying to create a GRAMPS xml file to import into GRAMPS. Background: > I've got a lot of stuff that I need to import that is not in any 'useful' > format. I was then thinking of converting this into XML and import that > into GRAMPS. I have created this file: > > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE database PUBLIC "-//Gramps//DTD Gramps XML 1.3.0//EN" > "http://gramps-project.org/xml/1.3.0/grampsxml.dtd"> > > <database xmlns="http://gramps-project.org/xml/1.3.0/"> > <events> > <event handle="event-776412720"> > <type>Birth</type> > <dateval val="1920-03-31" /> > </event> > <event handle="event-1057945868"> > <type>Death</type> > <dateval val="2004-12-12" /> > </event> > <event handle="event-1879089963"> > <type>Burial</type> > <dateval val="2004-12-20" /> > </event> > <event handle="event-977199748"> > <type>Birth</type> > <dateval val="1920-03-31" /> > </event> > </events> > <people> > <person handle="person-1106961350"> > <name type="Birth Name"> > <first>first</first> > <last>last</last> > </name> > <eventref hlink="event-776412720" role="Primary"> > </eventref> > <eventref hlink="event-1057945868" role="Primary"> > </eventref> > <eventref hlink="event-1879089963" role="Primary"> > </eventref> > </person> > <person handle="person-970495359"> > <name type="Birth Name"> > <first>second</first> > <last>last</last> > </name> > <eventref hlink="event-977199748" role="Primary"> > </eventref> > </person> > </people> > </database> > > > As a attempt in creating a minimal XML file, but this one does not import. > It fails with this message: > > > 304462: ERROR: dbloader.py: line 247: Failed to import database. > Traceback (most recent call last): > File "/usr/share/gramps/gui/dbloader.py", line 237, in do_import > self._pulse_progress) > File "/usr/share/gramps/plugins/import/ImportXml.py", line 119, in > importData > info = parser.parse(xml_file, line_cnt, person_cnt) > File "/usr/share/gramps/plugins/import/ImportXml.py", line 749, in parse > self.p.ParseFile(ifile) > File "/usr/share/gramps/plugins/import/ImportXml.py", line 2349, in > startElement > f(attrs) > File "/usr/share/gramps/plugins/import/ImportXml.py", line 1793, in > start_dateval > date_value = self.event.get_date_object() > AttributeError: 'NoneType' object has no attribute 'get_date_object' > > Which 'date' object are we talking about here? Or if anyone have a example > of a minimal XML file that can be imported. I don't want to add the id="" > as I want GRAMPS to select that itself when importing. It appears that the gramps XML import currently requires that all primary objects have a id attribute. This should not be required, and could be fixed. If you are interested in this please post a bug issue in the tracker with your sample XML file attached. You can of course just assign them a temp id, snd then adjust inside of gramps. Another option is to use the Spreadsheet import which is designed to allow what you are doing (eg, constructing data by hand to be imported). See: http://www.gramps-project.org/wiki/index.php?title=Import_from_another_program#Spreadsheet_Import Hope that helps, -Doug > -- > Stein Erik Berget > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Stein E. B. <gr...@be...> - 2010-07-23 14:37:57
|
On Fri, 23 Jul 2010 15:25:55 +0200, Doug Blank <dou...@gm...> wrote: > On Fri, Jul 23, 2010 at 5:59 AM, Stein Erik Berget <gr...@be...> <snip message="my example" /> > It appears that the gramps XML import currently requires that all > primary objects have a id attribute. This should not be required, and > could be fixed. If you are interested in this please post a bug issue > in the tracker with your sample XML file attached. I think I will, as I've worked quite a bit with XML syndication over the years. And having outside 'software' setting a DB id is not a good thing. I was sort of hoping that the GRAMPS xml format was sort of a syndication format. I could have created it as GEDCOM, but XML feels safer in a way, having used it since 1998. > You can of course just assign them a temp id, snd then adjust inside of > gramps. Eh, can't do that, as I'm going to import over 1000 names... > Another option is to use the Spreadsheet import which is designed to > allow what you are doing (eg, constructing data by hand to be > imported). See: > > http://www.gramps-project.org/wiki/index.php?title=Import_from_another_program#Spreadsheet_Import With over 1000 names with birth/baptism/death/burial events I don't think I like that road. The list I've got needs to be massaged by a good program, and a spreadsheet is not the tool of choice then, or at least not for me. > Hope that helps, Thank you for the help. -- Stein Erik Berget |
From: Doug B. <dou...@gm...> - 2010-07-24 12:48:38
|
On Fri, Jul 23, 2010 at 10:56 AM, jerome <rom...@ya...> wrote: >> Which 'date' object are we talking about here? Or if anyone >> have a example >> of a minimal XML file that can be imported. I don't want to >> add the id="" >> as I want GRAMPS to select that itself when importing. > > But you are forcing/setting the DB handler value! You could just make the id the same as the handle, and then reset the id's after you import. -Doug > You can see some samples on : > http://gramps.svn.sourceforge.net/viewvc/gramps/branches/maintenance/gramps32/example/gramps/ > http://gramps-project.org/wiki/index.php?title=Generate_XML#How_do_I_uncompress_the_file.3F > > > --- En date de : Ven 23.7.10, Stein Erik Berget <gr...@be...> a écrit : > >> De: Stein Erik Berget <gr...@be...> >> Objet: [Gramps-users] Importing GRAMPS xml >> À: "gra...@li..." <gra...@li...> >> Date: Vendredi 23 juillet 2010, 11h59 >> Hi! >> >> I'm trying to create a GRAMPS xml file to import into >> GRAMPS. Background: >> I've got a lot of stuff that I need to import that is not >> in any 'useful' >> format. I was then thinking of converting this into XML and >> import that >> into GRAMPS. I have created this file: >> >> >> <?xml version="1.0" encoding="UTF-8"?> >> <!DOCTYPE database PUBLIC "-//Gramps//DTD Gramps XML >> 1.3.0//EN" >> "http://gramps-project.org/xml/1.3.0/grampsxml.dtd"> >> >> <database xmlns="http://gramps-project.org/xml/1.3.0/"> >> <events> >> <event >> handle="event-776412720"> >> >> <type>Birth</type> >> <dateval >> val="1920-03-31" /> >> </event> >> <event >> handle="event-1057945868"> >> >> <type>Death</type> >> <dateval >> val="2004-12-12" /> >> </event> >> <event >> handle="event-1879089963"> >> >> <type>Burial</type> >> <dateval >> val="2004-12-20" /> >> </event> >> <event >> handle="event-977199748"> >> >> <type>Birth</type> >> <dateval >> val="1920-03-31" /> >> </event> >> </events> >> <people> >> <person >> handle="person-1106961350"> >> <name type="Birth >> Name"> >> >> <first>first</first> >> >> <last>last</last> >> </name> >> <eventref >> hlink="event-776412720" role="Primary"> >> </eventref> >> <eventref >> hlink="event-1057945868" role="Primary"> >> </eventref> >> <eventref >> hlink="event-1879089963" role="Primary"> >> </eventref> >> </person> >> <person >> handle="person-970495359"> >> <name type="Birth >> Name"> >> >> <first>second</first> >> >> <last>last</last> >> </name> >> <eventref >> hlink="event-977199748" role="Primary"> >> </eventref> >> </person> >> </people> >> </database> >> >> >> As a attempt in creating a minimal XML file, but this one >> does not import. >> It fails with this message: >> >> >> 304462: ERROR: dbloader.py: line 247: Failed to import >> database. >> Traceback (most recent call last): >> File "/usr/share/gramps/gui/dbloader.py", >> line 237, in do_import >> self._pulse_progress) >> File >> "/usr/share/gramps/plugins/import/ImportXml.py", line 119, >> in >> importData >> info = parser.parse(xml_file, >> line_cnt, person_cnt) >> File >> "/usr/share/gramps/plugins/import/ImportXml.py", line 749, >> in parse >> self.p.ParseFile(ifile) >> File >> "/usr/share/gramps/plugins/import/ImportXml.py", line 2349, >> in >> startElement >> f(attrs) >> File >> "/usr/share/gramps/plugins/import/ImportXml.py", line 1793, >> in >> start_dateval >> date_value = >> self.event.get_date_object() >> AttributeError: 'NoneType' object has no attribute >> 'get_date_object' >> >> Which 'date' object are we talking about here? Or if anyone >> have a example >> of a minimal XML file that can be imported. I don't want to >> add the id="" >> as I want GRAMPS to select that itself when importing. >> >> -- >> Stein Erik Berget >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> Gramps-users mailing list >> Gra...@li... >> https://lists.sourceforge.net/lists/listinfo/gramps-users >> > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Gramps-users mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-users > |
From: Stein E. B. <gr...@be...> - 2010-08-01 15:34:39
|
On Sat, 24 Jul 2010 14:48:31 +0200, Doug Blank <dou...@gm...> wrote: > On Fri, Jul 23, 2010 at 10:56 AM, jerome <rom...@ya...> wrote: >>> Which 'date' object are we talking about here? Or if anyone >>> have a example >>> of a minimal XML file that can be imported. I don't want to >>> add the id="" >>> as I want GRAMPS to select that itself when importing. >> >> But you are forcing/setting the DB handler value! > > You could just make the id the same as the handle, and then reset the > id's after you import. Did that and it worked like a charm. I don't like that my 'id's are in there, but that's probably not to avoid? -- Stein Erik Berget |