Chris@7: Chris@7: #include "TypeRegistrar.h" Chris@7: Chris@7: #include "Objects.h" Chris@7: Chris@7: #include Chris@28: #include Chris@7: #include Chris@7: #include Chris@7: Chris@7: using namespace Dataquay; Chris@7: Chris@7: namespace ClassicalData { Chris@7: Chris@22: void Chris@22: TypeRegistrar::registerTypes() Chris@7: { Chris@21: qRegisterMetaType Chris@21: ("ClassicalData::Year"); 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@18: qRegisterMetaType > Chris@18: ("QSet"); Chris@48: qRegisterMetaType Chris@48: ("ClassicalData::AudioFileTag*"); Chris@48: qRegisterMetaType > Chris@48: ("QSet"); Chris@45: qRegisterMetaType Chris@45: ("ClassicalData::AudioFile*"); Chris@45: qRegisterMetaType > Chris@45: ("QSet"); Chris@45: qRegisterMetaType Chris@45: ("ClassicalData::Signal*"); Chris@7: Chris@21: Node::registerDatatype(Uri("http://www.w3.org/2001/XMLSchema#gYear"), Chris@21: "ClassicalData::Year", new Year::Encoder()); Chris@21: 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@45: ObjectBuilder::getInstance()->registerClass Chris@48: ("ClassicalData::AudioFileTag*"); Chris@48: ObjectBuilder::getInstance()->registerClass Chris@45: ("ClassicalData::AudioFile*"); Chris@7: Chris@7: ContainerBuilder::getInstance()->registerContainer Chris@7: > Chris@7: ("QString", "QSet", ContainerBuilder::SetKind); Chris@7: Chris@7: ContainerBuilder::getInstance()->registerContainer Chris@18: > Chris@18: ("Dataquay::Uri", "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@45: Chris@45: ContainerBuilder::getInstance()->registerContainer Chris@48: > Chris@48: ("ClassicalData::AudioFileTag*", "QSet", Chris@48: ContainerBuilder::SetKind); Chris@48: Chris@48: ContainerBuilder::getInstance()->registerContainer Chris@45: > Chris@45: ("ClassicalData::AudioFile*", "QSet", Chris@45: ContainerBuilder::SetKind); Chris@7: } Chris@7: Chris@7: void Chris@28: TypeRegistrar::addMappings(BasicStore *store, TypeMapping *mapping) Chris@7: { Chris@25: if (store) { Chris@25: store->addPrefix("foaf", Uri("http://xmlns.com/foaf/0.1/")); Chris@25: store->addPrefix("mo", Uri("http://purl.org/ontology/mo/")); Chris@25: store->addPrefix("dc", Uri("http://purl.org/dc/elements/1.1/")); Chris@25: store->addPrefix("bio", Uri("http://purl.org/vocab/bio/0.1/")); Chris@25: store->addPrefix("owl", Uri("http://www.w3.org/2002/07/owl#")); Chris@25: store->addPrefix("rdfs", Uri("http://www.w3.org/2000/01/rdf-schema#")); Chris@25: store->addPrefix("db", Uri("http://dbtune.org/musicbrainz/resource/")); Chris@25: store->addPrefix("dbv", Uri("http://dbtune.org/musicbrainz/resource/vocab/")); Chris@25: store->addPrefix("cmn", Uri("http://purl.org/ontology/classicalmusicnav#")); Chris@25: store->addPrefix("sim", Uri("http://purl.org/ontology/similarity/")); Chris@25: } Chris@7: Chris@28: if (mapping) { Chris@28: mapping->setObjectTypePrefix(Uri("http://dbtune.org/classical/resource/")); Chris@28: mapping->setPropertyPrefix(Uri("http://dbtune.org/classical/resource/vocab/")); Chris@28: mapping->setRelationshipPrefix(Uri("http://dbtune.org/classical/resource/vocab/relationship/")); Chris@25: } Chris@21: Chris@43: if (store && mapping) { Chris@43: Chris@28: store->addPrefix("type", mapping->getObjectTypePrefix()); Chris@28: store->addPrefix("classical", Uri(mapping->getObjectTypePrefix().toString() + "type/")); Chris@28: store->addPrefix("property", mapping->getPropertyPrefix()); Chris@28: store->addPrefix("rel", mapping->getRelationshipPrefix()); Chris@7: Chris@52: store->add(Triple(store->expand("classical:Composer"), store->expand("a"), store->expand("owl:Class"))); Chris@52: store->add(Triple(store->expand("classical:Composer"), store->expand("rdfs:subClassOf"), store->expand("mo:MusicArtist"))); Chris@7: Chris@52: store->add(Triple(store->expand("property:birth"), store->expand("a"), store->expand("owl:ObjectProperty"))); Chris@52: store->add(Triple(store->expand("property:birth"), store->expand("rdfs:subPropertyOf"), store->expand("bio:event"))); Chris@7: Chris@52: store->add(Triple(store->expand("property:death"), store->expand("a"), store->expand("owl:ObjectProperty"))); Chris@52: store->add(Triple(store->expand("property:death"), store->expand("rdfs:subPropertyOf"), store->expand("bio:event"))); Chris@7: Chris@28: mapping->addTypeMapping("ClassicalData::Composer", store->expand("classical:Composer")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composer", "pages", store->expand("foaf:page")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composer", "name", store->expand("foaf:name")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composer", "aliases", store->expand("dbv:alias")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composer", "birth", store->expand("property:birth")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composer", "death", store->expand("property:death")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composer", "geonameURIs", store->expand("foaf:based_near")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composer", "otherURIs", store->expand("owl:sameAs")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composer", "gender", store->expand("foaf:gender")); Chris@7: Chris@28: mapping->addTypeMapping("ClassicalData::Birth", store->expand("bio:Birth")); Chris@28: mapping->addTypeMapping("ClassicalData::Death", store->expand("bio:Death")); Chris@28: mapping->addTypeUriPrefixMapping("ClassicalData::Birth", store->expand(":event/")); Chris@28: mapping->addTypeUriPrefixMapping("ClassicalData::Death", store->expand(":event/")); Chris@28: mapping->addPropertyMapping("ClassicalData::Birth", "year", store->expand("dc:date")); Chris@28: mapping->addPropertyMapping("ClassicalData::Death", "year", store->expand("dc:date")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composition", "year", store->expand("dc:date")); Chris@28: mapping->addPropertyMapping("ClassicalData::Birth", "place", store->expand("bio:place")); Chris@28: mapping->addPropertyMapping("ClassicalData::Death", "place", store->expand("bio:place")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composition", "place", store->expand("bio:place")); Chris@7: Chris@28: mapping->addTypeMapping("ClassicalData::Document", store->expand("foaf:Document")); Chris@28: mapping->addPropertyMapping("ClassicalData::Document", "topic", store->expand("foaf:primaryTopic")); Chris@7: Chris@28: mapping->addTypeMapping("ClassicalData::Work", store->expand("mo:MusicalWork")); Chris@7: Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "composition", store->expand("mo:composed_in")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "opus", store->expand("mo:opus")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "catalogue", store->expand("mo:catalogue")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "number", store->expand("mo:number")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "partOf", store->expand("dc:isPartOf")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "parts", store->expand("dc:hasPart")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "pages", store->expand("foaf:page")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "forms", store->expand("property:form")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "key", store->expand("mo:key")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "aliases", store->expand("dbv:alias")); Chris@28: mapping->addPropertyMapping("ClassicalData::Work", "name", store->expand("dc:title")); Chris@25: Chris@28: mapping->addTypeMapping("ClassicalData::Composition", store->expand("mo:Composition")); Chris@28: mapping->addTypeUriPrefixMapping("ClassicalData::Composition", store->expand(":event/")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composition", "composer", store->expand("mo:composer")); Chris@28: mapping->addPropertyMapping("ClassicalData::Composition", "works", store->expand("mo:produced_work")); Chris@44: Chris@48: mapping->addTypeMapping("ClassicalData::AudioFileTag", store->expand("classical:AudioFileTag")); Chris@48: Chris@45: mapping->addTypeMapping("ClassicalData::AudioFile", store->expand("mo:AudioFile")); Chris@45: mapping->addPropertyMapping("ClassicalData::AudioFile", "hash", store->expand("foaf:sha1")); Chris@45: Chris@45: mapping->addTypeMapping("ClassicalData::Signal", store->expand("mo:Signal")); Chris@45: mapping->addPropertyMapping("ClassicalData::Signal", "availableAs", store->expand("mo:available_as")); Chris@45: mapping->addPropertyMapping("ClassicalData::Signal", "puid", store->expand("mo:puid")); Chris@45: mapping->addPropertyMapping("ClassicalData::Signal", "composer", store->expand("mo:composer")); Chris@45: mapping->addPropertyMapping("ClassicalData::Signal", "work", store->expand("mo:")); Chris@45: mapping->addPropertyMapping("ClassicalData::Signal", "availableAs", store->expand("mo:available_as")); Chris@25: } Chris@7: } Chris@7: Chris@7: } Chris@7: