Mercurial > hg > svcore
comparison rdf/RDFTransformFactory.cpp @ 503:3176aade1a03
* Make RDFTransformFactory::writeTransformToRDF write out partial
library and plugin descriptions adequate to identify the plugin on
disk, if no RDF description for the plugin has been found
| author | Chris Cannam |
|---|---|
| date | Fri, 05 Dec 2008 09:40:42 +0000 |
| parents | 81963c51b488 |
| children | 1b8c748fd7ea |
comparison
equal
deleted
inserted
replaced
| 502:bd7c46636bd0 | 503:3176aade1a03 |
|---|---|
| 25 | 25 |
| 26 #include "SimpleSPARQLQuery.h" | 26 #include "SimpleSPARQLQuery.h" |
| 27 #include "PluginRDFIndexer.h" | 27 #include "PluginRDFIndexer.h" |
| 28 #include "PluginRDFDescription.h" | 28 #include "PluginRDFDescription.h" |
| 29 #include "base/ProgressReporter.h" | 29 #include "base/ProgressReporter.h" |
| 30 #include "plugin/PluginIdentifier.h" | |
| 30 | 31 |
| 31 #include "transform/TransformFactory.h" | 32 #include "transform/TransformFactory.h" |
| 32 | 33 |
| 33 using std::cerr; | 34 using std::cerr; |
| 34 using std::endl; | 35 using std::endl; |
| 379 QString uri) | 380 QString uri) |
| 380 { | 381 { |
| 381 QString str; | 382 QString str; |
| 382 QTextStream s(&str); | 383 QTextStream s(&str); |
| 383 | 384 |
| 384 // assumes the usual prefixes are available | 385 // assumes the usual prefixes are available; requires that uri be |
| 385 | 386 // a local fragment (e.g. ":transform") rather than a uri enclosed |
| 386 s << uri << " a vamp:Transform ;" << endl; | 387 // in <>, so that we can suffix it if need be |
| 387 | 388 |
| 388 QString pluginId = transform.getPluginIdentifier(); | 389 QString pluginId = transform.getPluginIdentifier(); |
| 389 QString pluginUri = PluginRDFIndexer::getInstance()->getURIForPluginId(pluginId); | 390 QString pluginUri = PluginRDFIndexer::getInstance()->getURIForPluginId(pluginId); |
| 390 | 391 |
| 392 if (pluginUri != "") { | |
| 393 s << uri << " a vamp:Transform ;" << endl; | |
| 394 s << " vamp:plugin <" << pluginUri << "> ;" << endl; | |
| 395 } else { | |
| 396 std::cerr << "WARNING: RDFTransformFactory::writeTransformToRDF: No plugin URI available for plugin id \"" << pluginId.toStdString() << "\", writing synthetic plugin and library resources" << std::endl; | |
| 397 QString type, soname, label; | |
| 398 PluginIdentifier::parseIdentifier(pluginId, type, soname, label); | |
| 399 s << uri << "_plugin a vamp:Plugin ;" << endl; | |
| 400 s << " vamp:identifier \"" << label << "\" .\n" << endl; | |
| 401 s << uri << "_library a vamp:PluginLibrary ;" << endl; | |
| 402 s << " vamp:identifier \"" << soname << "\" ;" << endl; | |
| 403 s << " vamp:available_plugin " << uri << "_plugin .\n" << endl; | |
| 404 s << uri << " a vamp:Transform ;" << endl; | |
| 405 s << " vamp:plugin " << uri << "_plugin ;" << endl; | |
| 406 } | |
| 407 | |
| 391 PluginRDFDescription description(pluginId); | 408 PluginRDFDescription description(pluginId); |
| 392 QString outputUri = description.getOutputUri(transform.getOutput()); | 409 QString outputId = transform.getOutput(); |
| 410 QString outputUri = description.getOutputUri(outputId); | |
| 393 | 411 |
| 394 if (transform.getOutput() != "" && outputUri == "") { | 412 if (transform.getOutput() != "" && outputUri == "") { |
| 395 std::cerr << "WARNING: RDFTransformFactory::writeTransformToRDF: No output URI available for transform output id \"" << transform.getOutput().toStdString() << "\"" << std::endl; | 413 std::cerr << "WARNING: RDFTransformFactory::writeTransformToRDF: No output URI available for transform output id \"" << transform.getOutput().toStdString() << "\", writing a synthetic output resource" << std::endl; |
| 396 } | 414 } |
| 397 | |
| 398 s << " vamp:plugin <" << pluginUri << "> ;" << endl; | |
| 399 | 415 |
| 400 if (transform.getStepSize() != 0) { | 416 if (transform.getStepSize() != 0) { |
| 401 s << " vamp:step_size \"" << transform.getStepSize() << "\"^^xsd:int ; " << endl; | 417 s << " vamp:step_size \"" << transform.getStepSize() << "\"^^xsd:int ; " << endl; |
| 402 } | 418 } |
| 403 if (transform.getBlockSize() != 0) { | 419 if (transform.getBlockSize() != 0) { |
| 430 s << " ] ;" << endl; | 446 s << " ] ;" << endl; |
| 431 } | 447 } |
| 432 | 448 |
| 433 if (outputUri != "") { | 449 if (outputUri != "") { |
| 434 s << " vamp:output <" << outputUri << "> ." << endl; | 450 s << " vamp:output <" << outputUri << "> ." << endl; |
| 451 } else if (outputId != "") { | |
| 452 s << " vamp:output [ vamp:identifier \"" << outputId << "\" ] ." << endl; | |
| 435 } else { | 453 } else { |
| 436 s << " ." << endl; | 454 s << " ." << endl; |
| 437 } | 455 } |
| 438 | 456 |
| 439 return str; | 457 return str; |
