Mercurial > hg > classical
view common/TypeRegistrar.cpp @ 14:06b2ea2ca577 classical-rdf
* use floating-point scores for name matching
author | Chris Cannam |
---|---|
date | Fri, 19 Feb 2010 12:41:23 +0000 |
parents | df999875c53b |
children | c8ef23d3888c |
line wrap: on
line source
#include "TypeRegistrar.h" #include "Objects.h" #include <dataquay/BasicStore.h> #include <dataquay/objectmapper/ObjectMapper.h> #include <dataquay/objectmapper/ObjectBuilder.h> #include <dataquay/objectmapper/ContainerBuilder.h> using namespace Dataquay; namespace ClassicalData { TypeRegistrar::TypeRegistrar() { 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<QUrl> > ("QSet<QUrl>"); 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*"); ContainerBuilder::getInstance()->registerContainer <QString, QSet<QString> > ("QString", "QSet<QString>", ContainerBuilder::SetKind); ContainerBuilder::getInstance()->registerContainer <QUrl, QSet<QUrl> > ("QUrl", "QSet<QUrl>", 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); } void TypeRegistrar::addMappings(BasicStore *store, ObjectMapper *mapper) { store->addPrefix("foaf", "http://xmlns.com/foaf/0.1/"); store->addPrefix("mo", "http://purl.org/ontology/mo/"); store->addPrefix("dc", "http://purl.org/dc/elements/1.1/"); store->addPrefix("bio", "http://purl.org/vocab/bio/0.1/"); store->addPrefix("owl", "http://www.w3.org/2002/07/owl#"); store->addPrefix("rdfs", "http://www.w3.org/2000/01/rdf-schema#"); store->addPrefix("db", "http://dbtune.org/musicbrainz/resource/"); store->addPrefix("dbv", "http://dbtune.org/musicbrainz/resource/vocab/"); store->addPrefix("cmn", "http://purl.org/ontology/classicalmusicnav#"); store->addPrefix("sim", "http://purl.org/ontology/similarity/"); store->add(Triple("classical:Composer", "a", store->expand("owl:Class"))); store->add(Triple("classical:Composer", "rdfs:subClassOf", store->expand("mo:MusicArtist"))); store->add(Triple("property:birth", "a", store->expand("owl:ObjectProperty"))); store->add(Triple("property:birth", "rdfs:subPropertyOf", store->expand("bio:event"))); store->add(Triple("property:death", "a", store->expand("owl:ObjectProperty"))); store->add(Triple("property:death", "rdfs:subPropertyOf", store->expand("bio:event"))); mapper->setObjectTypePrefix("http://dbtune.org/classical/resource/"); mapper->setPropertyPrefix("http://dbtune.org/classical/resource/vocab/"); mapper->setRelationshipPrefix("http://dbtune.org/classical/resource/vocab/relationship/"); store->addPrefix("type", mapper->getObjectTypePrefix()); store->addPrefix("classical", mapper->getObjectTypePrefix() + "type/"); store->addPrefix("property", mapper->getPropertyPrefix()); store->addPrefix("rel", mapper->getRelationshipPrefix()); mapper->addTypeMapping("ClassicalData::Composer", "classical:Composer"); mapper->addPropertyMapping("ClassicalData::Composer", "pages", "foaf:page"); mapper->addPropertyMapping("ClassicalData::Composer", "name", "foaf:name"); mapper->addPropertyMapping("ClassicalData::Composer", "aliases", "dbv:alias"); mapper->addPropertyMapping("ClassicalData::Composer", "birth", "property:birth"); mapper->addPropertyMapping("ClassicalData::Composer", "death", "property:death"); mapper->addPropertyMapping("ClassicalData::Composer", "geonameURIs", "foaf:based_near"); mapper->addTypeMapping("ClassicalData::Birth", "bio:Birth"); mapper->addTypeMapping("ClassicalData::Death", "bio:Death"); mapper->addTypeUriPrefixMapping("ClassicalData::Birth", ":event/"); mapper->addTypeUriPrefixMapping("ClassicalData::Death", ":event/"); mapper->addPropertyMapping("ClassicalData::Birth", "year", "bio:date"); mapper->addPropertyMapping("ClassicalData::Death", "year", "bio:date"); mapper->addPropertyMapping("ClassicalData::Composition", "year", "bio:date"); mapper->addPropertyMapping("ClassicalData::Birth", "place", "bio:place"); mapper->addPropertyMapping("ClassicalData::Death", "place", "bio:place"); mapper->addPropertyMapping("ClassicalData::Composition", "place", "bio:place"); mapper->addTypeMapping("ClassicalData::Document", "foaf:Document"); mapper->addPropertyMapping("ClassicalData::Document", "topic", "foaf:primaryTopic"); mapper->addTypeMapping("ClassicalData::Work", "mo:MusicalWork"); mapper->addPropertyMapping("ClassicalData::Work", "composition", "mo:composed_in"); mapper->addPropertyMapping("ClassicalData::Work", "opus", "mo:opus"); mapper->addPropertyMapping("ClassicalData::Work", "catalogue", "mo:catalogue"); mapper->addPropertyMapping("ClassicalData::Work", "number", "mo:number"); mapper->addPropertyMapping("ClassicalData::Work", "partOf", "dc:isPartOf"); mapper->addPropertyMapping("ClassicalData::Work", "parts", "dc:hasPart"); mapper->addPropertyMapping("ClassicalData::Work", "pages", "foaf:page"); mapper->addPropertyMapping("ClassicalData::Work", "forms", "property:form"); mapper->addPropertyMapping("ClassicalData::Work", "key", "mo:key"); mapper->addPropertyMapping("ClassicalData::Work", "aliases", "dbv:alias"); mapper->addPropertyMapping("ClassicalData::Work", "name", "dc:title"); mapper->addTypeMapping("ClassicalData::Composition", "mo:Composition"); mapper->addTypeUriPrefixMapping("ClassicalData::Composition", ":event/"); mapper->addPropertyMapping("ClassicalData::Composition", "composer", "mo:composer"); mapper->addPropertyMapping("ClassicalData::Composition", "works", "mo:produced_work"); } TypeRegistrar TypeRegistrar::m_instance; }