Nepomuk

From KDE Wiki Sandbox
Revision as of 20:29, 30 November 2011 by Claus chr (talk | contribs) (Importing a new version from external source)

Nepomuk

Formålet med denne side er ikke at forklare Nepomun teknologien i alle detaljer, men at give et kort overblik, nogle eksempler, visionerne bag og links til relevant information på nettet.

Kort forklaring

Som nævnt i Ordlisten har Nepomuk at gøre med klassifikation, organisering og præsentation af data. Det er ikke en applikation men en komponent, som kan bruges af udviklere i deres applikationer.

Prøv den i Dolphin

For eksempel bruger filmanageren Dolphin Nepomuk. For at kunne prøve det følgende, så skal Nepomuk og Strigi være aktiverede i Systemindstillinger > Skrivebordssøgning. Dolphin's sidepanel Information (Vis -> Paneler -> Information eller tast F11) viser information, som Strigi henter frem om den valgte fil og lader dig også knytte mærker, vurderinger og kommentarer til filer. Denne information lagres i Nepomuk og indekseres af Strigi. Du kan søge på metadata i Dolphin's navigationslinje. Du kan

  • skrive "nepomuksearch:/" efterfulgt af søgeordet.
  • klikke på Find (Ctrl + F) og søge efter et filnavn eller filindhold.

Funktionaliteter

Nepomuk tilbyder flere 'lag' af funktionalitet til applikationer. Det første og enkleste involverer manuel tagging, bedømmelse og kommentering som i Dolphin. Det hjælper dig med at finde filer hurtigere, men kræver meget arbejde.

For at gøre det nemmere at finde tekstfiler tilbyder Nepomuk er anden funktionalitet: indeksering af filernes tekster. Det bruger en teknologi ved navn Strigi til dette. Du kan finde filer ved at søge på nogle ord, som du ved, at de indeholder, eller blot på (en del af) deres titel.

Det tredje lag er meget komplekst og grunden til, at Nepomuk blev skabt af adskillige firmaer og universiteter i EU som et forskningsprojekt. Det er her, du finder vanskelige begreber som 'semantisk skrivebord' og 'ontologier'. Det handler i bund og grund om sammenhænge og beslægtethed.

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 System Settings -> Desktop Search -> Desktop index folders -> Customize index folders… -> Strigi Index Folders.

Note that Strigi as of KDE 4.7 does not follow symbolic links (bug #208602), even if you select folders under the symbolic link for indexing (bug #287593) for index. (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 Properties -> General -> Points to) 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.

Eksempler

Lad mig prøve at forklare, hvad Nepomuk kan ved to eksempler.

Beslægtethed

Lad os sige, at du modtog et foto fra en ven for 2 uger siden. Du gemte det et eller andet sted på din computer. Hvordan finder du nu filen? Hvis du ikke kan huske, hvor du gemte den, så har du et problem.

Her prøver Nepomuk at hjælpe dig. Du ved, at filen kom fra den der ven -- det ved computeren ikke; men Nepomuk kan huske 'slægtskabet'. Søger du på din vens navn, så findes fotoet frem!

Andre muligte slægtskaber er mellem en internetside, som du kopierede tekst fra og det dokument, som du satte teksten ind i eller mellem to billeder af den samme bil. Sådanne slægtskaber kan undertiden trækkes ud af filerne selv (du kunne se på fotos hvem eller hvad, der er på dem) eller gives af de involverede applikationer (som i email-eksemplet ovenfor). Den del af Nepomuk er stadig under intens udvikling og mangler endnu at blive integreret i applikationer, så du må regne med, at der kommer til at gå et par år, før det hele fungerer.

Denne del af Nepomuk handler om smart søgning. Tænk på, hvordan Google prøver at håndtere dine søgninger på en smart måde: når du søger efter et hotel og et bynavn, så får du et bykort, som viser hoteller i den nævnte by oven over de fundne websteder! Hvis du staver forkert, så får du måske et forslag til en bedre stavemåde. Google prøver også at placere de mest relevante informationer først i listen af resultater ved hjælp af komplekse beregninger af slægtskaber (links) mellem websteder. Nepomuk vil også blive i stand til at give smarte søgeresultater ordnet efter relevans ved at bruge information om beslægtethed.

Sammenhænge

Disse slægtskaber kan ikke bare være til hjælp ved søgning efter filer, de kan også have indflydelse på applikationer og på hvilken information de fremviser. Bemærk, at denne måde at bruge Nepomuk på stadig er mere vision end realitet! Mange af komponenterne er klar, men de er endnu ikke integrerede i applikationerne og skrivebordet som helhed.

Her er et eksempel på, hvordan bevidsthed om sammenhænge kan hjælpe dit skrivebord med at fungere mere effektivt.

Lad os sige, at du er i gang med at færdiggøre nogle noter, som du tog under et møde. Så ringer telefonen, og du bliver bedt om at finde regnearket med priser og tilpasse det til en kunde. Efter endnu et par afbrydelser er dit skrivebord fuldt af filer og vinduer...

Det ville være rart at kunne organisere alt dette lidt bedre, ikke?

Her kommer aktiviteter ind i billedet. De blev introduceret i Plasma og giver indtil videre mulighed for forskellige skriveborde. De minder lidt om virtuelle skriveborde, men her er det skrivebordet selv, som ændres og ikke de applikationer som kører på det. Der kan være forskellige widgets, baggrunde og lignende. Fra KDE 4.3 er der dog sammenhæng mellem de to begreber, da de virtuelle skriveborde kan have hver sin aktivitet.

Hvis applikationerne og skrivebordet var bevidste om aktiviteter, så kunne du lave en aktivitet for hver af de opgaver, som du regelmæssigt arbejder med. Hvis du for eksempel ofte skal ændre et regneark med priser, så kan du lave en aktivitet til det: læg en Mappevisning (eller flere) på skrivebordet, tilføj en regnemaskine og et gøremålsliste-widget for at holde styr på de ting, som du stadig mangler at ændre. Du vil måske også tilføje et emailmappe-widget, som indeholder mails med spørgsmål om disse regneark med priser!

Når en eller anden spørger dig om en pris, så skifter du til denne aktivitet. Start regnearket - det er bevidst om din aktivitet, så det viser de seneste regneark med priser og ikke den seneste liste over inventar, som du arbejdede på i en anden aktivitet! Chat-applikationen Kopete viser dig den kolleger, som ved noget om priser, da du tit chatter med hende, når du arbejder i denne aktivitet.

Når du er færdig, går du tilbage til en anden aktivitet, og igen tilpasser applikationerne deres opførsel til, hvad du arbejder med.

Fordelene ved en sådan aktivitets-baseret arbejdsgang går videre end du måske umidelbart forventer. Det hjælper dig ikke bare med at finde filer og kontakte personer, det hjælper også med selve skiftet mellem opgaver. Den menneskelige hjerne er ikke særlig god til at multitaske - de fleste skal bruge adskillige minutter på at komme op i omdrejninger efter at have skiftet til en ny opgave. For at komme hurtigere i gang er det en stor hjælp at skifte omgivelser, også selv om det kun er på skærmen. Sammenlign det med, hvordan du kommer i feriestemning, når du pakker din kuffert!

Dette er selvfølgelig mest relevant for en, der arbejder ved computeren på kontoret eller derhjemme. Hvis du mest spiller computerspil eller blot bruger computeren en gang imellem, så vil du nok ikke få meget brug for aktiviteter.

Bemærk, at scenariet, som blev beskrevet ovenfor stadig er flere år fra at være en realitet. Det meste af den grundlæggende infrastruktur for dette er på plads i KDE, med der mangler stadig meget.

Ofte stillede spørgsmål

Følgende kommer fra et indlæg på KDE's forummer. Hvis du har tid, så må du meget gerne tilføje, fjerne eller ændre detaljer!

Q. Hvad er Nepomuk Semantic Desktop og Strigi Desktop File Indexer?

A. Nepomuk Semantic Desktop er grundlaget for alle de andre moduler i Nepomuk-infrastrukturen. Den giver dig en måde at organisere, annotere og opbygge sammenhænge imellem data (ikke blot filnavne og indhold, men for eksempel også hvilke programmer, som har brugt en given fil eller hvordan den er mærket). Mange af KDE's programmer og arbejdsflader bruger denne grundlæggende infrastruktur til at frembyde funktioner så som mærkning af emails (KMail) eller opsætning af aktiviteter (Plasma).

Strigi Desktop File Indexer er derimod et system til at indeksere filer, sådan at de kan føjes til Nepomuks hovedlager, en bekvem måde at bruge dem i Nepomuk uden at tilføje filerne manuelt. Desuden kan programmer som Dolphin søge efter filer beseret på deres indhold, navn eller andre metadata (fx mærker) knyttet til de indekserede filer. Sådan en indekser kan også indeksere filer som ikke består af ren tekst så som PDF'er ved at tilgå metadata indeholdt i disse filer (forfatter, udgivelsesinformation osv.). Nogle KDE-komponenter leverer yderligere "analysatorer" for flere filtyper. Nepomuk er fuldt funktionsdygtig uden at bruge filindekseringen, som er en ekstra (og valgfri) komponent.

Q. How can I tell if Strigi has indexed a file?

A. In Dolphin, select the file. If the Information panel displays "Created at" and "Has hash", then the file was indexed by Strigi.

Q. Hvordan kan jeg slå det semantiske skrivebord fra?

A. For det meste er det lettest at deaktivere filindeksering, som i regelen er den blandt Nepomuks komponenter, der bruger flest ressourcer (selv om mange optimeringer er inkluderet i 4.7-udgaven, som reducerer ressourceforbruget). Dette gøres ved at fjerne markeringen ved Aktivér Strigi skrivebordsfilindeksering i afsnittet Skrivebordssøgning i Systemindstillinger. Hvis du skulle ønske at slå alle de semantiske funktioner fra, så fjern markeringen ved Aktivér Nepomuk semantisk skrivebordsmiljø. Bemærk, at dette også vil deaktivere søgning i Dolphin.

Bemærk, at med det sidste fravalg vil nogle programmer, som bruger Nepomuk til metadata få reduceret deres funktionalitet: for eksempel vil KMail ikke kunne mærke mails og Plasma-aktiviteter vil ikke give dig ekstra funktioner så som ikoner eller information om programdata.

Q. Hvorfor kører der nepomukservicestub-processer, selv om jeg har deaktiveret Nepomuk?

A. Det kan være en fejl. Indsend en fejlrapport med en fuldstændig beskrivelse af dit problem og hvordan du fik det til at dukke op.

Q. Filindeksering af PDF eller en anden filtype virker ikke.

A. PDF-indeksering er et kendt problem, som kan følges i denne fejlrapport. Hvis du har problemer med andre filer, så start en fejlrapport og vedhæft helst en eksempelfil, som viser problemet.

Q. Programmet nepomukservicestub går ned når maskinen startes op.

A. Et stort antal problemer med nedbrud er blevet løst i 4.7.2-udgaven af KDE's arbejdsflader og programmer. Hvis du støder på flere, så rapportér fejlen med detaljerede instruktioner om, hvordan problemet kan reproduceres, da udviklerne undertiden ikke kan udløse fejlene i deres egne test-udgaver.

Q. Processen virtuoso-t hænger med 100% CPU.

A: Virtuoso-t er en central komponent i Nepomuks infrastruktur, og under nogle omstændigheder kommer kommandoer sendt af andre komponenter til at optage for meget tid (med den effekt, at vise 100% CPU-forbrug). Sebastian Trüg (Nepomuks hovedudvikler) har løst de fleste af disse problemer i 4.7.1 og nyere udgaver.

Q. Undertiden bruger Nepomuk for meget RAM.

A. Mange af disse problemer er blevet rettet; i andre tilfælde har udviklerne dog ikke kunnet reproducere problemerne korrekt. I disse tilfælde forøger du chancen for at få fejlene rettet, hvis du føjer eksempler og testcases til fejlrapporterne.

Q. Nepomuk genindekserer filer ved opstart.

A. Denne fejl er blever rettet i 4.7.0-udgaven. Nu "scanner" Nepomuk bare efter ændringer uden at indeksere noget.

Q. Nepomuk bruger harddisken for meget ved opstart.

A. I 4.7 og nyere udgaver er dette problem blevet reduceret takket være en reguleringsmekanisme, som er blevet implementeret i filindekseren.

Q. Min Nepomuk-database er blevet ødelagt. Hvordan kan jeg rense den?

A. I det ekstreme tilfælde, at din database er helt ødelagt og alle andre muligheder er slået fejl kan du slette mappen $KDEHOME/share/apps/nepomuk (hvor $KDEHOME som regel er .kde eller .kde4) imens Nepomuk ikke kører. Databasen vil så blive renset, men du vil også miste eksisterende information som mærker, vurderinger og kommentarer.

Advanced troubleshooting

If Nepomuk has trouble indexing a file, in a terminal try running

nepomukindexer /path/to/file

and see if there's any useful output. You can compare the output to a similar file that is successfully indexed.

xmlindexer /path/to/file > /tmp/test.xml

generates an XML representation of some of the information extracted from a file. You can view this in an XML viewer, such as your browser, and again compare it to a similar file. (xmlindexer may be in a different and optional package in your Linux distribution; for example in Ubuntu it is in the strigi-utils package.)

This blog post explains how to turn on debugging output from the Nepomuk service. It also shows how to debug the CPU usage of Nepomuk and its storage backend.

Deling og privatliv

Der er en ting, som jeg må gå ind på, før jeg linker til kilder til yderligere information: deling af Nepomuk data. Det ville være smart, hvis dine tags, bedømmelser og kommentarer blev delt med andre, når du sender dem filer; men hvis du tagger en kontaktperson med en pinlig kommentar ('kedelig i sengen') og sender denne persons kontaktinformation til en fælles ven, så vil du nok ikke ønske, at taggen følger med...

Dette spørgsmål bliver selvfølgelig overvejet og er et vigtigt forskningsområde for Nepomuk-forskerne. Indtil videre er Nepomuk-sammenhænge private på grund af ovenstående problem og fordi der er store tekniske udfordringer. Du kan være sikker på, at Nepomuk-teamet gør alt, hvad det kan for at sikre, at dit privatliv bliver respekteret.

Mere information (på engelsk):
Wikipedia - Semantic Desktop
Wikipedia - NEPOMUK Framework
NEPOMUK websted
NEPOMUK KDE websted
Artikel på DOT'en, som forklarer Nepomuk