annotate common/TypeRegistrar.cpp @ 53:bcea875d8d2f tip

More build fixes
author Chris Cannam
date Thu, 16 Oct 2014 19:03:51 +0100
parents e0e12bd2978d
children
rev   line source
Chris@7 1
Chris@7 2 #include "TypeRegistrar.h"
Chris@7 3
Chris@7 4 #include "Objects.h"
Chris@7 5
Chris@7 6 #include <dataquay/BasicStore.h>
Chris@28 7 #include <dataquay/objectmapper/TypeMapping.h>
Chris@7 8 #include <dataquay/objectmapper/ObjectBuilder.h>
Chris@7 9 #include <dataquay/objectmapper/ContainerBuilder.h>
Chris@7 10
Chris@7 11 using namespace Dataquay;
Chris@7 12
Chris@7 13 namespace ClassicalData {
Chris@7 14
Chris@22 15 void
Chris@22 16 TypeRegistrar::registerTypes()
Chris@7 17 {
Chris@21 18 qRegisterMetaType<Year>
Chris@21 19 ("ClassicalData::Year");
Chris@7 20 qRegisterMetaType<HistoricalEvent *>
Chris@7 21 ("ClassicalData::HistoricalEvent*");
Chris@7 22 qRegisterMetaType<Birth *>
Chris@7 23 ("ClassicalData::Birth*");
Chris@7 24 qRegisterMetaType<Death *>
Chris@7 25 ("ClassicalData::Death*");
Chris@7 26 qRegisterMetaType<Composition *>
Chris@7 27 ("ClassicalData::Composition*");
Chris@7 28 qRegisterMetaType<Work *>
Chris@7 29 ("ClassicalData::Work*");
Chris@7 30 qRegisterMetaType<Movement *>
Chris@7 31 ("ClassicalData::Movement*");
Chris@7 32 qRegisterMetaType<Composer *>
Chris@7 33 ("ClassicalData::Composer*");
Chris@7 34 qRegisterMetaType<Document *>
Chris@7 35 ("ClassicalData::Document*");
Chris@7 36 qRegisterMetaType<Form *>
Chris@7 37 ("ClassicalData::Form*");
Chris@7 38 qRegisterMetaType<QSet<Work *> >
Chris@7 39 ("QSet<ClassicalData::Work*>");
Chris@7 40 qRegisterMetaType<QSet<Movement *> >
Chris@7 41 ("QSet<ClassicalData::Movement*>");
Chris@7 42 qRegisterMetaType<QSet<Document *> >
Chris@7 43 ("QSet<ClassicalData::Document*>");
Chris@7 44 qRegisterMetaType<QSet<Form *> >
Chris@7 45 ("QSet<ClassicalData::Form*>");
Chris@7 46 qRegisterMetaType<QSet<QString> >
Chris@7 47 ("QSet<QString>");
Chris@18 48 qRegisterMetaType<QSet<Dataquay::Uri> >
Chris@18 49 ("QSet<Dataquay::Uri>");
Chris@48 50 qRegisterMetaType<AudioFileTag *>
Chris@48 51 ("ClassicalData::AudioFileTag*");
Chris@48 52 qRegisterMetaType<QSet<AudioFileTag *> >
Chris@48 53 ("QSet<ClassicalData::AudioFileTag*>");
Chris@45 54 qRegisterMetaType<AudioFile *>
Chris@45 55 ("ClassicalData::AudioFile*");
Chris@45 56 qRegisterMetaType<QSet<AudioFile *> >
Chris@45 57 ("QSet<ClassicalData::AudioFile*>");
Chris@45 58 qRegisterMetaType<Signal *>
Chris@45 59 ("ClassicalData::Signal*");
Chris@7 60
Chris@21 61 Node::registerDatatype(Uri("http://www.w3.org/2001/XMLSchema#gYear"),
Chris@21 62 "ClassicalData::Year", new Year::Encoder());
Chris@21 63
Chris@7 64 ObjectBuilder::getInstance()->registerClass
Chris@7 65 <HistoricalEvent>("ClassicalData::HistoricalEvent*");
Chris@7 66 ObjectBuilder::getInstance()->registerClass
Chris@7 67 <Birth>("ClassicalData::Birth*");
Chris@7 68 ObjectBuilder::getInstance()->registerClass
Chris@7 69 <Death>("ClassicalData::Death*");
Chris@7 70 ObjectBuilder::getInstance()->registerClass
Chris@7 71 <Composition>("ClassicalData::Composition*");
Chris@7 72 ObjectBuilder::getInstance()->registerClass
Chris@7 73 <Work, QObject>("ClassicalData::Work*");
Chris@7 74 ObjectBuilder::getInstance()->registerClass
Chris@7 75 <Movement, QObject>("ClassicalData::Movement*");
Chris@7 76 ObjectBuilder::getInstance()->registerClass
Chris@7 77 <Composer, QObject>("ClassicalData::Composer*");
Chris@7 78 ObjectBuilder::getInstance()->registerClass
Chris@7 79 <Document, QObject>("ClassicalData::Document*");
Chris@7 80 ObjectBuilder::getInstance()->registerClass
Chris@7 81 <Form, QObject>("ClassicalData::Form*");
Chris@45 82 ObjectBuilder::getInstance()->registerClass
Chris@48 83 <AudioFileTag>("ClassicalData::AudioFileTag*");
Chris@48 84 ObjectBuilder::getInstance()->registerClass
Chris@45 85 <AudioFile>("ClassicalData::AudioFile*");
Chris@7 86
Chris@7 87 ContainerBuilder::getInstance()->registerContainer
Chris@7 88 <QString, QSet<QString> >
Chris@7 89 ("QString", "QSet<QString>", ContainerBuilder::SetKind);
Chris@7 90
Chris@7 91 ContainerBuilder::getInstance()->registerContainer
Chris@18 92 <Dataquay::Uri, QSet<Dataquay::Uri> >
Chris@18 93 ("Dataquay::Uri", "QSet<Dataquay::Uri>", ContainerBuilder::SetKind);
Chris@7 94
Chris@7 95 ContainerBuilder::getInstance()->registerContainer
Chris@7 96 <Work*, QSet<Work*> >
Chris@7 97 ("ClassicalData::Work*", "QSet<ClassicalData::Work*>",
Chris@7 98 ContainerBuilder::SetKind);
Chris@7 99
Chris@7 100 ContainerBuilder::getInstance()->registerContainer
Chris@7 101 <Movement*, QSet<Movement*> >
Chris@7 102 ("ClassicalData::Movement*", "QSet<ClassicalData::Movement*>",
Chris@7 103 ContainerBuilder::SetKind);
Chris@7 104
Chris@7 105 ContainerBuilder::getInstance()->registerContainer
Chris@7 106 <Document*, QSet<Document*> >
Chris@7 107 ("ClassicalData::Document*", "QSet<ClassicalData::Document*>",
Chris@7 108 ContainerBuilder::SetKind);
Chris@7 109
Chris@7 110 ContainerBuilder::getInstance()->registerContainer
Chris@7 111 <Form*, QSet<Form*> >
Chris@7 112 ("ClassicalData::Form*", "QSet<ClassicalData::Form*>",
Chris@7 113 ContainerBuilder::SetKind);
Chris@45 114
Chris@45 115 ContainerBuilder::getInstance()->registerContainer
Chris@48 116 <AudioFileTag*, QSet<AudioFileTag*> >
Chris@48 117 ("ClassicalData::AudioFileTag*", "QSet<ClassicalData::AudioFileTag*>",
Chris@48 118 ContainerBuilder::SetKind);
Chris@48 119
Chris@48 120 ContainerBuilder::getInstance()->registerContainer
Chris@45 121 <AudioFile*, QSet<AudioFile*> >
Chris@45 122 ("ClassicalData::AudioFile*", "QSet<ClassicalData::AudioFile*>",
Chris@45 123 ContainerBuilder::SetKind);
Chris@7 124 }
Chris@7 125
Chris@7 126 void
Chris@28 127 TypeRegistrar::addMappings(BasicStore *store, TypeMapping *mapping)
Chris@7 128 {
Chris@25 129 if (store) {
Chris@25 130 store->addPrefix("foaf", Uri("http://xmlns.com/foaf/0.1/"));
Chris@25 131 store->addPrefix("mo", Uri("http://purl.org/ontology/mo/"));
Chris@25 132 store->addPrefix("dc", Uri("http://purl.org/dc/elements/1.1/"));
Chris@25 133 store->addPrefix("bio", Uri("http://purl.org/vocab/bio/0.1/"));
Chris@25 134 store->addPrefix("owl", Uri("http://www.w3.org/2002/07/owl#"));
Chris@25 135 store->addPrefix("rdfs", Uri("http://www.w3.org/2000/01/rdf-schema#"));
Chris@25 136 store->addPrefix("db", Uri("http://dbtune.org/musicbrainz/resource/"));
Chris@25 137 store->addPrefix("dbv", Uri("http://dbtune.org/musicbrainz/resource/vocab/"));
Chris@25 138 store->addPrefix("cmn", Uri("http://purl.org/ontology/classicalmusicnav#"));
Chris@25 139 store->addPrefix("sim", Uri("http://purl.org/ontology/similarity/"));
Chris@25 140 }
Chris@7 141
Chris@28 142 if (mapping) {
Chris@28 143 mapping->setObjectTypePrefix(Uri("http://dbtune.org/classical/resource/"));
Chris@28 144 mapping->setPropertyPrefix(Uri("http://dbtune.org/classical/resource/vocab/"));
Chris@28 145 mapping->setRelationshipPrefix(Uri("http://dbtune.org/classical/resource/vocab/relationship/"));
Chris@25 146 }
Chris@21 147
Chris@43 148 if (store && mapping) {
Chris@43 149
Chris@28 150 store->addPrefix("type", mapping->getObjectTypePrefix());
Chris@28 151 store->addPrefix("classical", Uri(mapping->getObjectTypePrefix().toString() + "type/"));
Chris@28 152 store->addPrefix("property", mapping->getPropertyPrefix());
Chris@28 153 store->addPrefix("rel", mapping->getRelationshipPrefix());
Chris@7 154
Chris@52 155 store->add(Triple(store->expand("classical:Composer"), store->expand("a"), store->expand("owl:Class")));
Chris@52 156 store->add(Triple(store->expand("classical:Composer"), store->expand("rdfs:subClassOf"), store->expand("mo:MusicArtist")));
Chris@7 157
Chris@52 158 store->add(Triple(store->expand("property:birth"), store->expand("a"), store->expand("owl:ObjectProperty")));
Chris@52 159 store->add(Triple(store->expand("property:birth"), store->expand("rdfs:subPropertyOf"), store->expand("bio:event")));
Chris@7 160
Chris@52 161 store->add(Triple(store->expand("property:death"), store->expand("a"), store->expand("owl:ObjectProperty")));
Chris@52 162 store->add(Triple(store->expand("property:death"), store->expand("rdfs:subPropertyOf"), store->expand("bio:event")));
Chris@7 163
Chris@28 164 mapping->addTypeMapping("ClassicalData::Composer", store->expand("classical:Composer"));
Chris@28 165 mapping->addPropertyMapping("ClassicalData::Composer", "pages", store->expand("foaf:page"));
Chris@28 166 mapping->addPropertyMapping("ClassicalData::Composer", "name", store->expand("foaf:name"));
Chris@28 167 mapping->addPropertyMapping("ClassicalData::Composer", "aliases", store->expand("dbv:alias"));
Chris@28 168 mapping->addPropertyMapping("ClassicalData::Composer", "birth", store->expand("property:birth"));
Chris@28 169 mapping->addPropertyMapping("ClassicalData::Composer", "death", store->expand("property:death"));
Chris@28 170 mapping->addPropertyMapping("ClassicalData::Composer", "geonameURIs", store->expand("foaf:based_near"));
Chris@28 171 mapping->addPropertyMapping("ClassicalData::Composer", "otherURIs", store->expand("owl:sameAs"));
Chris@28 172 mapping->addPropertyMapping("ClassicalData::Composer", "gender", store->expand("foaf:gender"));
Chris@7 173
Chris@28 174 mapping->addTypeMapping("ClassicalData::Birth", store->expand("bio:Birth"));
Chris@28 175 mapping->addTypeMapping("ClassicalData::Death", store->expand("bio:Death"));
Chris@28 176 mapping->addTypeUriPrefixMapping("ClassicalData::Birth", store->expand(":event/"));
Chris@28 177 mapping->addTypeUriPrefixMapping("ClassicalData::Death", store->expand(":event/"));
Chris@28 178 mapping->addPropertyMapping("ClassicalData::Birth", "year", store->expand("dc:date"));
Chris@28 179 mapping->addPropertyMapping("ClassicalData::Death", "year", store->expand("dc:date"));
Chris@28 180 mapping->addPropertyMapping("ClassicalData::Composition", "year", store->expand("dc:date"));
Chris@28 181 mapping->addPropertyMapping("ClassicalData::Birth", "place", store->expand("bio:place"));
Chris@28 182 mapping->addPropertyMapping("ClassicalData::Death", "place", store->expand("bio:place"));
Chris@28 183 mapping->addPropertyMapping("ClassicalData::Composition", "place", store->expand("bio:place"));
Chris@7 184
Chris@28 185 mapping->addTypeMapping("ClassicalData::Document", store->expand("foaf:Document"));
Chris@28 186 mapping->addPropertyMapping("ClassicalData::Document", "topic", store->expand("foaf:primaryTopic"));
Chris@7 187
Chris@28 188 mapping->addTypeMapping("ClassicalData::Work", store->expand("mo:MusicalWork"));
Chris@7 189
Chris@28 190 mapping->addPropertyMapping("ClassicalData::Work", "composition", store->expand("mo:composed_in"));
Chris@28 191 mapping->addPropertyMapping("ClassicalData::Work", "opus", store->expand("mo:opus"));
Chris@28 192 mapping->addPropertyMapping("ClassicalData::Work", "catalogue", store->expand("mo:catalogue"));
Chris@28 193 mapping->addPropertyMapping("ClassicalData::Work", "number", store->expand("mo:number"));
Chris@28 194 mapping->addPropertyMapping("ClassicalData::Work", "partOf", store->expand("dc:isPartOf"));
Chris@28 195 mapping->addPropertyMapping("ClassicalData::Work", "parts", store->expand("dc:hasPart"));
Chris@28 196 mapping->addPropertyMapping("ClassicalData::Work", "pages", store->expand("foaf:page"));
Chris@28 197 mapping->addPropertyMapping("ClassicalData::Work", "forms", store->expand("property:form"));
Chris@28 198 mapping->addPropertyMapping("ClassicalData::Work", "key", store->expand("mo:key"));
Chris@28 199 mapping->addPropertyMapping("ClassicalData::Work", "aliases", store->expand("dbv:alias"));
Chris@28 200 mapping->addPropertyMapping("ClassicalData::Work", "name", store->expand("dc:title"));
Chris@25 201
Chris@28 202 mapping->addTypeMapping("ClassicalData::Composition", store->expand("mo:Composition"));
Chris@28 203 mapping->addTypeUriPrefixMapping("ClassicalData::Composition", store->expand(":event/"));
Chris@28 204 mapping->addPropertyMapping("ClassicalData::Composition", "composer", store->expand("mo:composer"));
Chris@28 205 mapping->addPropertyMapping("ClassicalData::Composition", "works", store->expand("mo:produced_work"));
Chris@44 206
Chris@48 207 mapping->addTypeMapping("ClassicalData::AudioFileTag", store->expand("classical:AudioFileTag"));
Chris@48 208
Chris@45 209 mapping->addTypeMapping("ClassicalData::AudioFile", store->expand("mo:AudioFile"));
Chris@45 210 mapping->addPropertyMapping("ClassicalData::AudioFile", "hash", store->expand("foaf:sha1"));
Chris@45 211
Chris@45 212 mapping->addTypeMapping("ClassicalData::Signal", store->expand("mo:Signal"));
Chris@45 213 mapping->addPropertyMapping("ClassicalData::Signal", "availableAs", store->expand("mo:available_as"));
Chris@45 214 mapping->addPropertyMapping("ClassicalData::Signal", "puid", store->expand("mo:puid"));
Chris@45 215 mapping->addPropertyMapping("ClassicalData::Signal", "composer", store->expand("mo:composer"));
Chris@45 216 mapping->addPropertyMapping("ClassicalData::Signal", "work", store->expand("mo:"));
Chris@45 217 mapping->addPropertyMapping("ClassicalData::Signal", "availableAs", store->expand("mo:available_as"));
Chris@25 218 }
Chris@7 219 }
Chris@7 220
Chris@7 221 }
Chris@7 222