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@7
|
7 #include <dataquay/objectmapper/ObjectMapper.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@7
|
15 TypeRegistrar::TypeRegistrar()
|
Chris@7
|
16 {
|
Chris@7
|
17 qRegisterMetaType<HistoricalEvent *>
|
Chris@7
|
18 ("ClassicalData::HistoricalEvent*");
|
Chris@7
|
19 qRegisterMetaType<Birth *>
|
Chris@7
|
20 ("ClassicalData::Birth*");
|
Chris@7
|
21 qRegisterMetaType<Death *>
|
Chris@7
|
22 ("ClassicalData::Death*");
|
Chris@7
|
23 qRegisterMetaType<Composition *>
|
Chris@7
|
24 ("ClassicalData::Composition*");
|
Chris@7
|
25 qRegisterMetaType<Work *>
|
Chris@7
|
26 ("ClassicalData::Work*");
|
Chris@7
|
27 qRegisterMetaType<Movement *>
|
Chris@7
|
28 ("ClassicalData::Movement*");
|
Chris@7
|
29 qRegisterMetaType<Composer *>
|
Chris@7
|
30 ("ClassicalData::Composer*");
|
Chris@7
|
31 qRegisterMetaType<Document *>
|
Chris@7
|
32 ("ClassicalData::Document*");
|
Chris@7
|
33 qRegisterMetaType<Form *>
|
Chris@7
|
34 ("ClassicalData::Form*");
|
Chris@7
|
35 qRegisterMetaType<QSet<Work *> >
|
Chris@7
|
36 ("QSet<ClassicalData::Work*>");
|
Chris@7
|
37 qRegisterMetaType<QSet<Movement *> >
|
Chris@7
|
38 ("QSet<ClassicalData::Movement*>");
|
Chris@7
|
39 qRegisterMetaType<QSet<Document *> >
|
Chris@7
|
40 ("QSet<ClassicalData::Document*>");
|
Chris@7
|
41 qRegisterMetaType<QSet<Form *> >
|
Chris@7
|
42 ("QSet<ClassicalData::Form*>");
|
Chris@7
|
43 qRegisterMetaType<QSet<QString> >
|
Chris@7
|
44 ("QSet<QString>");
|
Chris@7
|
45 qRegisterMetaType<QSet<QUrl> >
|
Chris@7
|
46 ("QSet<QUrl>");
|
Chris@7
|
47
|
Chris@7
|
48 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
49 <HistoricalEvent>("ClassicalData::HistoricalEvent*");
|
Chris@7
|
50 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
51 <Birth>("ClassicalData::Birth*");
|
Chris@7
|
52 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
53 <Death>("ClassicalData::Death*");
|
Chris@7
|
54 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
55 <Composition>("ClassicalData::Composition*");
|
Chris@7
|
56 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
57 <Work, QObject>("ClassicalData::Work*");
|
Chris@7
|
58 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
59 <Movement, QObject>("ClassicalData::Movement*");
|
Chris@7
|
60 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
61 <Composer, QObject>("ClassicalData::Composer*");
|
Chris@7
|
62 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
63 <Document, QObject>("ClassicalData::Document*");
|
Chris@7
|
64 ObjectBuilder::getInstance()->registerClass
|
Chris@7
|
65 <Form, QObject>("ClassicalData::Form*");
|
Chris@7
|
66
|
Chris@7
|
67 ContainerBuilder::getInstance()->registerContainer
|
Chris@7
|
68 <QString, QSet<QString> >
|
Chris@7
|
69 ("QString", "QSet<QString>", ContainerBuilder::SetKind);
|
Chris@7
|
70
|
Chris@7
|
71 ContainerBuilder::getInstance()->registerContainer
|
Chris@7
|
72 <QUrl, QSet<QUrl> >
|
Chris@7
|
73 ("QUrl", "QSet<QUrl>", ContainerBuilder::SetKind);
|
Chris@7
|
74
|
Chris@7
|
75 ContainerBuilder::getInstance()->registerContainer
|
Chris@7
|
76 <Work*, QSet<Work*> >
|
Chris@7
|
77 ("ClassicalData::Work*", "QSet<ClassicalData::Work*>",
|
Chris@7
|
78 ContainerBuilder::SetKind);
|
Chris@7
|
79
|
Chris@7
|
80 ContainerBuilder::getInstance()->registerContainer
|
Chris@7
|
81 <Movement*, QSet<Movement*> >
|
Chris@7
|
82 ("ClassicalData::Movement*", "QSet<ClassicalData::Movement*>",
|
Chris@7
|
83 ContainerBuilder::SetKind);
|
Chris@7
|
84
|
Chris@7
|
85 ContainerBuilder::getInstance()->registerContainer
|
Chris@7
|
86 <Document*, QSet<Document*> >
|
Chris@7
|
87 ("ClassicalData::Document*", "QSet<ClassicalData::Document*>",
|
Chris@7
|
88 ContainerBuilder::SetKind);
|
Chris@7
|
89
|
Chris@7
|
90 ContainerBuilder::getInstance()->registerContainer
|
Chris@7
|
91 <Form*, QSet<Form*> >
|
Chris@7
|
92 ("ClassicalData::Form*", "QSet<ClassicalData::Form*>",
|
Chris@7
|
93 ContainerBuilder::SetKind);
|
Chris@7
|
94 }
|
Chris@7
|
95
|
Chris@7
|
96 void
|
Chris@7
|
97 TypeRegistrar::addMappings(BasicStore *store, ObjectMapper *mapper)
|
Chris@7
|
98 {
|
Chris@7
|
99 store->addPrefix("foaf", "http://xmlns.com/foaf/0.1/");
|
Chris@7
|
100 store->addPrefix("mo", "http://purl.org/ontology/mo/");
|
Chris@7
|
101 store->addPrefix("dc", "http://purl.org/dc/elements/1.1/");
|
Chris@7
|
102 store->addPrefix("bio", "http://purl.org/vocab/bio/0.1/");
|
Chris@7
|
103 store->addPrefix("owl", "http://www.w3.org/2002/07/owl#");
|
Chris@7
|
104 store->addPrefix("rdfs", "http://www.w3.org/2000/01/rdf-schema#");
|
Chris@7
|
105 store->addPrefix("db", "http://dbtune.org/musicbrainz/resource/");
|
Chris@7
|
106 store->addPrefix("dbv", "http://dbtune.org/musicbrainz/resource/vocab/");
|
Chris@7
|
107 store->addPrefix("cmn", "http://purl.org/ontology/classicalmusicnav#");
|
Chris@7
|
108 store->addPrefix("sim", "http://purl.org/ontology/similarity/");
|
Chris@7
|
109
|
Chris@7
|
110 store->add(Triple("classical:Composer", "a", store->expand("owl:Class")));
|
Chris@7
|
111 store->add(Triple("classical:Composer", "rdfs:subClassOf", store->expand("mo:MusicArtist")));
|
Chris@7
|
112
|
Chris@7
|
113 store->add(Triple("property:birth", "a", store->expand("owl:ObjectProperty")));
|
Chris@7
|
114 store->add(Triple("property:birth", "rdfs:subPropertyOf", store->expand("bio:event")));
|
Chris@7
|
115
|
Chris@7
|
116 store->add(Triple("property:death", "a", store->expand("owl:ObjectProperty")));
|
Chris@7
|
117 store->add(Triple("property:death", "rdfs:subPropertyOf", store->expand("bio:event")));
|
Chris@7
|
118
|
Chris@7
|
119 mapper->setObjectTypePrefix("http://dbtune.org/classical/resource/");
|
Chris@7
|
120 mapper->setPropertyPrefix("http://dbtune.org/classical/resource/vocab/");
|
Chris@7
|
121 mapper->setRelationshipPrefix("http://dbtune.org/classical/resource/vocab/relationship/");
|
Chris@7
|
122
|
Chris@7
|
123 store->addPrefix("type", mapper->getObjectTypePrefix());
|
Chris@7
|
124 store->addPrefix("classical", mapper->getObjectTypePrefix() + "type/");
|
Chris@7
|
125 store->addPrefix("property", mapper->getPropertyPrefix());
|
Chris@7
|
126 store->addPrefix("rel", mapper->getRelationshipPrefix());
|
Chris@7
|
127
|
Chris@7
|
128 mapper->addTypeMapping("ClassicalData::Composer", "classical:Composer");
|
Chris@7
|
129 mapper->addPropertyMapping("ClassicalData::Composer", "pages", "foaf:page");
|
Chris@7
|
130 mapper->addPropertyMapping("ClassicalData::Composer", "name", "foaf:name");
|
Chris@7
|
131 mapper->addPropertyMapping("ClassicalData::Composer", "aliases", "dbv:alias");
|
Chris@7
|
132 mapper->addPropertyMapping("ClassicalData::Composer", "birth", "property:birth");
|
Chris@7
|
133 mapper->addPropertyMapping("ClassicalData::Composer", "death", "property:death");
|
Chris@7
|
134 mapper->addPropertyMapping("ClassicalData::Composer", "geonameURIs", "foaf:based_near");
|
Chris@7
|
135
|
Chris@7
|
136 mapper->addTypeMapping("ClassicalData::Birth", "bio:Birth");
|
Chris@7
|
137 mapper->addTypeMapping("ClassicalData::Death", "bio:Death");
|
Chris@7
|
138 mapper->addTypeUriPrefixMapping("ClassicalData::Birth", ":event/");
|
Chris@7
|
139 mapper->addTypeUriPrefixMapping("ClassicalData::Death", ":event/");
|
Chris@7
|
140 mapper->addPropertyMapping("ClassicalData::Birth", "year", "bio:date");
|
Chris@7
|
141 mapper->addPropertyMapping("ClassicalData::Death", "year", "bio:date");
|
Chris@7
|
142 mapper->addPropertyMapping("ClassicalData::Composition", "year", "bio:date");
|
Chris@7
|
143 mapper->addPropertyMapping("ClassicalData::Birth", "place", "bio:place");
|
Chris@7
|
144 mapper->addPropertyMapping("ClassicalData::Death", "place", "bio:place");
|
Chris@7
|
145 mapper->addPropertyMapping("ClassicalData::Composition", "place", "bio:place");
|
Chris@7
|
146
|
Chris@7
|
147 mapper->addTypeMapping("ClassicalData::Document", "foaf:Document");
|
Chris@7
|
148 mapper->addPropertyMapping("ClassicalData::Document", "topic", "foaf:primaryTopic");
|
Chris@7
|
149
|
Chris@7
|
150 mapper->addTypeMapping("ClassicalData::Work", "mo:MusicalWork");
|
Chris@7
|
151
|
Chris@7
|
152 mapper->addPropertyMapping("ClassicalData::Work", "composition", "mo:composed_in");
|
Chris@7
|
153 mapper->addPropertyMapping("ClassicalData::Work", "opus", "mo:opus");
|
Chris@7
|
154 mapper->addPropertyMapping("ClassicalData::Work", "catalogue", "mo:catalogue");
|
Chris@7
|
155 mapper->addPropertyMapping("ClassicalData::Work", "number", "mo:number");
|
Chris@7
|
156 mapper->addPropertyMapping("ClassicalData::Work", "partOf", "dc:isPartOf");
|
Chris@7
|
157 mapper->addPropertyMapping("ClassicalData::Work", "parts", "dc:hasPart");
|
Chris@7
|
158 mapper->addPropertyMapping("ClassicalData::Work", "pages", "foaf:page");
|
Chris@7
|
159 mapper->addPropertyMapping("ClassicalData::Work", "forms", "property:form");
|
Chris@7
|
160 mapper->addPropertyMapping("ClassicalData::Work", "key", "mo:key");
|
Chris@7
|
161 mapper->addPropertyMapping("ClassicalData::Work", "aliases", "dbv:alias");
|
Chris@7
|
162 mapper->addPropertyMapping("ClassicalData::Work", "name", "dc:title");
|
Chris@7
|
163
|
Chris@7
|
164 mapper->addTypeMapping("ClassicalData::Composition", "mo:Composition");
|
Chris@7
|
165 mapper->addTypeUriPrefixMapping("ClassicalData::Composition", ":event/");
|
Chris@7
|
166 mapper->addPropertyMapping("ClassicalData::Composition", "composer", "mo:composer");
|
Chris@7
|
167 mapper->addPropertyMapping("ClassicalData::Composition", "works", "mo:produced_work");
|
Chris@7
|
168 }
|
Chris@7
|
169
|
Chris@7
|
170 TypeRegistrar
|
Chris@7
|
171 TypeRegistrar::m_instance;
|
Chris@7
|
172
|
Chris@7
|
173 }
|
Chris@7
|
174
|