Mercurial > hg > classical
diff import/Import.cpp @ 7:df999875c53b classical-rdf
* Test application for load/query (beginnings of)
author | Chris Cannam |
---|---|
date | Tue, 09 Feb 2010 17:33:39 +0000 |
parents | 96bf272e74c5 |
children | d35e5d769c87 |
line wrap: on
line diff
--- a/import/Import.cpp Fri Dec 11 18:05:51 2009 +0000 +++ b/import/Import.cpp Tue Feb 09 17:33:39 2010 +0000 @@ -17,6 +17,8 @@ #include "ImportWikipediaWorksList.h" #include "ImportHoboken.h" +#include "TypeRegistrar.h" + #include <dataquay/Debug.h> using namespace ClassicalData; @@ -522,37 +524,6 @@ int main(int argc, char **argv) { - qRegisterMetaType<HistoricalEvent *> - ("ClassicalData::HistoricalEvent*"); - qRegisterMetaType<Birth *> - ("ClassicalData::Birth*"); - qRegisterMetaType<Death *> - ("ClassicalData::Death*"); - qRegisterMetaType<Composition *> - ("ClassicalData::Composition*"); - qRegisterMetaType<Work *> - ("ClassicalData::Work*"); - qRegisterMetaType<Movement *> - ("ClassicalData::Movement*"); - qRegisterMetaType<Composer *> - ("ClassicalData::Composer*"); - qRegisterMetaType<Document *> - ("ClassicalData::Document*"); - qRegisterMetaType<Form *> - ("ClassicalData::Form*"); - qRegisterMetaType<QSet<Work *> > - ("QSet<ClassicalData::Work*>"); - qRegisterMetaType<QSet<Movement *> > - ("QSet<ClassicalData::Movement*>"); - qRegisterMetaType<QSet<Document *> > - ("QSet<ClassicalData::Document*>"); - qRegisterMetaType<QSet<Form *> > - ("QSet<ClassicalData::Form*>"); - qRegisterMetaType<QSet<QString> > - ("QSet<QString>"); - qRegisterMetaType<QSet<QUrl> > - ("QSet<QUrl>"); - qRegisterMetaType<ClassicalComposersOrgImporter *> ("ClassicalData::ClassicalComposersOrgImporter*"); qRegisterMetaType<ClassicalDotNetImporter *> @@ -571,25 +542,6 @@ ("ClassicalData::HobokenImporter*"); ObjectBuilder::getInstance()->registerClass - <HistoricalEvent>("ClassicalData::HistoricalEvent*"); - ObjectBuilder::getInstance()->registerClass - <Birth>("ClassicalData::Birth*"); - ObjectBuilder::getInstance()->registerClass - <Death>("ClassicalData::Death*"); - ObjectBuilder::getInstance()->registerClass - <Composition>("ClassicalData::Composition*"); - ObjectBuilder::getInstance()->registerClass - <Work, QObject>("ClassicalData::Work*"); - ObjectBuilder::getInstance()->registerClass - <Movement, QObject>("ClassicalData::Movement*"); - ObjectBuilder::getInstance()->registerClass - <Composer, QObject>("ClassicalData::Composer*"); - ObjectBuilder::getInstance()->registerClass - <Document, QObject>("ClassicalData::Document*"); - ObjectBuilder::getInstance()->registerClass - <Form, QObject>("ClassicalData::Form*"); - - ObjectBuilder::getInstance()->registerClass <ClassicalComposersOrgImporter>("ClassicalData::ClassicalComposersOrgImporter*"); ObjectBuilder::getInstance()->registerClass <ClassicalDotNetImporter>("ClassicalData::ClassicalDotNetImporter*"); @@ -606,34 +558,6 @@ ObjectBuilder::getInstance()->registerClass <HobokenImporter>("ClassicalData::HobokenImporter*"); - ContainerBuilder::getInstance()->registerContainer - <QString, QSet<QString> > - ("QString", "QSet<QString>", ContainerBuilder::SetKind); - - ContainerBuilder::getInstance()->registerContainer - <QUrl, QSet<QUrl> > - ("QUrl", "QSet<QUrl>", ContainerBuilder::SetKind); - - ContainerBuilder::getInstance()->registerContainer - <Work*, QSet<Work*> > - ("ClassicalData::Work*", "QSet<ClassicalData::Work*>", - ContainerBuilder::SetKind); - - ContainerBuilder::getInstance()->registerContainer - <Movement*, QSet<Movement*> > - ("ClassicalData::Movement*", "QSet<ClassicalData::Movement*>", - ContainerBuilder::SetKind); - - ContainerBuilder::getInstance()->registerContainer - <Document*, QSet<Document*> > - ("ClassicalData::Document*", "QSet<ClassicalData::Document*>", - ContainerBuilder::SetKind); - - ContainerBuilder::getInstance()->registerContainer - <Form*, QSet<Form*> > - ("ClassicalData::Form*", "QSet<ClassicalData::Form*>", - ContainerBuilder::SetKind); - BasicStore *store = BasicStore::load("file:importers.ttl"); ObjectMapper mapper(store); QObject *parentObject = mapper.loadAllObjects(new QObject()); @@ -642,80 +566,12 @@ outstore->setBaseUri("http://dbtune.org/classical/resource/"); ObjectMapper outmapper(outstore); + TypeRegistrar::addMappings(outstore, &outmapper); + outmapper.setPropertyStorePolicy(ObjectMapper::StoreIfChanged); outmapper.setObjectStorePolicy(ObjectMapper::StoreAllObjects); outmapper.setBlankNodePolicy(ObjectMapper::NoBlankNodes); - outmapper.setObjectTypePrefix("http://dbtune.org/classical/resource/"); - outmapper.setPropertyPrefix("http://dbtune.org/classical/resource/vocab/"); - outmapper.setRelationshipPrefix("http://dbtune.org/classical/resource/vocab/relationship/"); - - outstore->addPrefix("type", outmapper.getObjectTypePrefix()); - outstore->addPrefix("classical", outmapper.getObjectTypePrefix() + "type/"); - outstore->addPrefix("property", outmapper.getPropertyPrefix()); - outstore->addPrefix("rel", outmapper.getRelationshipPrefix()); - - outstore->addPrefix("foaf", "http://xmlns.com/foaf/0.1/"); - outstore->addPrefix("mo", "http://purl.org/ontology/mo/"); - outstore->addPrefix("dc", "http://purl.org/dc/elements/1.1/"); - outstore->addPrefix("bio", "http://purl.org/vocab/bio/0.1/"); - outstore->addPrefix("owl", "http://www.w3.org/2002/07/owl#"); - outstore->addPrefix("rdfs", "http://www.w3.org/2000/01/rdf-schema#"); - outstore->addPrefix("db", "http://dbtune.org/musicbrainz/resource/"); - outstore->addPrefix("dbv", "http://dbtune.org/musicbrainz/resource/vocab/"); - outstore->addPrefix("cmn", "http://purl.org/ontology/classicalmusicnav#"); - outstore->addPrefix("sim", "http://purl.org/ontology/similarity/"); - - outmapper.addTypeMapping("ClassicalData::Composer", "classical:Composer"); - outmapper.addPropertyMapping("ClassicalData::Composer", "pages", "foaf:page"); - outmapper.addPropertyMapping("ClassicalData::Composer", "name", "foaf:name"); - outmapper.addPropertyMapping("ClassicalData::Composer", "aliases", "dbv:alias"); - outmapper.addPropertyMapping("ClassicalData::Composer", "birth", "property:birth"); - outmapper.addPropertyMapping("ClassicalData::Composer", "death", "property:death"); - outmapper.addPropertyMapping("ClassicalData::Composer", "geonameURIs", "foaf:based_near"); - - outmapper.addTypeMapping("ClassicalData::Birth", "bio:Birth"); - outmapper.addTypeMapping("ClassicalData::Death", "bio:Death"); - outmapper.addTypeUriPrefixMapping("ClassicalData::Birth", ":event/"); - outmapper.addTypeUriPrefixMapping("ClassicalData::Death", ":event/"); - outmapper.addPropertyMapping("ClassicalData::Birth", "year", "bio:date"); - outmapper.addPropertyMapping("ClassicalData::Death", "year", "bio:date"); - outmapper.addPropertyMapping("ClassicalData::Composition", "year", "bio:date"); - outmapper.addPropertyMapping("ClassicalData::Birth", "place", "bio:place"); - outmapper.addPropertyMapping("ClassicalData::Death", "place", "bio:place"); - outmapper.addPropertyMapping("ClassicalData::Composition", "place", "bio:place"); - - outmapper.addTypeMapping("ClassicalData::Document", "foaf:Document"); - outmapper.addPropertyMapping("ClassicalData::Document", "topic", "foaf:primaryTopic"); - - outmapper.addTypeMapping("ClassicalData::Work", "mo:MusicalWork"); - - outmapper.addPropertyMapping("ClassicalData::Work", "composition", "mo:composed_in"); - outmapper.addPropertyMapping("ClassicalData::Work", "opus", "mo:opus"); - outmapper.addPropertyMapping("ClassicalData::Work", "catalogue", "mo:catalogue"); - outmapper.addPropertyMapping("ClassicalData::Work", "number", "mo:number"); - outmapper.addPropertyMapping("ClassicalData::Work", "partOf", "dc:isPartOf"); - outmapper.addPropertyMapping("ClassicalData::Work", "parts", "dc:hasPart"); - outmapper.addPropertyMapping("ClassicalData::Work", "pages", "foaf:page"); - outmapper.addPropertyMapping("ClassicalData::Work", "forms", "property:form"); - outmapper.addPropertyMapping("ClassicalData::Work", "key", "mo:key"); - outmapper.addPropertyMapping("ClassicalData::Work", "aliases", "dbv:alias"); - outmapper.addPropertyMapping("ClassicalData::Work", "name", "dc:title"); - - outmapper.addTypeMapping("ClassicalData::Composition", "mo:Composition"); - outmapper.addTypeUriPrefixMapping("ClassicalData::Composition", ":event/"); - outmapper.addPropertyMapping("ClassicalData::Composition", "composer", "mo:composer"); - outmapper.addPropertyMapping("ClassicalData::Composition", "works", "mo:produced_work"); - - outstore->add(Triple("classical:Composer", "a", outstore->expand("owl:Class"))); - outstore->add(Triple("classical:Composer", "rdfs:subClassOf", outstore->expand("mo:MusicArtist"))); - - outstore->add(Triple("property:birth", "a", outstore->expand("owl:ObjectProperty"))); - outstore->add(Triple("property:birth", "rdfs:subPropertyOf", outstore->expand("bio:event"))); - - outstore->add(Triple("property:death", "a", outstore->expand("owl:ObjectProperty"))); - outstore->add(Triple("property:death", "rdfs:subPropertyOf", outstore->expand("bio:event"))); - QList<Importer *> importers = parentObject->findChildren<Importer *>(); std::cerr << "have " << importers.size() << " importers" << std::endl;