changeset 73:dce097536346

Retrieve global RDF as well
author Chris Cannam
date Wed, 27 Feb 2013 14:21:44 +0000
parents 875e78fd245c
children de08f1d78992
files vamprdf.yeti
diffstat 1 files changed, 28 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/vamprdf.yeti	Wed Feb 27 13:55:23 2013 +0000
+++ b/vamprdf.yeti	Wed Feb 27 14:21:44 2013 +0000
@@ -49,6 +49,30 @@
         store
     done;
 
+getGlobalPluginIndex () =
+    list (strSplit "\n" (fetchURL [ Timeout 10 ] (Handle getContents)
+                         "http://www.vamp-plugins.org/rdf/plugins/index.txt"));
+
+//!!! need to cache these retrievals
+parseGlobalVampRdf () =
+   (parse urls =
+        case urls of
+        url::rest:
+           (doc = fetchURL [ Timeout 10 ] (Handle getContents) url;
+            parsed = read.parseTurtleString url doc;
+            { url, parsed } :. \(parse rest));
+         _: [];
+        esac;
+    parse (getGlobalPluginIndex ()));
+
+loadGlobalVampRdf store =
+    for (parseGlobalVampRdf ()) do { url, parsed }:
+        case read.loadParsedTriples store parsed of
+        OK (): ();
+        Error e: eprintln "WARNING: Failed to load Vamp RDF from URL \(url): \(e)";
+        esac;
+    done;
+
 filterIRIsFromNodes nodes =
     map do r: case r of IRI iri: iri; esac done
        (filter do r: case r of IRI iri: true; _: false esac done nodes);
@@ -141,7 +165,11 @@
     get inputDomain () = inputDomainOf store pluginIRI
 };
 
+//!!! reconsider these names
 {
+getGlobalPluginIndex,
+parseGlobalVampRdf,
+loadGlobalVampRdf,
 getSystemVampRdfStore,
 vampPluginNodes = pluginNodes,
 vampLibraryNodes = libraryNodes,