PHOAF v0.4 and performance tests for inference engine

I forgot to mention it on my previous post, but PHOAF v0.4 is available[1]. This version handles Relationship vocabulary as explained here.

Here are the results of a few tests about time / memory performance of 0.3 vs 0.4 - that uses inference engine. I choosed 3 FOAF files which differ in the way they represent relations between people:

I ran the tests under a 1.8Ghz Pentium-M with 512Mo RAM, and files were copied locally to avoid network latency:

alex@marvin:~/foaf-perf$ ./perf.sh
** Performances for models/danbri.rdf
* PHOAF v0.3:  Dan Brickley knows 22 people  Memory: 2159288  Time: 0.334619998932 seconds
* PHOAF v0.4:  Dan Brickley knows 22 people  Memory: 2722496  Time: 0.857136964798 seconds  

** Performances for models/iandavis.rdf
* PHOAF v0.3:  Ian Davis knows 15 people  Memory: 2162440  Time: 0.111047029495 seconds
* PHOAF v0.4:  Ian Davis knows 15 people  Memory: 2725496  Time: 0.747648954391 seconds  

** Performances for models/kasei.rdf
* PHOAF v0.3:  Gregory Todd Williams knows 1 people  Memory: 3096304  Time: 0.339249849319 seconds
* PHOAF v0.4:  Gregory Todd Williams knows 6 people  Memory: 3650496  Time: 1.99226093292 seconds

As you can see, the issue is more on time than memory, especially when it has to create new triples from default model using inference engine: script behavior is almost the same for the 2 first files, but really longer for the last one, where it discovers new <foaf:knows> relations.

Yet, even on files using only <foaf:knows> it can be problematic as it can make your PHP script timeout, as it seems to do in FOAFMap for files containing a lot of relationships (~100). So if you plan to use it on big models, update your PHP time limit.

Notes

[1] As I got some bugs reported since FOAFMap.net has been online, a new version is expected soon.

Comments

Leave a Reply

You must be logged in to post a comment.