You can subscribe to this list here.
2005 |
Jan
|
Feb
(16) |
Mar
(6) |
Apr
(38) |
May
(23) |
Jun
(5) |
Jul
(1) |
Aug
|
Sep
(10) |
Oct
(7) |
Nov
(6) |
Dec
(4) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(20) |
Feb
(32) |
Mar
(24) |
Apr
(29) |
May
(5) |
Jun
(10) |
Jul
(12) |
Aug
(7) |
Sep
(1) |
Oct
(2) |
Nov
(27) |
Dec
(4) |
2007 |
Jan
(37) |
Feb
(10) |
Mar
(19) |
Apr
(10) |
May
(10) |
Jun
(7) |
Jul
(19) |
Aug
(29) |
Sep
(5) |
Oct
(17) |
Nov
(14) |
Dec
(2) |
2008 |
Jan
(4) |
Feb
(4) |
Mar
|
Apr
(8) |
May
|
Jun
(8) |
Jul
(1) |
Aug
(7) |
Sep
|
Oct
(1) |
Nov
(4) |
Dec
|
2009 |
Jan
|
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(2) |
2010 |
Jan
|
Feb
(2) |
Mar
(2) |
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(2) |
2019 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Tom H. <tom...@gm...> - 2007-06-15 09:56:10
|
On 15/06/07, Christian Weiske <cw...@cw...> wrote: > Tom, > > > great. However, I've hit a problem, and I don't know if it's a bug or > > me just being stupid. Any help much appreciated. > > ORDER BY DESC(?createdOn) > > Fatal error: Uncaught exception 'Exception' with message 'Unsupported > > cast type in order by: http://www.w3.org/2001/XMLSchema#dateTime' in > > This is a missing feature. I'll fix it next week. Brilliant, thanks Christian, look forward to it :) BTW, I also managed to generate this error doing a DESCRIBE query: ============= Warning: Invalid argument supplied for foreach() in C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\SqlGenerator.php on line 174 Warning: Invalid argument supplied for foreach() in C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\SqlGenerator.php on line 212 Fatal error: Uncaught exception 'Exception' with message 'Unsupported result form: describe' in C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\ResultRenderer\Default.php:95 Stack trace: #0 C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\ResultConverter.php(61): SparqlEngineDb_ResultRenderer_Default->convertFromDbResults(Array, Object(Query), Object(SparqlEngineDb)) #1 C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb.php(140): SparqlEngineDb_ResultConverter::convertFromDbResults(Array, Object(SparqlEngineDb), false) #2 C:\htdocs\revyu\rdfapi-php\api\model\Model.php(897): SparqlEngineDb->queryModel(Object(DatasetMem), Object(Query), false) #3 C:\htdocs\revyu\...(10): Model->sparqlQuery('DESCRIBE <thing...') #4 C:\htdocs\revyu\...(54): include('C:\htdocs\revyu...') #5 {main} thrown in C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\ResultRenderer\Default.php on line 95 ============= Let me know if you need any more info! Tom. |
From: Christian W. <cw...@cw...> - 2007-06-15 06:01:16
|
Tom, > great. However, I've hit a problem, and I don't know if it's a bug or > me just being stupid. Any help much appreciated. > ORDER BY DESC(?createdOn) > Fatal error: Uncaught exception 'Exception' with message 'Unsupported > cast type in order by: http://www.w3.org/2001/XMLSchema#dateTime' in This is a missing feature. I'll fix it next week. --=20 Mit freundlichen Gr=FC=DFen/Regards, Christian Weiske |
From: Tom H. <tom...@gm...> - 2007-06-14 22:05:37
|
Hi all, I'm experimenting with RAP V0.9.5 before rolling it out. First impressions are that the SparqlEngine is much much faster, which is great. However, I've hit a problem, and I don't know if it's a bug or me just being stupid. Any help much appreciated. I have this SPARQL query: PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rev: <http://purl.org/stuff/rev#> SELECT DISTINCT ?review ?title ?reviewer ?createdOn WHERE { ?resource rdfs:label ?title . ?resource rev:hasReview ?review . ?review rev:createdOn ?createdOn . ?review rev:reviewer ?reviewer . } ORDER BY DESC(?createdOn) LIMIT 10 to get the 10 latest reviews from the triplestore, ordered by ?createdOn, the values for which are of datatype <http://www.w3.org/2001/XMLSchema#dateTime> in the triplestore. This query worked ok in 0.9.4, but fails in 0.9.5 with the following error: Fatal error: Uncaught exception 'Exception' with message 'Unsupported cast type in order by: http://www.w3.org/2001/XMLSchema#dateTime' in C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\TypeSorter.php:389 Stack trace: #0 C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\TypeSorter.php(365): SparqlEngineDb_TypeSorter::getCastMethod('http://www.w3.o...', 't2.object') #1 C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\TypeSorter.php(118): SparqlEngineDb_TypeSorter->getSqlOrderBy(Array) #2 C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb.php(136): SparqlEngineDb_TypeSorter->getOrderifiedSqls(Array) #3 C:\htdocs\revyu\rdfapi-php\api\model\Model.php(897): SparqlEngineDb->queryModel(Object(DatasetMem), Object(Query), false) #4 C:\htdocs\revyu\....php(38): Model->sparqlQuery('??PREFIX rdfs: ...') #5 C:\htdocs\revyu\index.php(47): include('C:\htdocs\revyu...') #6 {main} thrown in C:\htdocs\revyu\rdfapi-php\api\sparql\SparqlEngineDb\TypeSorter.php on line 389 Any ideas? Pointers/fixes/suggestions much appreciated! Cheers, Tom. |
From: Chris B. <ch...@bi...> - 2007-06-04 14:09:29
|
Hi all, we released RAP - RDF API for PHP 0.9.5 today. The new release includes: 1. A reimplementation of the SPARQL query engine which is much faster, supports the complete W3C SPARQL specification, passes all SPARQL test cases, and fixes the security problems of the old engine. 2. An improved SPARQL client library which solves several bugs of the old library. 3. Several other bug fixes. The new version can be downloaded from the RAP website http://sites.wiwiss.fu-berlin.de/suhl/bizer/rdfapi/ Lots of thanks to Christian Weiske (Universität Leipzig) for all the great work that he has put into the new SPARQL engine. Cheers, Chris -- Chris Bizer Freie Universität Berlin +49 30 838 54057 ch...@bi... www.bizer.de |
From: Roger H. <ro...@td...> - 2007-05-17 21:02:51
|
If I try and remove a quad with a literal object from a db dataset I get Call to a member function qstr() on a non-object in /Users/rogerhyam/ Sites/trap/lib/rdfapi-php/api/model/DbModel.php on line 1042 As far as I can see this is because DatasetDb.php line 358 makes the following call // dynamic part of the sql statement $sql .= DbModel::_createDynSqlPart_SPO($quad->getSubject(), $quad- >getPredicate(), $quad->getObject()); This is a static call to the private method on the DbModel. where on line 1042 $quotedLiteral = $this->dbConn->qstr($object->getLabel()); throws the wobbly because there is no dbConn. The dbConn is only initialized when a DbModel is created. The call to the static method is not safe (probably why it is private). This only breaks with literals and I suspect it has never been tested properly. There are several places where the same call is made. What is the status of this code? Am I doing something dumb? Is anyone working on it just now? Thanks for your time on this, Roger |
From: Roger H. <ro...@td...> - 2007-05-17 19:47:47
|
Hi, Follow up to my last mail. I read the code and realized I can just pass a string into the load() method and it works fine. I should have just tried it first. Thanks, Roger |
From: Roger H. <ro...@td...> - 2007-05-17 19:08:17
|
Hi, I have run into a simple problem. I have a utility that will use http POST to send small RDF models as XML to a RAP server to be stored in a db DataSet as named graphs. The trouble is I can't work out how to take the serialized model as an XML string and create a MemModel out of it. I can save it to a file and read it back in again with the load() function but this is very wasteful. What other approach could I take? What am I missing? Many thanks for your help. Roger |
From: Christian W. <cw...@cw...> - 2007-05-12 10:29:35
|
Richard, > SparqlDbTests > Table 'raptest.models' doesn't existTable 'raptest.models' doesn't exis= t > Fatal error: Call to a member function load() on a non-object in > /Users/richard/rap/htdocs/rap-cvs/test/unit/Sparql/SparqlDbTests_test.p= hp > on line 58 Sorry for the late answer - I've been on vacation for a week. The database tables don't exist. Use this script in test/ <?php echo "Table creation script\n"; require_once 'config.php'; require_once RDFAPI_INCLUDE_DIR . 'RdfAPI.php'; //create database tables echo " Trying to connect to database\n"; $database =3D ModelFactory::getDbStore( $GLOBALS['dbConf']['type'], $GLOBALS['dbConf']['host'], $GLOBALS['dbConf']['database'], $GLOBALS['dbConf']['user'], $GLOBALS['dbConf']['password'] ); echo " Checking if tables already exist.."; if ($database->isSetup($GLOBALS['dbConf']['type'])) { echo "yes\n"; } else { echo "no\n"; echo " Creating tables\n"; $database->createTables($GLOBALS['dbConf']['type']); } echo " done\n"; ?> --=20 Regards/Mit freundlichen Gr=FC=DFen Christian Weiske |
From: Richard C. <ri...@cy...> - 2007-05-03 13:42:29
|
On 3 May 2007, at 05:28, Christian Weiske wrote: >> What else do I have to do to run the tests? Seems I have to download >> simpletest first. Also seems like I have to load something into the >> database? > > The database is automatically filled with temporary data for each unit > test that needs the database. Doesn't work for me. I believe I've set up the database correctly in =20 config.php, but no tables are created and I get this: SparqlDbTests Table 'raptest.models' doesn't existTable 'raptest.models' doesn't exist Fatal error: Call to a member function load() on a non-object in /=20 Users/richard/rap/htdocs/rap-cvs/test/unit/Sparql/=20 SparqlDbTests_test.php on line 58 Any idea? Richard > > So beside simpletest, you shouldn't need anything beside. > > --=20 > Regards/Mit freundlichen Gr=FC=DFen > Christian Weiske > > ----------------------------------------------------------------------=20= > --- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/=20 > _______________________________________________ > Rdfapi-php-interest mailing list > Rdf...@li... > https://lists.sourceforge.net/lists/listinfo/rdfapi-php-interest |
From: Christian W. <cw...@cw...> - 2007-05-03 03:29:16
|
Richard, >> I ask all people reading this to checkout latest CVS, set up >> test/config.php properly (copy config.php.dist) and let >> test/unit/allTests.php run. >=20 > What else do I have to do to run the tests? Seems I have to download > simpletest first. Also seems like I have to load something into the > database? The database is automatically filled with temporary data for each unit test that needs the database. So beside simpletest, you shouldn't need anything beside. --=20 Regards/Mit freundlichen Gr=FC=DFen Christian Weiske |
From: Richard C. <ri...@cy...> - 2007-05-02 23:37:41
|
On 1 May 2007, at 18:20, Christian Weiske wrote: > I ask all people reading this to checkout latest CVS, set up > test/config.php properly (copy config.php.dist) and let > test/unit/allTests.php run. What else do I have to do to run the tests? Seems I have to download =20 simpletest first. Also seems like I have to load something into the =20 database? Thanks, Richard > We should make sure it runs on every > platform before releasing a new version. > > --=20 > Regards/Mit freundlichen Gr=FC=DFen > Christian Weiske > > ----------------------------------------------------------------------=20= > --- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/=20 > _______________________________________________ > Rdfapi-php-interest mailing list > Rdf...@li... > https://lists.sourceforge.net/lists/listinfo/rdfapi-php-interest |
From: Christian W. <cw...@cw...> - 2007-05-01 16:20:23
|
Hello, I updated docs, fixed allTests and made sure everything works as expected. Currently, all but three unit tests work; it's SparqlEngine (the old one) that has problems with three of them (ex11_0, test-B-01, test-B-12). Shall we just exclude those, or should Tobias try to fix them= ? I ask all people reading this to checkout latest CVS, set up test/config.php properly (copy config.php.dist) and let test/unit/allTests.php run. We should make sure it runs on every platform before releasing a new version. --=20 Regards/Mit freundlichen Gr=C3=BC=C3=9Fen Christian Weiske |
From: Christian W. <cw...@cw...> - 2007-05-01 14:05:31
|
> Could someone update the api docs and cvsup them? Or is there a > generation script I did not find? Nevermind, I did it. --=20 Regards/Mit freundlichen Gr=FC=DFen Christian Weiske |
From: Christian W. <cw...@cw...> - 2007-05-01 13:38:48
|
Hello, Could someone update the api docs and cvsup them? Or is there a generation script I did not find? --=20 Regards/Mit freundlichen Gr=C3=BC=C3=9Fen Christian Weiske |
From: Christian W. <cw...@cw...> - 2007-04-29 07:48:29
|
Hello all, I saw that the api docs in doc/phpdoc/ is generated by phpdoc. The rest seems not to be generated by it. Did you write this by hand, or do you have docbook files that may get transformed into html and pdf? --=20 Regards/Mit freundlichen Gr=C3=BC=C3=9Fen Christian Weiske |
From: Christian W. <cw...@cw...> - 2007-04-28 21:32:58
|
Chris, > Sounds like the time is right for the next RAP release! >=20 > Do you still want to do further testing or speed improvements or do you= > think the engine is ready for being released? I would definitely roll a release in two or three days, after I wrote some basic documentation about how to use the engine. I also will continue adding the new features and perhaps some speed improvements, but they can wait until the release after and shouldn't block the current one. After all, the engine is much faster as the current one, so it's a step forward in any case. --=20 Regards/Mit freundlichen Gr=C3=BC=C3=9Fen Christian Weiske |
From: Chris B. <ch...@bi...> - 2007-04-28 20:35:53
|
Hi Christian, this is great news! Sounds like the time is right for the next RAP release! Do you still want to do further testing or speed improvements or do you think the engine is ready for being released? Thanks a lot in the name of the RAP community for all your work that you have put into the new engine :-) Cheers Chris -- Dr. Chris Bizer Freie Universität Berlin +49 30 838 54057 ch...@bi... www.bizer.de ----- Original Message ----- From: "Christian Weiske" <cw...@cw...> To: <rdf...@li...> Sent: Saturday, April 28, 2007 7:19 PM Subject: [Rdfapi-php-interest] SparqlEngineDb: basically finished > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ -------------------------------------------------------------------------------- > _______________________________________________ > Rdfapi-php-interest mailing list > Rdf...@li... > https://lists.sourceforge.net/lists/listinfo/rdfapi-php-interest > |
From: Christian W. <cw...@cw...> - 2007-04-28 17:19:46
|
Hi all, I'm very proud that I can announce: All unit tests pass now! The task left is implementing some extensions to the sparql standard. On my homepage you can find a retrospective of my work up to now: http://cweiske.de/tagebuch/With%20SPARQLing%20eyes.htm --=20 Regards/Mit freundlichen Gr=C3=BC=C3=9Fen Christian Weiske |
From: Christian W. <cw...@cw...> - 2007-04-28 16:56:36
|
> In the last two weeks I have addressed LIMIT and UNION support in my > database-driven sparql engine. For this, I extended the current sparql > parser to parse LIMITs and convert them into a nice tree. The tree make= s > it easily possible to replace the current code in the old, memory based= > SparqlEngine limit handling code (which has a barn-door wide security > hole currently by using the evil eval() function to verify limit > clauses) by a secure alternative. I didn't have time to do this yet. > SparqlEngineDb's LIMIT support is nearly finished; the 41 limit unit > tests pass (with the exception of three which are either not possible t= o > implement, or are not worth the required work [which would be huge] and= > would slow down the queries badly. All of them are edge cases.). I don't know why I confuse LIMIT with FILTER when talking or writing. I meant I implemented full FILTER support. --=20 Regards/Mit freundlichen Gr=FC=DFen Christian Weiske |
From: Chris B. <ch...@bi...> - 2007-04-27 07:58:00
|
Hi Christian, nice to hear about your progress. > If they are done, my work is basically done. I will add some new > features currently not in the Sparql standard (e.g. returning > datatypes > and languages (and variable renamings needed for this) as well as > grouping functionality. When you approach grouping functionality and aggregates, it might be a good idea to have a look at what Orri (cc'ed) implemented for Virtuoso, so that several implementations use the same extensions. For more information about Orri's work see http://docs.openlinksw.com/virtuoso/rdfsparqlaggregate.html What do you think? Cheers Chris -- Dr. Chris Bizer Freie Universität Berlin Phone: +49 30 838 54057 Mail: ch...@bi... Web: www.bizer.de ----- Original Message ----- From: "Christian Weiske" <cw...@cw...> To: <rdf...@li...> Sent: Thursday, April 26, 2007 11:40 PM Subject: [Rdfapi-php-interest] SparqlEngineDb: current status > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ -------------------------------------------------------------------------------- > _______________________________________________ > Rdfapi-php-interest mailing list > Rdf...@li... > https://lists.sourceforge.net/lists/listinfo/rdfapi-php-interest > |
From: Christian W. <cw...@cw...> - 2007-04-26 21:40:57
|
Hello all, In the last two weeks I have addressed LIMIT and UNION support in my database-driven sparql engine. For this, I extended the current sparql parser to parse LIMITs and convert them into a nice tree. The tree makes it easily possible to replace the current code in the old, memory based SparqlEngine limit handling code (which has a barn-door wide security hole currently by using the evil eval() function to verify limit clauses) by a secure alternative. I didn't have time to do this yet. SparqlEngineDb's LIMIT support is nearly finished; the 41 limit unit tests pass (with the exception of three which are either not possible to implement, or are not worth the required work [which would be huge] and would slow down the queries badly. All of them are edge cases.). Further, I added support for UNIONs so that the custom union unit tests pass now. This brought changes in the way results needs to be handled, so if you already have own result renderers, you need to adapt them (make a cvs diff between the old and the new default renderer code, and you see that it's trivial changes). After I got this done this evening, I tries out the arq unit tests. 11 of them fail currently, so that we have a total score of 120 passes and 11 failures. I will try to fix them this weekend. If they are done, my work is basically done. I will add some new features currently not in the Sparql standard (e.g. returning datatypes and languages (and variable renamings needed for this) as well as grouping functionality. This changes shall be proposed to the W3C for the inclusion in Sparql standard, if they turn out to work well. So long, --=20 Regards/Mit freundlichen Gr=C3=BC=C3=9Fen Christian Weiske |
From: Sean B. <sea...@ma...> - 2007-04-23 11:16:40
|
On 19 Apr 2007, at 17:20, Sean Bechhofer wrote: > > Hi > > I've recently started using RAP 0.9.4. Seems to be going well, but I > have a problem with non-ASCII characters in query results. I'm using > RAP to query a sesame2 server using SPARQL. The data in the > repository has literals with non-ascii characters (encoded using > UTF-8). If I query the repository using XML as the output format, the > result I get back contains the literals as I'd expect. > > However, if I query with an array output format, when I inspect the > literal values, they end up being truncated at the point where the > non-ASCII characters occur in the literal. > > Any ideas? Is it possible to get these literals using the array > style? Do I need to set something in order to make this happen? I > guess I *could* use xml query output, but I like the convenience of > the array style. I think this is probably an issue somewhere within the methods that convert the results in the SPARQL Engine. I tried querying using the xml output format, then parsing the results myself and pulling out the literals. That works fine..... Sean -- Sean Bechhofer School of Computer Science University of Manchester sea...@ma... http://www.cs.manchester.ac.uk/people/bechhofer |
From: Sean B. <sea...@ma...> - 2007-04-19 16:43:59
|
Hi I've recently started using RAP 0.9.4. Seems to be going well, but I have a problem with non-ASCII characters in query results. I'm using RAP to query a sesame2 server using SPARQL. The data in the repository has literals with non-ascii characters (encoded using UTF-8). If I query the repository using XML as the output format, the result I get back contains the literals as I'd expect. However, if I query with an array output format, when I inspect the literal values, they end up being truncated at the point where the non-ASCII characters occur in the literal. Any ideas? Is it possible to get these literals using the array style? Do I need to set something in order to make this happen? I guess I *could* use xml query output, but I like the convenience of the array style. Cheers, Sean -- Sean Bechhofer School of Computer Science University of Manchester sea...@ma... http://www.cs.manchester.ac.uk/people/bechhofer |
From: Chris B. <ch...@bi...> - 2007-04-16 06:38:05
|
Hello Vangelis, nice to hear that you like RAP. I think a caching layer would also be useful for many other projects based on RAP. What do you think about contributing it to the RAP code base? Christian Weiske <cw...@cw...> is currently work on the RAP SPARQL engine. If you like to contribute your code, please send it to the list so that Christian can see how it fits together with his developments. Cheers Chris -- Dr. Chris Bizer Freie Universität Berlin +49 30 838 54057 ch...@bi... www.bizer.de ----- Original Message ----- From: "Vangelis Haniotakis" <han...@uc...> To: <ch...@bi...> Sent: Sunday, April 15, 2007 4:15 PM Subject: RAP use case: vod.sch.gr > Hello. > > We thought you'd appreciate knowing that we're currently using > RAP 0.9.4 in production as the backend for the Greek School > Network Video on Demand website. It's a fairly trivial use > case, but here goes: > > We have a small amount of RDF/Dublin Core metadata about our videos > (about 5000 records at the moment). We used to store these in > an XML database (eXist) and access them with XQuery, but we decided > to go with SPARQL for the next iteration of development. > > We're using PHP for the front-end, heavily utilizing the Prado > framework as well as AJAX technologies. We rely on data from RAP > for pretty much all the information displayed on the website, using > previously prepared SPARQL queries. > > Since in the course of a single page / AJAX request we ended up doing > a good amount of RAP calls, in the interests of performance we interjected > a caching layer between our frontend and RAP. Fairly simple: we md5() > the query and save the serialized results to a database. On next > call, we md5() the query again, pull the results from the cache DB, > and never hit RAP at all. In this way we can have a quite responsive > webpage with small performance hits when a cache entry expires. > > You can see the website here: > http://vod.sch.gr/ > > We'd like to sincerely thank the RAP development team for their effort > and quality code; you made our job significantly easier. > > |
From: Christian W. <cw...@cw...> - 2007-03-30 10:00:31
|
Hello all, This week I implemented support for prepared statements and result renderers. Both features were driven by the need that Ontowiki is switching to Sparql internally (instead of using direct sql queries), and sometimes does some hundreds of sparql queries to create one html pag= e.. Speed is necessary in this case - parsing the sparql queries and transforming them into native sql takes some time. This time can be saved if you do 50 queries of the same type, just with different query values (SELECT ?o { ?s foaf:name ?o }, changing 'foaf:name' every time). In normal SQL this is done by using prepared statements: replace the values in your query with '?' question marks (or ":varname" style variable names), and prepare it. You may execute the statement with different variable values, greatly speeding it up since query parsing can be omitted. The SPARQL standard does not mention prepared statements. Thus, my implementation is proprietary and extend the standard. An example of how to use prepared statements can be found in test/sparqlDb-prepare.php I benchmarked repeatedly doing 1000 simple queries using normal queries and using prepared statements. The speedup when using prepared statements is 400%, taking 3 seconds on average instead of 12 seconds. Note that this benchmark took place without native prepared statements support. The problem is that ADODB's mysqli driver does only emulate prepared statements instead of using mysqli's native functions. If ADODB's mysqli driver will someday support native sql prepared statements, or the benchmark would be run on a database whose driver currently support native sql prepared statements, we would get an even higher speedup. Part 2: Result Renderers Ontowiki internally does not use RAP's object classes for Resource/Literal/Blank and such but its own optimized classes. To use RAP's sparql results, the result sets returned by the sparql engine needed to be converted, causing a the process to be slowed down by a constant factor. Since I needed a good way to create XML and HTML results anyway (and Bartel Pieterse also asked for JSON result support), I developed some pluggable result renderers. Using them, you can easily create your own result renderer that converts the raw database results into the format you desire, without needing to change any of RAPs classes - just pass your renderer's class or even an renderer object to the query() or execute() method, and this one is used to create the results. Currently I implemented three result renderers: The default rap object/array renderen, HTML and an XML renderer (as specified by http://www.w3.org/TR/rdf-sparql-XMLres/). The only thing left is that I still need to implement the same system for the non-database sparql engine, but that shouldn't be that hard. My next task is to implement a Sparql Query filter parser, and add filtering support to SparqlEngineDb. --=20 Regards/Mit freundlichen Gr=C3=BC=C3=9Fen Christian Weiske |