svcore  1.9
RDFFeatureWriter.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Sonic Visualiser
5  An audio file viewer and annotation editor.
6 
7  Sonic Annotator
8  A utility for batch feature extraction from audio files.
9 
10  Mark Levy, Chris Sutton and Chris Cannam, Queen Mary, University of London.
11  Copyright 2007-2008 QMUL.
12 
13  This program is free software; you can redistribute it and/or
14  modify it under the terms of the GNU General Public License as
15  published by the Free Software Foundation; either version 2 of the
16  License, or (at your option) any later version. See the file
17  COPYING included with this distribution for more information.
18 */
19 
20 #ifndef _RDF_FEATURE_WRITER_H_
21 #define _RDF_FEATURE_WRITER_H_
22 
23 #include <string>
24 #include <map>
25 #include <set>
26 
27 #include <QString>
28 
30 
31 #include "PluginRDFDescription.h"
32 
33 using std::string;
34 using std::map;
35 using std::set;
36 using std::pair;
37 
38 class QTextStream;
39 class QFile;
40 
42 {
43 public:
45  virtual ~RDFFeatureWriter();
46 
47  virtual ParameterList getSupportedParameters() const;
48  virtual void setParameters(map<string, string> &params);
49 
50  virtual void setTrackMetadata(QString trackid, TrackMetadata metadata);
51 
52  virtual void write(QString trackid,
53  const Transform &transform,
54  const Vamp::Plugin::OutputDescriptor &output,
55  const Vamp::Plugin::FeatureList &features,
56  std::string summaryType = "");
57 
58  virtual void setFixedEventTypeURI(QString uri); // something of a hack
59 
60  virtual void finish();
61 
62  virtual QString getWriterTag() const { return "rdf"; }
63 
64 private:
65  typedef map<QString, PluginRDFDescription> RDFDescriptionMap; // by plugin id
67 
68  typedef map<QString, TrackMetadata> TrackMetadataMap;
70 
72 
73  virtual void reviewFileForAppending(QString filename);
74 
75  void writePrefixes(QTextStream *);
76  void writeSignalDescription(QTextStream *, QString);
77  void writeLocalFeatureTypes(QTextStream *,
78  const Transform &,
79  const Vamp::Plugin::OutputDescriptor &,
81  std::string summaryType);
82 
83  void writeSparseRDF(QTextStream *stream,
84  const Transform &transform,
85  const Vamp::Plugin::OutputDescriptor &output,
86  const Vamp::Plugin::FeatureList &features,
88  QString timelineURI);
89 
90  void writeTrackLevelRDF(QTextStream *stream,
91  const Transform &transform,
92  const Vamp::Plugin::OutputDescriptor &output,
93  const Vamp::Plugin::FeatureList &features,
95  QString signalURI);
96 
97  void writeDenseRDF(QTextStream *stream,
98  const Transform &transform,
99  const Vamp::Plugin::OutputDescriptor &output,
100  const Vamp::Plugin::FeatureList &features,
101  PluginRDFDescription &desc,
102  QString signalURI,
103  QString timelineURI);
104 
105  set<QString> m_startedTrackIds;
106 
107  map<QTextStream *, set<Transform> > m_startedStreamTransforms;
108 
109  map<QString, QString> m_trackTrackURIs;
110  map<QString, QString> m_trackTimelineURIs;
111  map<QString, QString> m_trackSignalURIs;
112 
113  map<Transform, QString> m_transformURIs;
114  map<Transform, QString> m_syntheticEventTypeURIs;
115  map<Transform, QString> m_syntheticSignalTypeURIs;
116 
117  typedef pair<QString, Transform> StringTransformPair;
118  typedef pair<QTextStream *, QString> StreamBuffer;
119  map<StringTransformPair, StreamBuffer> m_openDenseFeatures; // signal URI + transform -> stream + text
121  QString m_userTrackUri;
122  QString m_userMakerUri;
123 
124  bool m_plain;
125 
126  bool m_network;
128 
129  long m_count;
130 };
131 
132 #endif
void writeLocalFeatureTypes(QTextStream *, const Transform &, const Vamp::Plugin::OutputDescriptor &, PluginRDFDescription &, std::string summaryType)
virtual void setParameters(map< string, string > &params)
virtual void setTrackMetadata(QString trackid, TrackMetadata metadata)
map< StringTransformPair, StreamBuffer > m_openDenseFeatures
pair< QTextStream *, QString > StreamBuffer
virtual void setFixedEventTypeURI(QString uri)
virtual ParameterList getSupportedParameters() const
virtual QString getWriterTag() const
map< QTextStream *, set< Transform > > m_startedStreamTransforms
vector< Parameter > ParameterList
Definition: FeatureWriter.h:47
set< QString > m_startedTrackIds
void writeTrackLevelRDF(QTextStream *stream, const Transform &transform, const Vamp::Plugin::OutputDescriptor &output, const Vamp::Plugin::FeatureList &features, PluginRDFDescription &desc, QString signalURI)
map< Transform, QString > m_syntheticSignalTypeURIs
map< QString, QString > m_trackTrackURIs
pair< QString, Transform > StringTransformPair
void writeSignalDescription(QTextStream *, QString)
RDFDescriptionMap m_rdfDescriptions
void writePrefixes(QTextStream *)
virtual ~RDFFeatureWriter()
map< QString, TrackMetadata > TrackMetadataMap
map< Transform, QString > m_transformURIs
void writeSparseRDF(QTextStream *stream, const Transform &transform, const Vamp::Plugin::OutputDescriptor &output, const Vamp::Plugin::FeatureList &features, PluginRDFDescription &desc, QString timelineURI)
map< QString, QString > m_trackSignalURIs
QString m_fixedEventTypeURI
virtual void finish()
map< QString, PluginRDFDescription > RDFDescriptionMap
virtual void reviewFileForAppending(QString filename)
map< QString, QString > m_trackTimelineURIs
virtual void write(QString trackid, const Transform &transform, const Vamp::Plugin::OutputDescriptor &output, const Vamp::Plugin::FeatureList &features, std::string summaryType="")
map< Transform, QString > m_syntheticEventTypeURIs
TrackMetadataMap m_metadata
void writeDenseRDF(QTextStream *stream, const Transform &transform, const Vamp::Plugin::OutputDescriptor &output, const Vamp::Plugin::FeatureList &features, PluginRDFDescription &desc, QString signalURI, QString timelineURI)