Mercurial > hg > classical
changeset 26:bff0ee472a7f classical-rdf
* another checkpoint... still some troubles here though
author | Chris Cannam |
---|---|
date | Fri, 26 Feb 2010 18:10:26 +0000 |
parents | e856df83c57f |
children | e8160a2d8b28 |
files | common/Objects.cpp common/Objects.h common/TypeRegistrar.cpp utilities/composer/composer.cpp utilities/composer/merges-to-do |
diffstat | 5 files changed, 76 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/common/Objects.cpp Fri Feb 26 16:39:16 2010 +0000 +++ b/common/Objects.cpp Fri Feb 26 18:10:26 2010 +0000 @@ -571,7 +571,14 @@ m_nationality.unite(c->nationality()); m_geonameURIs.unite(c->geonameURIs()); m_otherURIs.unite(c->otherURIs()); - m_pages.unite(c->pages()); + + foreach (Document *d, c->pages()) { + Document *dd = new Document; + dd->setUri(d->uri()); + dd->setSiteName(dd->siteName()); + dd->setTopic(this); + m_pages.insert(dd); + } if (m_period == "") m_period = c->period(); if (m_remarks == "") m_remarks = c->remarks();
--- a/common/Objects.h Fri Feb 26 16:39:16 2010 +0000 +++ b/common/Objects.h Fri Feb 26 18:10:26 2010 +0000 @@ -20,6 +20,8 @@ namespace ClassicalData { +//!!! need to review ownership more carefully -- and use deletion notify signals? + class Year { public: @@ -141,7 +143,7 @@ QString siteName() const { return m_siteName; } void setSiteName(QString n) { m_siteName = n; } - QObject *topic() const { return m_topic; } + QObject *topic() const { return m_topic; } // I don't own this void setTopic(QObject *t) { m_topic = t; } private: @@ -163,6 +165,12 @@ public: NamedEntity(QObject *parent = 0) : QObject(parent) { } + ~NamedEntity() { + for (QSet<Document *>::iterator i = m_pages.begin(); + i != m_pages.end(); ++i) { + delete *i; + } + } QString name() const { return m_name; } virtual void setName(QString n) { m_name = n; } @@ -176,7 +184,13 @@ QSet<Document *> pages() const { return m_pages; } void addPage(Document *p) { m_pages.insert(p); } - void setPages(QSet<Document *> p) { m_pages = p; } //!!! destroy old ones? do we own? + void setPages(QSet<Document *> p) { + for (QSet<Document *>::iterator i = m_pages.begin(); + i != m_pages.end(); ++i) { + delete *i; + } + m_pages = p; + } QSet<Dataquay::Uri> otherURIs() const { return m_otherURIs; } void addOtherURI(Dataquay::Uri u) { m_otherURIs.insert(u); } @@ -186,7 +200,7 @@ QString m_name; QString m_remarks; QSet<QString> m_aliases; - QSet<Document *> m_pages; + QSet<Document *> m_pages; // we own these QSet<Dataquay::Uri> m_otherURIs; };
--- a/common/TypeRegistrar.cpp Fri Feb 26 16:39:16 2010 +0000 +++ b/common/TypeRegistrar.cpp Fri Feb 26 18:10:26 2010 +0000 @@ -146,6 +146,7 @@ mapper->addPropertyMapping("ClassicalData::Composer", "death", "property:death"); mapper->addPropertyMapping("ClassicalData::Composer", "geonameURIs", "foaf:based_near"); mapper->addPropertyMapping("ClassicalData::Composer", "otherURIs", "owl:sameAs"); + mapper->addPropertyMapping("ClassicalData::Composer", "gender", "foaf:gender"); mapper->addTypeMapping("ClassicalData::Birth", "bio:Birth"); mapper->addTypeMapping("ClassicalData::Death", "bio:Death");
--- a/utilities/composer/composer.cpp Fri Feb 26 16:39:16 2010 +0000 +++ b/utilities/composer/composer.cpp Fri Feb 26 18:10:26 2010 +0000 @@ -257,7 +257,7 @@ } void -merge(Composer *target, QList<Composer *> sources) +merge(Composer *target, QList<Composer *> sources, BasicStore *store) { cout << "Merging into this composer record:" << endl << endl; show(target); @@ -266,6 +266,41 @@ cout << endl; show(c); target->mergeFrom(c); + + QSet<Work *> works = worksMap[c]; + foreach (Work *w, works) { + w->composition()->setComposer(target); + } + worksMap[target].unite(works); + worksMap.remove(c); + + // rub out the old composer -- we don't have a neat way to do this yet + if (store) { + if (c->birth()) { + Triple bt(c->birth()->property("uri").value<Uri>(), Node(), Node()); + if (bt.a.value != "") { + cout << "removing for " << bt.a.value.toStdString() << endl; + store->remove(bt); + } + } + if (c->death()) { + Triple dt(c->death()->property("uri").value<Uri>(), Node(), Node()); + if (dt.a.value != "") { + cout << "removing for " << dt.a.value.toStdString() << endl; + store->remove(dt); + } + } + Triple t(c->property("uri").value<Uri>(), Node(), Node()); + if (t.a.value != "") { + cout << "removing for " << t.a.value.toStdString() << endl; + store->remove(t); + } + } + delete c->birth(); + delete c->death(); + delete c; + + //!!! and composition events! } cout << endl << "Result after merging:" << endl << endl;; show(target); @@ -344,7 +379,7 @@ if (!c) return 1; sources.push_back(c); } - merge(target, sources); + merge(target, sources, store); write = true; } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/utilities/composer/merges-to-do Fri Feb 26 18:10:26 2010 +0000 @@ -0,0 +1,13 @@ +./merge.sh http://dbtune.org/classical/resource/composer/muffat_georg http://dbtune.org/classical/resource/composer/muffat_george +./merge.sh http://dbtune.org/classical/resource/composer/morthenson_jan_w http://dbtune.org/classical/resource/composer/mortheson_jan +./merge.sh http://dbtune.org/classical/resource/composer/moscheles_ignaz http://dbtune.org/classical/resource/composer/moscheles_ignace +./merge.sh http://dbtune.org/classical/resource/composer/paderewski_ignace_jan http://dbtune.org/classical/resource/composer/paderewski_ignacy +./merge.sh http://dbtune.org/classical/resource/composer/paladino_giovanni_paolo http://dbtune.org/classical/resource/composer/paladini_giovanni_paolo +./merge.sh http://dbtune.org/classical/resource/composer/paradisi_pietro_domenico http://dbtune.org/classical/resource/composer/paradies_domenico +./merge.sh http://dbtune.org/classical/resource/composer/nascimbeni_maria_francesca http://dbtune.org/classical/resource/composer/nascinbeni_maria_francesca +./merge.sh http://dbtune.org/classical/resource/composer/neusiedler_hans http://dbtune.org/classical/resource/composer/neusidler_hans +./merge.sh http://dbtune.org/classical/resource/composer/nin_y_castellanos_joaquin http://dbtune.org/classical/resource/composer/nin_joaquin +./merge.sh http://dbtune.org/classical/resource/composer/nola_giovanni_domenico_da http://dbtune.org/classical/resource/composer/da_nola_giovanni +./merge.sh http://dbtune.org/classical/resource/composer/nrgard_per http://dbtune.org/classical/resource/composer/norgard_per +./merge.sh http://dbtune.org/classical/resource/composer/novak_vitezslav__2 http://dbtune.org/classical/resource/composer/novak_vitezslav +./merge.sh http://dbtune.org/classical/resource/composer/nrholm_ib__2 http://dbtune.org/classical/resource/composer/nrholm_ib