Mercurial > hg > svcore
comparison rdf/PluginRDFIndexer.cpp @ 481:a82645e788fc
* Auto-select RDF datastore/parsing backend; use trees datastore if
available
* Make CachedFile remember whether a file has already been successfully
located locally (avoiding system call out to look at filesystem)
| author | Chris Cannam |
|---|---|
| date | Fri, 14 Nov 2008 10:10:05 +0000 |
| parents | 3ffce691c9bf |
| children | f54381e01141 |
comparison
equal
deleted
inserted
replaced
| 480:3ffce691c9bf | 481:a82645e788fc |
|---|---|
| 259 | 259 |
| 260 localString = "file://" + cf.getLocalFilename(); //!!! crud - fix! | 260 localString = "file://" + cf.getLocalFilename(); //!!! crud - fix! |
| 261 } | 261 } |
| 262 | 262 |
| 263 // cerr << "PluginRDFIndexer::indexURL: url = <" << urlString.toStdString() << ">" << endl; | 263 // cerr << "PluginRDFIndexer::indexURL: url = <" << urlString.toStdString() << ">" << endl; |
| 264 | 264 /*!!! |
| 265 SimpleSPARQLQuery query | 265 SimpleSPARQLQuery query |
| 266 (localString, | 266 (localString, |
| 267 QString | 267 QString |
| 268 ( | 268 ( |
| 269 " PREFIX vamp: <http://purl.org/ontology/vamp/> " | 269 " PREFIX vamp: <http://purl.org/ontology/vamp/> " |
| 291 " vamp:identifier ?library_id " | 291 " vamp:identifier ?library_id " |
| 292 " } " | 292 " } " |
| 293 " } " | 293 " } " |
| 294 ) | 294 ) |
| 295 .arg(localString)); | 295 .arg(localString)); |
| 296 */ | |
| 297 SimpleSPARQLQuery query | |
| 298 (localString, | |
| 299 QString | |
| 300 ( | |
| 301 " PREFIX vamp: <http://purl.org/ontology/vamp/> " | |
| 302 | |
| 303 " SELECT ?plugin ?library ?plugin_id " | |
| 304 " FROM <%1> " | |
| 305 | |
| 306 " WHERE { " | |
| 307 " ?plugin a vamp:Plugin . " | |
| 308 " ?plugin vamp:identifier ?plugin_id . " | |
| 309 | |
| 310 " OPTIONAL { " | |
| 311 " ?library vamp:available_plugin ?plugin " | |
| 312 " } " | |
| 313 " } " | |
| 314 ) | |
| 315 .arg(localString)); | |
| 296 | 316 |
| 297 SimpleSPARQLQuery::ResultList results = query.execute(); | 317 SimpleSPARQLQuery::ResultList results = query.execute(); |
| 298 | 318 |
| 299 if (!query.isOK()) { | 319 if (!query.isOK()) { |
| 300 cerr << "ERROR: PluginRDFIndexer::indexURL: ERROR: Failed to index document at <" | 320 cerr << "ERROR: PluginRDFIndexer::indexURL: ERROR: Failed to index document at <" |
| 315 | 335 |
| 316 for (SimpleSPARQLQuery::ResultList::iterator i = results.begin(); | 336 for (SimpleSPARQLQuery::ResultList::iterator i = results.begin(); |
| 317 i != results.end(); ++i) { | 337 i != results.end(); ++i) { |
| 318 | 338 |
| 319 QString pluginUri = (*i)["plugin"].value; | 339 QString pluginUri = (*i)["plugin"].value; |
| 320 QString soname = (*i)["library_id"].value; | 340 //!!! QString soname = (*i)["library_id"].value; |
| 341 QString soUri = (*i)["library"].value; | |
| 321 QString identifier = (*i)["plugin_id"].value; | 342 QString identifier = (*i)["plugin_id"].value; |
| 322 | 343 |
| 323 if (identifier == "") { | 344 if (identifier == "") { |
| 324 cerr << "PluginRDFIndexer::indexURL: NOTE: Document at <" | 345 cerr << "PluginRDFIndexer::indexURL: NOTE: Document at <" |
| 325 << urlString.toStdString() | 346 << urlString.toStdString() |
| 326 << "> fails to define any vamp:identifier for plugin <" | 347 << "> fails to define any vamp:identifier for plugin <" |
| 327 << pluginUri.toStdString() << ">" | 348 << pluginUri.toStdString() << ">" |
| 328 << endl; | 349 << endl; |
| 329 continue; | 350 continue; |
| 330 } | 351 } |
| 331 if (soname == "") { | 352 if (soUri == "") { |
| 332 cerr << "PluginRDFIndexer::indexURL: NOTE: Document at <" | 353 cerr << "PluginRDFIndexer::indexURL: NOTE: Document at <" |
| 333 << urlString.toStdString() << "> does not associate plugin <" | 354 << urlString.toStdString() << "> does not associate plugin <" |
| 334 << pluginUri.toStdString() << "> with any implementation library" | 355 << pluginUri.toStdString() << "> with any implementation library" |
| 335 << endl; | 356 << endl; |
| 336 continue; | 357 continue; |
| 337 } | 358 } |
| 359 | |
| 360 QString sonameQuery = | |
| 361 QString( | |
| 362 " PREFIX vamp: <http://purl.org/ontology/vamp/> " | |
| 363 " SELECT ?library_id " | |
| 364 " FROM <%1> " | |
| 365 " WHERE { " | |
| 366 " <%2> vamp:identifier ?library_id " | |
| 367 " } " | |
| 368 ) | |
| 369 .arg(localString) | |
| 370 .arg(soUri); | |
| 371 | |
| 372 SimpleSPARQLQuery::Value sonameValue = | |
| 373 SimpleSPARQLQuery::singleResultQuery(localString, sonameQuery, "library_id"); | |
| 374 QString soname = sonameValue.value; | |
| 375 if (soname == "") { | |
| 376 cerr << "PluginRDFIndexer::indexURL: NOTE: Document at <" | |
| 377 << urlString.toStdString() << "> omits identifier for library <" | |
| 378 << soUri.toStdString() << ">" | |
| 379 << endl; | |
| 380 continue; | |
| 381 } | |
| 382 | |
| 383 | |
| 338 /* | 384 /* |
| 339 cerr << "PluginRDFIndexer::indexURL: Document for plugin \"" | 385 cerr << "PluginRDFIndexer::indexURL: Document for plugin \"" |
| 340 << soname.toStdString() << ":" << identifier.toStdString() | 386 << soname.toStdString() << ":" << identifier.toStdString() |
| 341 << "\" (uri <" << pluginUri.toStdString() << ">) is at url <" | 387 << "\" (uri <" << pluginUri.toStdString() << ">) is at url <" |
| 342 << urlString.toStdString() << ">" << endl; | 388 << urlString.toStdString() << ">" << endl; |
