diff rdf/RDFFeatureWriter.cpp @ 597:4fa2b135acbc sv-v1.6

* Add rdf-network option to retrieve RDF descriptions from network, since this is no longer done automatically for reasons of cost
author Chris Cannam
date Mon, 29 Jun 2009 13:44:50 +0000
parents f3bb7a3ffd89
children f3211e01b315
line wrap: on
line diff
--- a/rdf/RDFFeatureWriter.cpp	Mon Jun 22 17:06:27 2009 +0000
+++ b/rdf/RDFFeatureWriter.cpp	Mon Jun 29 13:44:50 2009 +0000
@@ -20,6 +20,7 @@
 
 #include "RDFFeatureWriter.h"
 #include "RDFTransformFactory.h"
+#include "PluginRDFIndexer.h"
 
 #include <QTextStream>
 #include <QUrl>
@@ -36,6 +37,8 @@
                       SupportOneFileTotal,
                       "n3"),
     m_plain(false),
+    m_network(false),
+    m_networkRetrieved(false),
     m_count(0)
 {
 }
@@ -69,6 +72,11 @@
     p.description = "Link the track in the output RDF to the given foaf:maker URI.";
     p.hasArg = true;
     pl.push_back(p);
+
+    p.name = "network";
+    p.description = "Attempt to retrieve RDF descriptions of plugins from network, if not available locally";
+    p.hasArg = false;
+    pl.push_back(p);
     
     return pl;
 }
@@ -92,6 +100,9 @@
         if (i->first == "maker-uri") {
             m_userMakerUri = i->second.c_str();
         }
+        if (i->first == "network") {
+            m_network = true;
+        }
     }
 }
 
@@ -120,14 +131,23 @@
 
     if (m_rdfDescriptions.find(pluginId) == m_rdfDescriptions.end()) {
 
+        if (m_network && !m_networkRetrieved) {
+            PluginRDFIndexer::getInstance()->indexConfiguredURLs();
+            m_networkRetrieved = true;
+        }
+
         m_rdfDescriptions[pluginId] = PluginRDFDescription(pluginId);
 
         if (m_rdfDescriptions[pluginId].haveDescription()) {
             cerr << "NOTE: Have RDF description for plugin ID \""
                  << pluginId.toStdString() << "\"" << endl;
         } else {
-            cerr << "NOTE: Do not have RDF description for plugin ID \""
+            cerr << "NOTE: No RDF description for plugin ID \""
                  << pluginId.toStdString() << "\"" << endl;
+            if (!m_network) {
+                cerr << "      Consider using the --rdf-network option to retrieve plugin descriptions"  << endl;
+                cerr << "      from the network where possible." << endl;
+            }
         }
     }