Nepomuk/zh-tw: Difference between revisions

From KDE Wiki Sandbox
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages />  
<languages />  


=Nepomuk=
=Semantic Search=


這個頁面的目的不是詳細解釋Nepomuk技術及其每個細節,而是作簡短的概述,舉一些例子,分享其背後的設想和給予指向網上相關資訊的鏈接。
The aim of this page is not to fully explain KDE's Semantic Search technology and every detail, but to give a short overview, some examples, share the vision behind it and link to relevant information on the web.
 
== Baloo is the next generation of semantic search ==
 
From KDE Applications 4.13 onwards, the '[https://community.kde.org/Baloo Baloo]' file indexing and file search framework replaces Nepomuk. Read [http://dot.kde.org/2014/02/24/kdes-next-generation-semantic-search details on the changes for Applications 4.13 here]. Semantic Search no longer uses a single, big database, but separate, specialized databases for each type of data. The new search databases are in <tt>$HOME/.local/share/baloo</tt>. If you upgraded to KDE Applications 4.13 from an earlier KDE release, you can delete <tt>$KDEHOME/share/apps/nepomuk</tt>.


==簡短說明==
==簡短說明==


[[Special:myLanguage/Glossary#Nepomuk|術語]]提到的,Nepomuk有關數據的分類,組織和表達。它並非是一個應用程序,而是可以被開發人員應用在程序中的組件。
As the [[Special:myLanguage/Glossary#Nepomuk|Glossary]] mentions, Semantic Search is about classification, organisation and presentation of data. It is not an application, but a component which can be used by developers within applications.


<span class="mw-translate-fuzzy">
=== Try out in Dolphin ===
=== 試用 ===
For example, the [[Special:myLanguage/Dolphin|Dolphin]] file manager makes use of Search. In KDE Applications versions prior to 4.13 Semantic Search must be enabled from <menuchoice>System settings -> Desktop search</menuchoice>. The information sidebar of Dolphin (<menuchoice>Control -> Panels -> Information</menuchoice>, or press <keycap>F11</keycap>) presents information extracted by Search about the selected file, and also allows you to assign tags, ratings and comments to files. This information is then stored and indexed by Search. You can then search for metadata using the navigation bar in Dolphin. Click to <menuchoice>Find</menuchoice>, or press <keycap>Ctrl+F</keycap>, and search for file names or file contents.
舉例來說,[[Special:myLanguage/Dolphin|Dolphin]]採用了 Nepomuk。對於後面例舉的必須保證系統設置-> 桌面搜索 的 Nepomuk 和 Strigi 都已經開啟。 Dolphin的信息側面板允許你給文件打上標籤,評分和評論。這些信息隨後存儲在 Nepomuk 並且被 Strigi 編入索引。然後你可以在 Dolphin 裡用導航欄搜索元數據(metadata)。輸入"nepomuksearch:/",隨後是搜索詞。
</span>


<!-- info about nepomuksearch:/ deleted per its developer: "Actually nepomuksearch:/ is an internal thing and should not be entered by the user." its developer -->
<!-- info about nepomuksearch:/ deleted per its developer: "Actually nepomuksearch:/ is an internal thing and should not be entered by the user." its developer -->
Line 19: Line 21:
==功能==
==功能==


Nepomuk 提供數''功能給應用程序。第一個也是其中最簡單的是手動標記(manual tagging),評分(rating)和註釋(commenting),如使用在Dolphin中。這有助於你更快的找到你的文件,但這種做法太耗費精力。
KDE's Semantic Search offers several 'layers' of functionality to applications. The first and most simple of those is manual tagging, rating and commenting, as used in Dolphin. This helps you to find your files faster, but is also a lot of work.


<span class="mw-translate-fuzzy">
To make finding files containing text easier, Search offers a second functionality: indexing the text of files. You can find files by entering some words which you know are in there, or just (part of) their title.
為了使得搜索包含文本的文件更容易,Nepomuk 提供了第二個功能:索引(indexing)文件中的文本。它使用一種被稱作[[Special:myLanguage/Glossary#Strigi|Strigi]] 的技術來實現。現在你也能通過輸入你所已知的其中某些詞語,或僅僅(部分)它們的標題來搜索到文件。
</span>


第三層非常複雜,是Nepomuk 被視為歐盟(European union)多個公司和大學研究項目的原因。這部分你會遇到很難理解的詞組像是'語義桌面(semantic desktop''本體論(ontologies)'。基本上,它涉及到語境(context)和關係(relationships)。
The third layer is a very complex one, and the reason why the underlying technology, Nepomuk, was conceived as a research project of several companies and universities in the European union. This is where you will find difficult words like 'semantic desktop' and 'ontologies'. Basically, it is about context and relationships.


=== Indexing files ===
=== Indexing files ===


Strigi does not index every file on the hard drive. Its default configuration in most Linux distributions excludes some common patterns for backup files and configuration directories, and it only indexes certain directories in your home folder. You can change this in <menuchoice>System Settings -> Desktop Search -> Desktop Query -> Customize index folders… -> Folders to index</menuchoice>.
Search does not index every file on the hard drive. Its default configuration in most Linux distributions excludes some common patterns for backup files and configuration directories. You can change this in <menuchoice>System Settings -> Desktop Search</menuchoice>. Add folders to be excluded. If you want to turn off indexing of files entirely, just add your home folder there.
 
Note that Strigi as of KDE 4.7 does not follow symbolic links ({{bug|208602}}). Up to KDE 4.9, even if the user selects folders under the symbolic link for indexing ({{bug|287593}}), content will not been indexed. The specific bug has been fixed. Thus, the user will be able to see the symbolic links, but she/he will not be allowed to mark any of them for indexing. (A symbolic link is a file that "points" to another file or directory; Dolphin displays symbolic links in ''italic''.) You must find the path to the actual directory (in '''Dolphin''', select the file, choose <menuchoice>Properties -> General -> Points to</menuchoice>) and tell Strigi to index that.


In '''System Settings''' you can also control whether Strigi indexes files on removable media such as USB drives and CD-ROMs.
In '''System Settings''' you can also control whether Search indexes files on removable media such as USB drives and CD-ROMs. In KDE Applications 4.13 this is not available, removable media are not indexed. Future versions are planned to reintroduce this functionality.


==例子==
==例子==


讓我試著用兩個例子解釋Nepomuk 提供了什麼。
Let me try to explain what Semantic Search offers using two examples. These features are not available fully yet - the base is there but application developers need to integrate this in their applications.


===關係(Relationship)===
===關係(Relationship)===
Line 43: Line 41:
假設你2週前從你的某個好友手上收到一張照片。你隨後保存照片到電腦的某個地方。現在你如何找到那個文件哪?如果你不記得保存的位置,你就杯具了(人生是個茶几,你是個杯具)。
假設你2週前從你的某個好友手上收到一張照片。你隨後保存照片到電腦的某個地方。現在你如何找到那個文件哪?如果你不記得保存的位置,你就杯具了(人生是個茶几,你是個杯具)。


現在 Nepomuk 旨在幫助你。你知道這個文件是你朋友發給你的,但你電腦不知道。然而,Nepomuk 能夠記得這個關係。搜索你朋友的名字,隨後便會出現照片哦!
Now Semantic Search aims to help you. You know this file came from that friend of yours, your computer does not know. Search, however, can remember this relationship. Searching on the name of your friend will therefore pop up the photo!


另一個潛在的關係是在你複製出來文本的網頁和你粘貼文本進去的文檔之間,抑或顯示同一輛車的兩幅圖片之間。這樣的關係有時能從文件本身上獲得(你能夠分辨照片,看出誰或什麼東西在那上面)或由關聯的程序(上面E-mail 的例子)提供。 Nepomuk 的這部分還是加緊開發中,需要整合進應用程序,所以你可以期望這功能花費更多年真正實現。切~~( ﹁ ﹁ )
Another potential relationship is between a web page you copied text from and the document you pasted it into, or two images showing the same car. Such relations can sometimes be extracted from the files themselves (you could analyze photos and see who or what is on there) or supplied by the applications involved (as in the above email example). This part of Search is still under heavy development, and needs integration in applications, so you can expect it to take a few more years to really shine.


總之,Nepomuk 的這部分是有關使得搜索智能。試想下Google 是如何智能化你的搜索:當你搜索旅店和城市名,它在網站搜索結果之上顯示google 地圖顯示你提到的那個城市中的各家旅店!它甚至可能推荐一個更適合的名稱以免你犯了拼寫錯誤。 Google 對網站之間的關係(鏈接)使用複雜計算,試著將最相關的信息放置在搜索結果的頂部。 Nepomuk 會能夠提供那樣智能的搜索結果,並用關聯信息根據相關性調整搜索結果。
All in all, this part of Semantic Search is about making search smart. Think about how Google tries to be smart with your searches: when you search for a hotel and a city name, it shows above the website results a google map showing hotels in the city you mentioned! It might even suggest a better name in case you made a spelling mistake. Google also tries to put the most relevant information on top of the list of results, using complex calculations on relationships (links) between websites. Semantic Search will be able to offer such smart results and order them on relevancy using relationship information.


===語境(Context)===
===語境(Context)===


這些關係(relationships)不但能幫你搜索文件,也會影響到應用程序及它們提供的信息。注意這種使用Nepomuk 的方式說是設想更恰當而非現實!當中很多組件已經做好,但總體上看都還沒整合進應用程序和桌面。
These relationships can not only help you while searching for files, but also have an influence on applications and what information they present. Note that this way of using Search is still more a vision than reality! Many of the components are in place, but it is not yet integrated in applications and the desktop as a whole.


這裡有個例子講把語境認知(context awareness)帶到桌面上助你工作更有效率。
這裡有個例子講把語境認知(context awareness)帶到桌面上助你工作更有效率。
Line 59: Line 57:
如果能更好的組織這一切會非常棒,對嗎?
如果能更好的組織這一切會非常棒,對嗎?


進入'[[Special:myLanguage/Glossary#Activities|活動]]'。之前有在[[Special:myLanguage/Plasma|Plasma]] 中介紹過,當前提供了另類的'桌面'。它們有點像虛擬桌面,但改變的是桌面本身,不是程序集。不同的部件,壁紙之類的東西。當然,自 KDE SC 4.3 後,每個虛擬桌面能夠擁有自個的活動,虛擬桌面和活動是同步的。
Enter '[[Special:myLanguage/Glossary#Activities|activities]]'. These have been introduced in [[Special:myLanguage/Plasma|Plasma]], and currently offer different 'desktops'. They are a bit like virtual desktops, except that the desktop itself changes, not the set of applications. Different widgets, background, things like that. Of course, since Plasma 4.3, each virtual desktop can have its own activity, bringing the two in sync.


如果程序和桌面認識活動,你可以根據經常工作的任務創建活動。所以如果你經常不得不修改帶報價的電子表格,你創建這樣一個活動:擺放一個「文件夾視圖」(或多個)部件到桌面上,添加一個計算器和一個todo 部件來記錄還需要修改的東西。可能需要一個「郵件文件夾」部件來顯示有關報價表問題的郵件!
如果程序和桌面認識活動,你可以根據經常工作的任務創建活動。所以如果你經常不得不修改帶報價的電子表格,你創建這樣一個活動:擺放一個「文件夾視圖」(或多個)部件到桌面上,添加一個計算器和一個todo 部件來記錄還需要修改的東西。可能需要一個「郵件文件夾」部件來顯示有關報價表問題的郵件!
Line 71: Line 69:
當然,上面所述很大程度與電腦後頭工作的人是在辦公室還是在家有關。遊戲玩家或臨時用戶可能不太會用到這些活動。
當然,上面所述很大程度與電腦後頭工作的人是在辦公室還是在家有關。遊戲玩家或臨時用戶可能不太會用到這些活動。


注意上面描述的情節仍舊離現實很遠。基礎的東西在 KDE 中已經有了,但其他部分缺很大。
The scenario described above is already partially implemented in the Activities but much work is still left.


==Frequently Asked Questions==
==Frequently Asked Questions==
Line 79: Line 77:
;What is the Nepomuk Semantic Desktop, and the Strigi Desktop File Indexer?
;What is the Nepomuk Semantic Desktop, and the Strigi Desktop File Indexer?


:The Nepomuk Semantic Desktop is the foundation of the all the other modules of the Nepomuk infrastructure. It provides a way to organize, annotate and build relationships among the data (not only file name and content, but for example which applications used a certain file, or how it is tagged). A number of KDE applications and workspaces use this basic infrastructure to deliver features such as email tagging ([[Special:myLanguage/KMail|KMail]]) or activity setup (Plasma).  
: Nepomuk and Strigi are technologies part of what delivers the abilities of the Semantic Search in KDE. Both are not used directly in the latest generation of KDE's Semantic Search ([http://dot.kde.org/2014/02/24/kdes-next-generation-semantic-search details]), however their successors share much of their code and concepts. Semantic Search provides a way to organize, annotate and build relationships among the data (not only file name and content, but for example which applications used a certain file, or how it is tagged). A number of KDE applications and workspaces use this basic infrastructure to deliver features such as email tagging ([[Special:myLanguage/KMail|KMail]]) or activity setup (Plasma).  


:On the other hand, the Strigi Desktop File Indexer is a system to index files so that they can be added to the main Nepomuk repository, a convenient way to use them within Nepomuk without adding any file manually. Also, applications such as [[Special:myLanguage/Dolphin|Dolphin]] can then search for files basing on content, name, or other meta-data (e.g. tags) associated to indexed files. Such an indexer can also index non-text files, such as PDFs, by accessing the meta-data contained in these files (author, publication information, etc.). Some KDE components ship additional "analyzers" for more file types. Nepomuk can be fully functional without the use of the File Indexer, which is an additional (and optional) component.
:The file indexing allows applications such as [[Special:myLanguage/Dolphin|Dolphin]] to search for files based on content, name, or other meta-data (e.g. tags) associated to indexed files. Such an indexer can also index non-text files, such as PDFs, by accessing the meta-data contained in these files (author, publication information, etc.). Some KDE components ship additional "analyzers" for more file types.


; Why do we need both Akonadi and Nepomuk?  Aren't they doing the same thing?
; Why do we need both Akonadi and Semantic Search?  Aren't they doing the same thing?


:There is often a good deal of confusion about Akonadi and Nepomuk. [http://cmollekopf.wordpress.com/2013/02/13/kontact-nepomuk-integration-why-data-from-akonadi-is-indexed-in-nepomuk/ Why data from Akonadi is indexed in Nepomuk] explains exactly why we have both, and what their roles are.  Don't miss the additional information from [http://en.opensuse.org/User:Wstephenson Will Stephenson] in the Comments section.
: In short, Akonadi provides a cache of PIM data like calendar items, contacts and email, which is used by applications like KMail and Korganizer but also the calendar build in Plasma. Semantic Search plugs in Akonadi to provide search functionality. How Baloo offers search is actually up to the application. In case of KDE PIM, Xapian is used to provide indexing and search.


;How can I disable the semantic desktop?
;How can I disable the semantic desktop?


:Most of the times, the easiest way is to disable file indexing, which is usually, among the Nepomuk components, the heavier in resource usage (although many optimizations were included in the 4.7 release which has reduced resource usage). This is done by unchecking <menuchoice>Enable Nepomuk File Indexer</menuchoice> in the [[Special:myLanguage/System_Settings/Search_Desktop|Desktop Search]] section of [[Special:myLanguage/System Settings|System Settings]]. In case you want to turn off all semantic features, uncheck <menuchoice>Enable Nepomuk Semantic Desktop</menuchoice>. Notice that this will turn off search in [[Special:myLanguage/Dolphin|Dolphin]] as well.
: File indexing can be disabled by adding the users' home folder to the <menuchoice>System Settings -> Desktop Search -> Do not search in these locations list</menuchoice>. The other functionality is part of the applications that use it and thus can't be disabled without crippling these applications. For example, to not have any search in KMail you'll have to simply remove KMail...
 
In versions of the KDE Applications before 4.13, Semantic Search would have components running separate from applications. This functionality could be disabled by unchecking <menuchoice>Enable Nepomuk File Indexer</menuchoice> in the [[Special:myLanguage/System_Settings/Search_Desktop|Desktop Search]] section of [[Special:myLanguage/System Settings|System Settings]]. In case you want to turn off all semantic features, uncheck <menuchoice>Enable Nepomuk Semantic Desktop</menuchoice>. Notice that this will turn off search in [[Special:myLanguage/Dolphin|Dolphin]] as well.
 
:Notice that with the latter option some programs who use Semantic Search for meta-data will offer reduced functionality: for example [[Special:myLanguage/KMail|KMail]] will not be able to tag mail, or Plasma activities will not offer additional features such as icons, or program data information.
 
;Baloo/Semantic Search is eating 100% CPU! What do I do?


:Notice that with the latter option some programs who use Nepomuk for meta-data will offer reduced functionality: for example [[Special:myLanguage/KMail|KMail]] will not be able to tag mail, or Plasma activities will not offer additional features such as icons, or program data information.  
:Just wait. Certain files are very hard or even impossible to Index. At the moment, this includes for example text files of over 50 megabyte. When Search finds these, it will try for a fixed time. When it fails, it will try to find out what file is broken and disable indexing it in the future. As it indexes files in batches of about 40, it has to find the problematic file by indexing that bunch in parts: first half/second half, index problematic half in pieces again, until the file is found. This can take up to 30 minutes of heavy cpu usage. Unfortunately, while Baloo will not start to index a new batch of 40 files while on battery power, it continues to determine the broken file while on battery. This behaviour has been fixed in in KDE Applications 4.13.1 (it will stop indexing immediately when the power cord is unplugged) and the time the search for each file can take has been reduced to about 10 minutes. The Semantic Search team is working on improving the indexing tools to handle more difficult files.


;Why do I have nepomukservicestub processes even though I've disabled Nepomuk?
;Why do I have nepomukservicestub processes even though I've disabled Nepomuk?
Line 97: Line 101:
:It may be a bug. Please file a [http://bugs.kde.org bug report] with a complete description of your problem and the steps to trigger it.
:It may be a bug. Please file a [http://bugs.kde.org bug report] with a complete description of your problem and the steps to trigger it.


:File indexing of PDF/some other file types doesn't work.
;File indexing of PDF/some other file types doesn't work.


:PDF indexing is a known issue and it's being tracked in {{bug|231936}}. If you have issues with other files, open a bug, preferably adding a sample file that shows the problem.
:PDF indexing is a known issue and it's being tracked in {{bug|231936}}. If you have issues with other files, open a bug, preferably adding a sample file that shows the problem.


:The program nepomukservicestub crashes at startup.
;The program nepomukservicestub crashes at startup.


:A large number of fixes for crashes has been fixed for the 4.7.2 release of the KDE Workspaces and Applications. If you encounter more, please file bugs report with detailed instructions on how to reproduce the problem, as sometimes the developers are unable to trigger them in their test setups.
:A large number of fixes for crashes has been fixed for the 4.7.2 release of the KDE Workspaces and Applications. If you encounter more, please file bugs report with detailed instructions on how to reproduce the problem, as sometimes the developers are unable to trigger them in their test setups.


:The virtuoso-t process hangs at 100% CPU.
;The virtuoso-t process hangs at 100% CPU.
 
:Virtuoso-t is a key component of the old Semantic Search infrastructure and in some occasions the commands sent by the other components end up taking too much time (hence showing the effect of 100% CPU).


:Virtuoso-t is a key component of the Nepomuk infrastructure and in some occasions the commands sent by the other components end up taking too much time (hence showing the effect of 100% CPU). Sebastian Trüg (the lead developer of Nepomuk) has fixed most of these problems in 4.7.1 or newer.
Virtuoso is no longer used by Semantic Search starting the Applications 4.13 release.


:Sometimes Nepomuk consumes too much RAM.
;Sometimes Nepomuk consumes too much RAM.


:Many of these problems have been fixed, in other cases however the developers are unable to reproduce the issues correctly. In this case, providing examples and test cases to [http://bugs.kde.org/ bug reports] increase the chances to get these bugs fixed.
:Many of these problems have been fixed, in other cases however the developers are unable to reproduce the issues correctly. In this case, providing examples and test cases to [http://bugs.kde.org/ bug reports] increase the chances to get these bugs fixed.


:Nepomuk re-indexes files at startup.
;Search accesses the disk too much on startup.:
 
:This bug has been fixed in 4.7.0 versions. Now Nepomuk just "scans" for changes, without indexing anything.
 
;Nepomuk accesses the disk too much on startup.:
 
:In 4.7 and newer this problem has been lessened thanks to a throttling mechanism implemented in the file indexer.


;My Nepomuk database has been corrupted. How do I clean it?
:A throttling mechanism implemented in the file indexer, versions after KDE SC 4.8 should no longer have this issue.


:In the extreme case your database is really corrupted and all other attempts have failed, you can delete the <tt>$KDEHOME/share/apps/nepomuk</tt> directory (where <tt>$KDEHOME</tt> is usually <tt>.kde</tt> or <tt>.kde4</tt>) while Nepomuk is not running. The database will be cleared, but you will also lose existing information such as tags, ratings and comments.
;My Search database has been corrupted. How do I clean it?


[[Category:System]]
:In the extreme case your database is really corrupted and all other attempts have failed, you can delete the <tt>$KDEHOME/share/apps/nepomuk</tt> directory (where <tt>$KDEHOME</tt> is usually <tt>.kde</tt> or <tt>.kde4</tt> in your home directory) while Nepomuk is not running. The database will be cleared, but you will also lose existing information such as tags, ratings and comments.


== Advanced troubleshooting ==
== Advanced troubleshooting ==
If Nepomuk has trouble indexing a file, in a terminal try running
{{Input|1=nepomukindexer ''/path/to/file''}}
and see if there's any useful output. If the file cannot be indexed, the indexer will print an error, but you will only see that error if you have debug messages for Nepomuk enabled (kdebugdialog). If the error is reproducible, please file a bug and upload the file along with the error.
[http://kdeatopensuse.wordpress.com/2011/11/09/debugging-nepomukvirtuosos-cpu-usage/ This blog post] explains how to turn on debugging output from the [[Glossary#Nepomuk|Nepomuk]] service. It also shows how to debug the CPU usage of '''Nepomuk''' and its storage backend.
[http://vhanda.in/blog/2012/02/virtuoso-going-crazy-/ This blog post] explains how to extract useful information for bug reports about the CPU usage of the '''Virtuoso''' backend.


==共享和隱私==  
==共享和隱私==  
Line 143: Line 135:
這個問題當然在考慮之中,是Nepomuk 研究的一個重要課題。由於這些隱私顧慮,外加技術挑戰,所以暫時Nepomuk 內容是私有的。放心,Nepomuk 團隊盡其可能尊重你的隱私。
這個問題當然在考慮之中,是Nepomuk 研究的一個重要課題。由於這些隱私顧慮,外加技術挑戰,所以暫時Nepomuk 內容是私有的。放心,Nepomuk 團隊盡其可能尊重你的隱私。


<span class="mw-translate-fuzzy">
== External links ==
:''更多信息'':
 
::[http://en.wikipedia.org/wiki/Semantic_desktop Wikipedia - Semantic Desktop]
The new Search technology (post KDE Applications 4.13):
::[http://en.wikipedia.org/wiki/NEPOMUK_(framework) Wikipedia - NEPOMUK Framework]
* [http://dot.kde.org/2014/02/24/kdes-next-generation-semantic-search user information article on the dot]
::[http://nepomuk.semanticdesktop.org/xwiki/bin/view/Main1/ NEPOMUK website]
* [http://community.kde.org/Baloo Developer information on community.kde.org]
::[http://nepomuk.kde.org/discover/user NEPOMUK KDE site]
* [http://en.wikipedia.org/wiki/Semantic_desktop Wikipedia - Semantic Desktop]  
::[http://dot.kde.org/2009/12/10/exploring-new-nepomuk-features-mandriva-linux-2010 article explaining Nepomuk on the DOT]
</span>


The old Search technology:
* [http://techbase.kde.org/Projects/Nepomuk Nepomuk pages for developers on KDE TechBase]
* [http://techbase.kde.org/Projects/Nepomuk Nepomuk pages for developers on KDE TechBase]
* [http://nepomuk.kde.org/discover/user NEPOMUK KDE site]
* [http://nepomuk.kde.org/discover/user NEPOMUK KDE site]
* [http://en.wikipedia.org/wiki/Semantic_desktop Wikipedia - Semantic Desktop]
* [http://en.wikipedia.org/wiki/NEPOMUK_(framework)  Wikipedia - NEPOMUK Framework]  
* [http://en.wikipedia.org/wiki/NEPOMUK_(framework)  Wikipedia - NEPOMUK Framework]  
* [http://nepomuk.semanticdesktop.org/nepomuk/ NEPOMUK website]
* [http://nepomuk.semanticdesktop.org/nepomuk/ NEPOMUK website]
* [http://dot.kde.org/2009/12/10/exploring-new-nepomuk-features-mandriva-linux-2010 article explaining Nepomuk on the DOT]
* [http://dot.kde.org/2009/12/10/exploring-new-nepomuk-features-mandriva-linux-2010 article explaining Nepomuk on the DOT]
* [http://kdenepomukmanual.wordpress.com Getting started user manual]


[[Category:系統/zh-tw]]
[[Category:系統/zh-tw]]

Latest revision as of 05:10, 9 May 2018

Semantic Search

The aim of this page is not to fully explain KDE's Semantic Search technology and every detail, but to give a short overview, some examples, share the vision behind it and link to relevant information on the web.

Baloo is the next generation of semantic search

From KDE Applications 4.13 onwards, the 'Baloo' file indexing and file search framework replaces Nepomuk. Read details on the changes for Applications 4.13 here. Semantic Search no longer uses a single, big database, but separate, specialized databases for each type of data. The new search databases are in $HOME/.local/share/baloo. If you upgraded to KDE Applications 4.13 from an earlier KDE release, you can delete $KDEHOME/share/apps/nepomuk.

簡短說明

As the Glossary mentions, Semantic Search is about classification, organisation and presentation of data. It is not an application, but a component which can be used by developers within applications.

Try out in Dolphin

For example, the Dolphin file manager makes use of Search. In KDE Applications versions prior to 4.13 Semantic Search must be enabled from System settings -> Desktop search. The information sidebar of Dolphin (Control -> Panels -> Information, or press F11) presents information extracted by Search about the selected file, and also allows you to assign tags, ratings and comments to files. This information is then stored and indexed by Search. You can then search for metadata using the navigation bar in Dolphin. Click to Find, or press Ctrl+F, and search for file names or file contents.


功能

KDE's Semantic Search offers several 'layers' of functionality to applications. The first and most simple of those is manual tagging, rating and commenting, as used in Dolphin. This helps you to find your files faster, but is also a lot of work.

To make finding files containing text easier, Search offers a second functionality: indexing the text of files. You can find files by entering some words which you know are in there, or just (part of) their title.

The third layer is a very complex one, and the reason why the underlying technology, Nepomuk, was conceived as a research project of several companies and universities in the European union. This is where you will find difficult words like 'semantic desktop' and 'ontologies'. Basically, it is about context and relationships.

Indexing files

Search does not index every file on the hard drive. Its default configuration in most Linux distributions excludes some common patterns for backup files and configuration directories. You can change this in System Settings -> Desktop Search. Add folders to be excluded. If you want to turn off indexing of files entirely, just add your home folder there.

In System Settings you can also control whether Search indexes files on removable media such as USB drives and CD-ROMs. In KDE Applications 4.13 this is not available, removable media are not indexed. Future versions are planned to reintroduce this functionality.

例子

Let me try to explain what Semantic Search offers using two examples. These features are not available fully yet - the base is there but application developers need to integrate this in their applications.

關係(Relationship)

假設你2週前從你的某個好友手上收到一張照片。你隨後保存照片到電腦的某個地方。現在你如何找到那個文件哪?如果你不記得保存的位置,你就杯具了(人生是個茶几,你是個杯具)。

Now Semantic Search aims to help you. You know this file came from that friend of yours, your computer does not know. Search, however, can remember this relationship. Searching on the name of your friend will therefore pop up the photo!

Another potential relationship is between a web page you copied text from and the document you pasted it into, or two images showing the same car. Such relations can sometimes be extracted from the files themselves (you could analyze photos and see who or what is on there) or supplied by the applications involved (as in the above email example). This part of Search is still under heavy development, and needs integration in applications, so you can expect it to take a few more years to really shine.

All in all, this part of Semantic Search is about making search smart. Think about how Google tries to be smart with your searches: when you search for a hotel and a city name, it shows above the website results a google map showing hotels in the city you mentioned! It might even suggest a better name in case you made a spelling mistake. Google also tries to put the most relevant information on top of the list of results, using complex calculations on relationships (links) between websites. Semantic Search will be able to offer such smart results and order them on relevancy using relationship information.

語境(Context)

These relationships can not only help you while searching for files, but also have an influence on applications and what information they present. Note that this way of using Search is still more a vision than reality! Many of the components are in place, but it is not yet integrated in applications and the desktop as a whole.

這裡有個例子講把語境認知(context awareness)帶到桌面上助你工作更有效率。

比如說你正在整理會議上摘的筆記。這時手機響了,某人問你要帶報價的電子表格,還要你根據客戶要求進行修改。再多來幾個打擾後,你會發現整個桌面全是文件和窗口...

如果能更好的組織這一切會非常棒,對嗎?

Enter 'activities'. These have been introduced in Plasma, and currently offer different 'desktops'. They are a bit like virtual desktops, except that the desktop itself changes, not the set of applications. Different widgets, background, things like that. Of course, since Plasma 4.3, each virtual desktop can have its own activity, bringing the two in sync.

如果程序和桌面認識活動,你可以根據經常工作的任務創建活動。所以如果你經常不得不修改帶報價的電子表格,你創建這樣一個活動:擺放一個「文件夾視圖」(或多個)部件到桌面上,添加一個計算器和一個todo 部件來記錄還需要修改的東西。可能需要一個「郵件文件夾」部件來顯示有關報價表問題的郵件!

一旦有人問報價問題,你就切換到這個活動。打開表格程序。表格程序認識你的活動,它的最近打開列表顯示的是報價表格,不是你在另外一個活動工作的存貨清單! Kopete,這個聊天程序顯示著某個知道有關價格的同事,因為她是你經常在當前這個活動聊天的對象。

等你完成後,你回到另外一個活動,所有程序再一次調整它們的行為來適應你當前的工作。

這樣一個基於活動的工作流程的收益會遠遠超越你最初的期望。它不但能幫你找到文件和聯繫人,還有助於切換任務本身。人腦不擅長多任務-人類切換任務後需要花費幾分鐘來達到正常速度。改變'環境'能大大加快反應,即使只是屏幕上的。把它跟你假日收拾包裹時的情緒對比下!

當然,上面所述很大程度與電腦後頭工作的人是在辦公室還是在家有關。遊戲玩家或臨時用戶可能不太會用到這些活動。

The scenario described above is already partially implemented in the Activities but much work is still left.

Frequently Asked Questions

The following is taken from a KDE forums post. Please feel free to add/remove/modify details if you have the time!

What is the Nepomuk Semantic Desktop, and the Strigi Desktop File Indexer?
Nepomuk and Strigi are technologies part of what delivers the abilities of the Semantic Search in KDE. Both are not used directly in the latest generation of KDE's Semantic Search (details), however their successors share much of their code and concepts. Semantic Search provides a way to organize, annotate and build relationships among the data (not only file name and content, but for example which applications used a certain file, or how it is tagged). A number of KDE applications and workspaces use this basic infrastructure to deliver features such as email tagging (KMail) or activity setup (Plasma).
The file indexing allows applications such as Dolphin to search for files based on content, name, or other meta-data (e.g. tags) associated to indexed files. Such an indexer can also index non-text files, such as PDFs, by accessing the meta-data contained in these files (author, publication information, etc.). Some KDE components ship additional "analyzers" for more file types.
Why do we need both Akonadi and Semantic Search? Aren't they doing the same thing?
In short, Akonadi provides a cache of PIM data like calendar items, contacts and email, which is used by applications like KMail and Korganizer but also the calendar build in Plasma. Semantic Search plugs in Akonadi to provide search functionality. How Baloo offers search is actually up to the application. In case of KDE PIM, Xapian is used to provide indexing and search.
How can I disable the semantic desktop?
File indexing can be disabled by adding the users' home folder to the System Settings -> Desktop Search -> Do not search in these locations list. The other functionality is part of the applications that use it and thus can't be disabled without crippling these applications. For example, to not have any search in KMail you'll have to simply remove KMail...

In versions of the KDE Applications before 4.13, Semantic Search would have components running separate from applications. This functionality could be disabled by unchecking Enable Nepomuk File Indexer in the Desktop Search section of System Settings. In case you want to turn off all semantic features, uncheck Enable Nepomuk Semantic Desktop. Notice that this will turn off search in Dolphin as well.

Notice that with the latter option some programs who use Semantic Search for meta-data will offer reduced functionality: for example KMail will not be able to tag mail, or Plasma activities will not offer additional features such as icons, or program data information.
Baloo/Semantic Search is eating 100% CPU! What do I do?
Just wait. Certain files are very hard or even impossible to Index. At the moment, this includes for example text files of over 50 megabyte. When Search finds these, it will try for a fixed time. When it fails, it will try to find out what file is broken and disable indexing it in the future. As it indexes files in batches of about 40, it has to find the problematic file by indexing that bunch in parts: first half/second half, index problematic half in pieces again, until the file is found. This can take up to 30 minutes of heavy cpu usage. Unfortunately, while Baloo will not start to index a new batch of 40 files while on battery power, it continues to determine the broken file while on battery. This behaviour has been fixed in in KDE Applications 4.13.1 (it will stop indexing immediately when the power cord is unplugged) and the time the search for each file can take has been reduced to about 10 minutes. The Semantic Search team is working on improving the indexing tools to handle more difficult files.
Why do I have nepomukservicestub processes even though I've disabled Nepomuk?
It may be a bug. Please file a bug report with a complete description of your problem and the steps to trigger it.
File indexing of PDF/some other file types doesn't work.
PDF indexing is a known issue and it's being tracked in bug #231936. If you have issues with other files, open a bug, preferably adding a sample file that shows the problem.
The program nepomukservicestub crashes at startup.
A large number of fixes for crashes has been fixed for the 4.7.2 release of the KDE Workspaces and Applications. If you encounter more, please file bugs report with detailed instructions on how to reproduce the problem, as sometimes the developers are unable to trigger them in their test setups.
The virtuoso-t process hangs at 100% CPU.
Virtuoso-t is a key component of the old Semantic Search infrastructure and in some occasions the commands sent by the other components end up taking too much time (hence showing the effect of 100% CPU).

Virtuoso is no longer used by Semantic Search starting the Applications 4.13 release.

Sometimes Nepomuk consumes too much RAM.
Many of these problems have been fixed, in other cases however the developers are unable to reproduce the issues correctly. In this case, providing examples and test cases to bug reports increase the chances to get these bugs fixed.
Search accesses the disk too much on startup.
A throttling mechanism implemented in the file indexer, versions after KDE SC 4.8 should no longer have this issue.
My Search database has been corrupted. How do I clean it?
In the extreme case your database is really corrupted and all other attempts have failed, you can delete the $KDEHOME/share/apps/nepomuk directory (where $KDEHOME is usually .kde or .kde4 in your home directory) while Nepomuk is not running. The database will be cleared, but you will also lose existing information such as tags, ratings and comments.

Advanced troubleshooting

共享和隱私

在給出其它鏈接前我要指出的是:共享Nepomuk 數據。如果你的標記(tags),評分(ratings)和註釋(comments)能夠在你發送文件給其他人時同時共享給他會很棒。但是,要是你給一個聯繫人打上了“麻煩”的標籤('在床上煩人'),然後發送這個聯繫人的信息給一個共同的好友,但你又不希望這個標籤也一併發送過去...

這個問題當然在考慮之中,是Nepomuk 研究的一個重要課題。由於這些隱私顧慮,外加技術挑戰,所以暫時Nepomuk 內容是私有的。放心,Nepomuk 團隊盡其可能尊重你的隱私。

External links

The new Search technology (post KDE Applications 4.13):

The old Search technology: