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