Hi. <br><br>I was going through the Nepomuk framework in my normal fashion, and I happened to notice a couple of things.<br><br>1. The <b>Nepomuk::ResourceData::hasProperty( const QUrl&amp; uri )</b> function currently uses the MAINMODEL to answer. It think it should use the cache, as it would be faster. The function <b>hasProperty( const QUrl&amp; p, const Variant&amp; v ) </b>also uses the cache. A patch has been provided.<br>


<br>2. The <b>Nepomuk::ResourceData::removeProperty( const QUrl&amp; uri )</b> function doesn&#39;t update the cache. The setProperty function does. It should be symmetrical. I think.<br><br>3. In <b>Nepomuk::ResourceFilterModel::updateProperty( const QUrl&amp; resource, const QUrl&amp; property, const Node&amp; value )</b> shouldn&#39;t the line if( it.hasNext() ) be a while( it.hasNext() ) ? I haven&#39;t tested it out, but I think this is what should happen -<br>

<br>Let&#39;s say I have a resource with a uri and certain properties.<br><br>uri a rdf:Resource .<br>uri a rxx:A .<br>uri a rxx:B .<br><br>and I call the function <b>updateProperty</b>( uri, rdf:type, rxx:C ). The current implementation would get all the above 3 statements (I&#39;m not sure in what order) . Suppose it got <i>&quot;uri a rdf:Resource</i>&quot; first. It would then proceed to remove the statement and add the <i>&quot;uri a rxx:C&quot; </i>statement. This doesn&#39;t seem right. <br>

<br>IMO, it should either delete all matching statements and add the one specified in the arguments or it should take an oldValue and newValue and accordingly change. KDevelop says it isn&#39;t used anywhere, so this isn&#39;t really that important. :-/<br>

<br>Thanks<br><br>- Vishesh Handa<br>