[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/runtime/nepomuk/services/ontologyloader
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2009-09-16 10:09:34
Message-ID: 1253095774.176687.11850.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1024286 by trueg:

Finally I integrated the crappy inferencer which has been created "back in the day" during the run
of the Nepomuk research project by DFKI Kaiserslautern. It is crappy as it only provides limited and
incomplete inference on sub classes and sub properties.

While it significantly slows down the import of ontologies it gives us much more power with respect 
to queries.

I will elaborate in a blog.


 M  +1 -0      CMakeLists.txt  
 A             crappyinferencer.cpp   [License: LGPL (v2)]
 A             crappyinferencer.h   [License: LGPL (v2)]
 M  +8 -3      ontologymanagermodel.cpp  


--- trunk/KDE/kdebase/runtime/nepomuk/services/ontologyloader/CMakeLists.txt #1024285:1024286
@@ -12,6 +12,7 @@
   ontologyloader.cpp
   ontologymanagermodel.cpp
   graphretriever.cpp
+  crappyinferencer.cpp
   )
 
 qt4_add_dbus_adaptor(ontologyloader_SRCS
--- trunk/KDE/kdebase/runtime/nepomuk/services/ontologyloader/ontologymanagermodel.cpp #1024285:1024286
@@ -17,6 +17,7 @@
 */
 
 #include "ontologymanagermodel.h"
+#include "crappyinferencer.h"
 
 #include <QtCore/QUrl>
 #include <QtCore/QDateTime>
@@ -73,7 +74,7 @@
         QString query = QString( "select ?dg ?mdg where { "
                                  "?dg <%1> ?ns . "
                                  "?mdg <%3> ?dg . "
-                                 "FILTER(STR(?ns) = \"%2\") . "
+                                 "FILTER(REGEX(STR(?ns), \"^%2\")) . "
                                  "}" )
                         .arg( Soprano::Vocabulary::NAO::hasDefaultNamespace().toString() )
                         .arg( ns.toString() )
@@ -251,6 +252,8 @@
         : q( p ) {
     }
 
+    CrappyInferencer m_inferenceModel;
+
 private:
     OntologyManagerModel* q;
 };
@@ -260,10 +263,12 @@
 
 
 Nepomuk::OntologyManagerModel::OntologyManagerModel( Soprano::Model* parentModel, QObject* parent )
-    : FilterModel( parentModel ),
+    : FilterModel(),
       d( new Private( this ) )
 {
     setParent( parent );
+    FilterModel::setParentModel( &d->m_inferenceModel );
+    setParentModel( parentModel );
 }
 
 
@@ -275,7 +280,7 @@
 
 void Nepomuk::OntologyManagerModel::setParentModel( Soprano::Model* parentModel )
 {
-    FilterModel::setParentModel( parentModel );
+    d->m_inferenceModel.setParentModel( parentModel );
 }
 
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic