将RDF模型加载到Jena SDB中

时间:2014-06-26 07:17:34

标签: eclipse jena rules

我正在尝试将我的RDF模型加载到JENA SDB中。我已经完成了连接(我认为应该没问题)。 我不知道为什么,但它不能正常工作。我认为这是因为我已经导入到我的项目中的ARQ库,但我不知道。

这里是代码:

    String RDF_FILE = "./prova_rules_M_rdf.owl";
    String className = "com.mysql.jdbc.Driver";  
    String DB_URL = "jdbc:mysql://localhost:3306/prova_rules"; 
    String DB_USER = "root";                         
    String DB_PASSWD = "";                     


        // create store description
        StoreDesc storeDesc = new StoreDesc(LayoutType.LayoutTripleNodesHash,DatabaseType.MySQL);

        // load database driver
        try {
            Class.forName(className);
            System.out.println("JDBC driver load successfully!");
        } catch (Exception e) {
            e.printStackTrace();
        }

        // create SDBConnection
        SDBConnection sdbConnection = new SDBConnection(DB_URL,DB_USER,DB_PASSWD);

        // connect to store
        Store store = SDBFactory.connectStore(sdbConnection,storeDesc);

        // connect store to dataset
        Dataset dataset = SDBFactory.connectDataset(store);

        // prepare the model
        Model tmpModel = ModelFactory.createDefaultModel();
        FileManager.get().readModel(tmpModel,RDF_FILE,"OWL");
        System.out.println(tmpModel.size());

        // add the model into the dataset
        dataset.getDefaultModel().add(tmpModel);

        // all done ... hopefully
        store.close();

    }

这里的错误:

线程中的异常" main" java.lang.NoSuchMethodError:com.hp.hpl.jena.query.ARQ.getContext()Lcom / hp / hpl / jena / sparql / util / Context;     在com.hp.hpl.jena.sdb.SDB.initWorker(SDB.java:87)     在com.hp.hpl.jena.sdb.SDB。(SDB.java:61)     在com.hp.hpl.jena.sdb.store.StoreFactory。(StoreFactory.java:40)     在com.hp.hpl.jena.sdb.SDBFactory.connectStore(SDBFactory.java:117)     在CreateOntModel.main(CreateOntModel.java:94)

1 个答案:

答案 0 :(得分:2)

NoSuchMethodError表示您在运行时类路径(Eclipse构建路径)上有一组不一致的jar。确保项目构建路径中每个Jena jar只有一个副本。

在Eclipse中使用maven将自动管理依赖项。