[Nepomuk] Review Request: Remove special handling for rdf:type

Vishesh Handa me at vhanda.in
Sat Jul 14 07:10:10 UTC 2012



> On July 12, 2012, 9:49 a.m., Sebastian Trueg wrote:
> > libnepomukcore/resource/resourcedata.cpp, line 71
> > <http://git.reviewboard.kde.org/r/105517/diff/1/?file=72090#file72090line71>
> >
> >     Why do you still need variable m_types when the point is to remove the special handling?
> 
> Vishesh Handa wrote:
>     For new resources. When you create a new Resource via Resource( QUrl(), NCO::Contact() ), the type needs to be saved when the resource is created. Though I think I could simplify the code by making it a simple QUrl instead of a list.
>     
>     I'll try it out.
> 
> Sebastian Trueg wrote:
>     Can't you just put it into the cache and save everything in the cache in ResourceData::store()?

Possibly. But I think that might complicate stuff with the shared hash. Not sure right now.

Anyway, that would go in a separate patch.


> On July 12, 2012, 9:49 a.m., Sebastian Trueg wrote:
> > libnepomukcore/resource/resourcedata.h, line 92
> > <http://git.reviewboard.kde.org/r/105517/diff/1/?file=72089#file72089line92>
> >
> >     hasType(const Types::Class& type)
> >     would be cool instead. Internally it could use property()
> 
> Vishesh Handa wrote:
>     In ResourceData? Or did you mean in Resource?
> 
> Sebastian Trueg wrote:
>     I meant Resource, yes.

I was changing hasType(), addType(), and setTypes, but then I noticed that I'll have to change the list from QList<Type::Class> to QList<QUrl>. Do you really want this?


- Vishesh


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105517/#review15719
-----------------------------------------------------------


On July 14, 2012, 7:08 a.m., Vishesh Handa wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/105517/
> -----------------------------------------------------------
> 
> (Updated July 14, 2012, 7:08 a.m.)
> 
> 
> Review request for Nepomuk and Sebastian Trueg.
> 
> 
> Description
> -------
> 
> Remove special handling for rdf:type
> 
> This includes storing the maintype when loading all the properties. This
> simplifies the code base, and actually improves performace.
> 
> Because the type deduction is done during load time, the relevant types
> needed to be loaded into memory by Types::EntityPrivate, this increases
> the load time for each resource by an order of 5x. This extra load
> eventually goes down when all the required types are loaded, but it's
> there.
> 
> Also, the additional cost of infering the type each time doesn't seem to
> have any performance loss. Mainly cause everything is already in memory.
> 
> Another reason for this patch is the planned refactoring of the class
> internals to use shared memory. Every extra variable in ResourceData
> adds an overhead.
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt 4d5ae3f971ddd7479ea711097323fd034caecb66 
>   Info.plist.template PRE-CREATION 
>   includes/CMakeLists.txt 4ac2d7cfcba1522eb73b432533a08b3fd1e148b3 
>   includes/Query/ResultIterator PRE-CREATION 
>   libnepomukcore/CMakeLists.txt 066c8986dfa2b3150072dbd96a71caf8873cea06 
>   libnepomukcore/datamanagement/createresourcejob.h 7abf51d4c9c3a4bd0c4036234dae006c7b10bfb8 
>   libnepomukcore/datamanagement/resourcewatcher.cpp 0cd846afc8ceb15c7f3614c5f3a0705c76700b24 
>   libnepomukcore/misc/utils.cpp 28747226e631c17767061cbf7bf70e990dc53608 
>   libnepomukcore/query/comparisonterm.cpp 64e5a37e33e73a6828690a9a4a12e2e5215af131 
>   libnepomukcore/query/dbusoperators.cpp 055ea8503b31cee1770de8984f3e829dc92c4437 
>   libnepomukcore/query/queryserializer.cpp 0d8bc7ecc42d8be4d787e31b7dceabfe4ede2759 
>   libnepomukcore/query/resourceterm.cpp d539f4dd6ebf8362a4d240a8280be05a1a4efb94 
>   libnepomukcore/query/resultiterator.h PRE-CREATION 
>   libnepomukcore/query/resultiterator.cpp PRE-CREATION 
>   libnepomukcore/query/term.cpp c99a49e2dc0b5a95ad34ca2bfedb22717e3ca3f3 
>   libnepomukcore/resource/resource.h 3cc30c2cbc44e6e3f5c6fb6218df811d0104950c 
>   libnepomukcore/resource/resource.cpp c237f44c1420929143299aab391a0f2a7709f894 
>   libnepomukcore/resource/resourcedata.h 370889700cb93dbf93bc6cb4b498fab2470cafba 
>   libnepomukcore/resource/resourcedata.cpp 6fa262f955936637f48c81b0cce6ac9069f37167 
>   libnepomukcore/resource/resourcemanager.cpp bfbb610ca2bd286114588ea80a3f4c68c540b93c 
>   libnepomukcore/resource/tag.h d5eb11bd3e68a3c4bbeb5a3ed3412c38e73186a1 
>   libnepomukcore/resource/tag.cpp 14ad18f9ab9b322951e6bf994117687509d1c35d 
>   libnepomukcore/resource/variant.cpp 9d391ce83baaa695cb149408c6c25b9c52d35862 
>   libnepomukcore/test/resourcetest.cpp 82e26c36436f58774b3b86fe1a25d084a65a6217 
>   libnepomukcore/test/tagwidgettest.cpp c7b37c1720a31a0451977a7e5b4d4d0af0ac91a9 
>   services/backupsync/gui/syncfileidentifier.cpp 0837b26ca1021055e054fa62c0c650269d323fd0 
>   services/backupsync/lib/resourceidentifier.cpp 14e85f1124a8e4e8035ad8f044da11043c4fd6ca 
>   services/backupsync/lib/test/nepomuksynctests.cpp a9cc2f19b399557bddaca0b19f6d875837fe6cfd 
>   services/backupsync/service/syncmanager.cpp dbeef86995f3a936a306d15283587aabd2772a45 
>   services/queryservice/folder.cpp 8f82f161868872e255c8b5addf7fefaf17c6e2e7 
>   services/queryservice/folderconnection.cpp 3bc20f52b3d0428f025c1faaeee5625ab980d431 
>   services/queryservice/searchrunnable.cpp 522d6f94c5c897b2537698d2bd764d666f917c98 
> 
> Diff: http://git.reviewboard.kde.org/r/105517/diff/
> 
> 
> Testing
> -------
> 
> Manual + Unit Testing :)
> 
> 
> Thanks,
> 
> Vishesh Handa
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/nepomuk/attachments/20120714/325051a2/attachment.html>


More information about the Nepomuk mailing list