У меня есть локальная версия LinkedMDB в формате N-Triples, и я хочу запросить ее. Теперь я хочу использовать Jena TDB, которая может хранить данные, которые можно использовать для запросов позже. Я проверил документацию для TDB Java API, но не смог загрузить N- Файл Triples, а затем запрос с помощью SPARQL. Я использовал следующий код:
String directory = "E:\\Applications\\tdb-0.8.9\\TDB-0.8.9\\bin\\tdb";
Dataset dataset = TDBFactory.createDataset(directory);
// assume we want the default model, or we could get a named model here
Model tdb = dataset.getDefaultModel();
// read the input file - only needs to be done once
String source = "E:\\Applications\\linkedmdb-18-05-2009-dump.nt";
FileManager.get().readModel( tdb, source, "N-TRIPLES" );
и получил следующее исключение
Exception in thread "main" com.hp.hpl.jena.tdb.base.file.FileException: Not a directory: E:\Applications\tdb-0.8.9\TDB-0.8.9\bin\tdb
at com.hp.hpl.jena.tdb.base.file.Location.<init>(Location.java:83)
at com.hp.hpl.jena.tdb.TDBFactory.createDataset(TDBFactory.java:79)
at tutorial.Temp.main(Temp.java:14)
E:\Applications\tdb-0.8.9\TDB-0.8.9\bin\tdb
еще не существует, вам придется сначала его создать. Но вам, вероятно, следует хранить данные в каталоге, отличном от того, в котором вы установили TDB (т.е. что-то конкретное для вашего приложения). Подумайте, например, что произойдет, когда вы загрузите будущую версию TDB. - person Ian Dickinson   schedule 13.04.2011