Chris@7: Chris@7: #include "TypeRegistrar.h" Chris@7: Chris@7: #include "Objects.h" Chris@7: Chris@7: #include Chris@7: #include Chris@7: #include Chris@7: #include Chris@7: Chris@7: using namespace Dataquay; Chris@7: Chris@7: namespace ClassicalData { Chris@7: Chris@7: TypeRegistrar::TypeRegistrar() Chris@7: { Chris@7: qRegisterMetaType Chris@7: ("ClassicalData::HistoricalEvent*"); Chris@7: qRegisterMetaType Chris@7: ("ClassicalData::Birth*"); Chris@7: qRegisterMetaType Chris@7: ("ClassicalData::Death*"); Chris@7: qRegisterMetaType Chris@7: ("ClassicalData::Composition*"); Chris@7: qRegisterMetaType Chris@7: ("ClassicalData::Work*"); Chris@7: qRegisterMetaType Chris@7: ("ClassicalData::Movement*"); Chris@7: qRegisterMetaType Chris@7: ("ClassicalData::Composer*"); Chris@7: qRegisterMetaType Chris@7: ("ClassicalData::Document*"); Chris@7: qRegisterMetaType
Chris@7: ("ClassicalData::Form*"); Chris@7: qRegisterMetaType > Chris@7: ("QSet"); Chris@7: qRegisterMetaType > Chris@7: ("QSet"); Chris@7: qRegisterMetaType > Chris@7: ("QSet"); Chris@7: qRegisterMetaType > Chris@7: ("QSet"); Chris@7: qRegisterMetaType > Chris@7: ("QSet"); Chris@7: qRegisterMetaType > Chris@7: ("QSet"); Chris@7: Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::HistoricalEvent*"); Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::Birth*"); Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::Death*"); Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::Composition*"); Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::Work*"); Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::Movement*"); Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::Composer*"); Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::Document*"); Chris@7: ObjectBuilder::getInstance()->registerClass Chris@7: ("ClassicalData::Form*"); Chris@7: Chris@7: ContainerBuilder::getInstance()->registerContainer Chris@7: > Chris@7: ("QString", "QSet", ContainerBuilder::SetKind); Chris@7: Chris@7: ContainerBuilder::getInstance()->registerContainer Chris@7: > Chris@7: ("QUrl", "QSet", ContainerBuilder::SetKind); Chris@7: Chris@7: ContainerBuilder::getInstance()->registerContainer Chris@7: > Chris@7: ("ClassicalData::Work*", "QSet", Chris@7: ContainerBuilder::SetKind); Chris@7: Chris@7: ContainerBuilder::getInstance()->registerContainer Chris@7: > Chris@7: ("ClassicalData::Movement*", "QSet", Chris@7: ContainerBuilder::SetKind); Chris@7: Chris@7: ContainerBuilder::getInstance()->registerContainer Chris@7: > Chris@7: ("ClassicalData::Document*", "QSet", Chris@7: ContainerBuilder::SetKind); Chris@7: Chris@7: ContainerBuilder::getInstance()->registerContainer Chris@7: > Chris@7: ("ClassicalData::Form*", "QSet", Chris@7: ContainerBuilder::SetKind); Chris@7: } Chris@7: Chris@7: void Chris@7: TypeRegistrar::addMappings(BasicStore *store, ObjectMapper *mapper) Chris@7: { Chris@7: store->addPrefix("foaf", "http://xmlns.com/foaf/0.1/"); Chris@7: store->addPrefix("mo", "http://purl.org/ontology/mo/"); Chris@7: store->addPrefix("dc", "http://purl.org/dc/elements/1.1/"); Chris@7: store->addPrefix("bio", "http://purl.org/vocab/bio/0.1/"); Chris@7: store->addPrefix("owl", "http://www.w3.org/2002/07/owl#"); Chris@7: store->addPrefix("rdfs", "http://www.w3.org/2000/01/rdf-schema#"); Chris@7: store->addPrefix("db", "http://dbtune.org/musicbrainz/resource/"); Chris@7: store->addPrefix("dbv", "http://dbtune.org/musicbrainz/resource/vocab/"); Chris@7: store->addPrefix("cmn", "http://purl.org/ontology/classicalmusicnav#"); Chris@7: store->addPrefix("sim", "http://purl.org/ontology/similarity/"); Chris@7: Chris@7: store->add(Triple("classical:Composer", "a", store->expand("owl:Class"))); Chris@7: store->add(Triple("classical:Composer", "rdfs:subClassOf", store->expand("mo:MusicArtist"))); Chris@7: Chris@7: store->add(Triple("property:birth", "a", store->expand("owl:ObjectProperty"))); Chris@7: store->add(Triple("property:birth", "rdfs:subPropertyOf", store->expand("bio:event"))); Chris@7: Chris@7: store->add(Triple("property:death", "a", store->expand("owl:ObjectProperty"))); Chris@7: store->add(Triple("property:death", "rdfs:subPropertyOf", store->expand("bio:event"))); Chris@7: Chris@7: mapper->setObjectTypePrefix("http://dbtune.org/classical/resource/"); Chris@7: mapper->setPropertyPrefix("http://dbtune.org/classical/resource/vocab/"); Chris@7: mapper->setRelationshipPrefix("http://dbtune.org/classical/resource/vocab/relationship/"); Chris@7: Chris@7: store->addPrefix("type", mapper->getObjectTypePrefix()); Chris@7: store->addPrefix("classical", mapper->getObjectTypePrefix() + "type/"); Chris@7: store->addPrefix("property", mapper->getPropertyPrefix()); Chris@7: store->addPrefix("rel", mapper->getRelationshipPrefix()); Chris@7: Chris@7: mapper->addTypeMapping("ClassicalData::Composer", "classical:Composer"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composer", "pages", "foaf:page"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composer", "name", "foaf:name"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composer", "aliases", "dbv:alias"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composer", "birth", "property:birth"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composer", "death", "property:death"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composer", "geonameURIs", "foaf:based_near"); Chris@7: Chris@7: mapper->addTypeMapping("ClassicalData::Birth", "bio:Birth"); Chris@7: mapper->addTypeMapping("ClassicalData::Death", "bio:Death"); Chris@7: mapper->addTypeUriPrefixMapping("ClassicalData::Birth", ":event/"); Chris@7: mapper->addTypeUriPrefixMapping("ClassicalData::Death", ":event/"); Chris@7: mapper->addPropertyMapping("ClassicalData::Birth", "year", "bio:date"); Chris@7: mapper->addPropertyMapping("ClassicalData::Death", "year", "bio:date"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composition", "year", "bio:date"); Chris@7: mapper->addPropertyMapping("ClassicalData::Birth", "place", "bio:place"); Chris@7: mapper->addPropertyMapping("ClassicalData::Death", "place", "bio:place"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composition", "place", "bio:place"); Chris@7: Chris@7: mapper->addTypeMapping("ClassicalData::Document", "foaf:Document"); Chris@7: mapper->addPropertyMapping("ClassicalData::Document", "topic", "foaf:primaryTopic"); Chris@7: Chris@7: mapper->addTypeMapping("ClassicalData::Work", "mo:MusicalWork"); Chris@7: Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "composition", "mo:composed_in"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "opus", "mo:opus"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "catalogue", "mo:catalogue"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "number", "mo:number"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "partOf", "dc:isPartOf"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "parts", "dc:hasPart"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "pages", "foaf:page"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "forms", "property:form"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "key", "mo:key"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "aliases", "dbv:alias"); Chris@7: mapper->addPropertyMapping("ClassicalData::Work", "name", "dc:title"); Chris@7: Chris@7: mapper->addTypeMapping("ClassicalData::Composition", "mo:Composition"); Chris@7: mapper->addTypeUriPrefixMapping("ClassicalData::Composition", ":event/"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composition", "composer", "mo:composer"); Chris@7: mapper->addPropertyMapping("ClassicalData::Composition", "works", "mo:produced_work"); Chris@7: } Chris@7: Chris@7: TypeRegistrar Chris@7: TypeRegistrar::m_instance; Chris@7: Chris@7: } Chris@7: