# HG changeset patch # User Chris Cannam # Date 1361974904 0 # Node ID dce097536346d63354b9469770587053c03eb29e # Parent 875e78fd245c1f01ce4b2581bdc8fa9e01a2cf75 Retrieve global RDF as well diff -r 875e78fd245c -r dce097536346 vamprdf.yeti --- 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,