TODO Top priority: User authorization and preference management RDFSAPI allow_call_time_pass_reference problem index php arrays correctly: \$[0-9a-z_]+\[[^$0-9"']+\] find . -name "*php" -print | xargs egrep "\[[^0-9$'\"]+\]" combine owl:maxCardinality and owl:minCardinality into owl:cardinality, if they are equal RDFAPI Primary index row id in statements added: model/DBModel.php(150): $sql = "INSERT INTO statements (modelID,subject,predicate,object,l_language,l_datatype,subject_is,object_is) VALUES Zum RDQL-Anfragen mehrerer Modelle: rdql/RdqlDbEngine.php (186): $sql_where .= ' s' .($n+1) .'.modelID IN (' .$modelID .') AND'; model/Model.php (129): if($stream && (is_a($parser,'rdfparser') || is_a($parser,'n3parser'))) Index fÜr predicate in statements tabelle: In model/DbStore.php change lines 351-352 into: $this->dbConn->execute('CREATE INDEX s_sub_idx ON statements (subject(200))'); $this->dbConn->execute('CREATE INDEX s_pred_idx ON statements (predicate(200))'); $this->dbConn->execute('CREATE FULLTEXT INDEX s_obj_ftidx ON statements (`object`)'); netapi/netapi.php, netapi/config.inc.php include ersetzen durch include_once Optionales Abschalten des "CheckForDuplicatesOnAdd" model/DBModel.php 139 if (!empty($this->dontCheckForDuplicatesOnAdd) || !$this->contains($statement)) { Statements which differ only in Literal datatype and/or language will be false identified during serialisation: syntax/RdfSerializer.php: 219 (is_a($statement->obj,'Literal')?'"'.$statement->obj->getLabel().'"@'.$statement->obj->getLanguage().'^^'.$statement->obj->getDatatype():$statement->obj->getURI()); Verwendung aktueller AdoDB-Version (V4.22) PHP5 Kompatibilität: Notice: Undefined index: first_blank_node_id in C:\Programme\Apache Group\Apache2\htdocs\powl\rdfapi\syntax\RdfParser.php on line 1785 SQLite Kompatibilität: model/DBStore.php (84): instead of throwing a fatal call: /** * Create tables and indexes for adodb datadict supported databases * * @throws SqlError * @access private */ function _createTables_Generic() { $this->dbConn->startTrans(); # $this->dbConn->debug=true; $tables=array( 'models'=>array( 'fields'=>' modelID I NOTNULL AUTO KEY, modelURI C(255) NOTNULL, baseURI C(255) NOTNULL', 'options'=>'', 'indexes'=>array('modelURI'), ), 'statements'=>array( 'fields'=>' modelID I NOTNULL, subject C(255) NOTNULL, predicate C(255) NOTNULL, object B, l_language C(255), l_datatype C(255), subject_is C(1) NOTNULL, object_is C(1) NOTNULL', 'options'=>'', 'indexes'=>array('modelID','subject','predicate','object'), ), ); $dict=NewDataDictionary($this->dbConn); foreach($tables as $tablename=>$table) { $dict->ExecuteSQLArray($dict->CreateTableSQL($tablename,$table['fields'],$table['options'])); foreach($table['indexes'] as $indexname=>$index) $dict->ExecuteSQLArray($dict->CreateIndexSQL(is_numeric($indexname)?'idx_'.str_replace('_','',$tablename).'_'.strtr($index,array('_'=>'',','=>'')):$indexname,$tablename,$index)); } if (!$this->dbConn->completeTrans()) echo $this->dbConn->errorMsg(); } Parser und Writer sollten verschachtelte bNode Notation unterstützen: <rdf:first>sym1</rdf:first> <rdf:rest rdf:parseType="Resource"> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> <rdf:first>sym2</rdf:first> </rdf:rest> equivalent zu "define("N3SER_BNODE_SHORT",TRUE);"?! preserve namespace-prefixes POWL Widgets should enforce cardinality restrictions Clean CVS Repository * delete: plugins/widget/htmledit plugins/widget/fckeditor/FCKeditor * rename: plugins/widget/date -> js-calendar plugins/widget/selectInstance -> selectResource