0

我正在使用pOWL构建 OWL 文件的内容管理系统。我希望能够对queryOWL 文件以及添加新的实例和类。但是我被卡住了。我需要使用 pOWL 将 OWL 文件加载到 OWLModel 中。所以我尝试了:

$base="wine.owl";
$store = new DefaultPOWLStore(ADODB_DB_DRIVER, "localhost", "powl", "root", "password");

$model = ModelFactory::getOntModel('DBModel','RDFS_VOCABULARY', $base);
$model = new OWLModel($store, $base);
$model->load('wine.owl');

$model -> __construct($store, $base);

但我收到错误:

Fatal error: Call to a member function startTrans() on a non-object in C:\Users\xxx\xxx\powl\rdfapi-php\api\model\DbModel.php on line 878

有错误的代码是:

    if (is_a($model, 'MemModel')) {
            if (is_object($model)){
            echo "<pre>";
            print_r("!!!!!!!");
            echo "</pre>";
        }

        $this->dbConn->startTrans();

我添加了第二个 if 子句以尝试检查是否$model是一个对象,并且它通过了该子句。但我不确定这是否是检查变量是否为对象的正确方法。

更新:问题似乎与dbConn变量有关,需要找到一种方法将模型加载到数据库中dbConn以进行定义。明天看。

4

1 回答 1

0

当我试图将OWL文件加载到模型中时解决了这个问题。我应该使用$store. 这是代码:

$modelURI = "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#";
$base="wine.owl";
$filename ="wine.owl";
$store = new DefaultPOWLStore(ADODB_DB_DRIVER, "localhost", "powl", "root", "password");

if(!$store->modelExists($modelURI)) {
    $store->loadModel($modelURI, $base);
}

$model = new OWLModel($store, $modelURI);
$store-> putModel($store, $modelURI);
于 2013-06-20T14:26:29.427 回答