1 Nisan 2016 Cuma

[Working Paper] Access to the Past Screenshots through Keywords

[Çalışma Raporu] Geçmişteki Ekran Görüntülerine Anahtar Sözcüklerle Erişme

[PDF] Geçmişteki Ekran Görüntülerine Anahtar Sözcüklerle Erişme (01.04.2016)

Geçmişteki Ekran Görüntülerine Anahtar Sözcüklerle Erişme

Mehmet Emin Mutlu
Anadolu Üniversitesi, Açıköğretim Fakültesi
memutlu@anadolu.edu.tr

Özet
Kişisel ve kurumsal bilgi çalışması sanal ortamlardaki etkinliklerden oluşmaya başladıkça bilgisayar ekranı görüntülerinden oluşan arşivler bireylerin geçmiş deneyim havuzlarına erişmeleri ve tekrar canlandırmaları için önemli birer kaynak haline gelmiştir. Düzenli olarak ekran görüntüsü yakalayan yaşam günlüğü sistemleri bu anı kümesini oluşturmak için iyi bir başlangıç olmakla birlikte, ekran görüntülerine deneyimle ilgili anımsanan sözcükler yardımıyla erişebilmek bireyin günlük bilgi çalışması verimliliğini daha fazla artıracaktır. Bu çalışmada bireylerin geçmişteki bilgi çalışması deneyimlerine ait ekran görüntülerine anımsadıkları sözcükler yardımıyla erişebilmelerini ve üzerinde çalıştıkları konuya zaman ekseninde hangi sıklıkta yer verdiklerini görebilmelerini sağlayacak bir sistem tasarlanmış ve prototip bir yazılım geliştirilerek denenmiştir. Çalışmanın son bölümünde sistemin bilgi çalışanlarına sağlayacağı olanaklar ve gelecekte geliştirilebilir yönleri tartışılmıştır.

Anahtar Sözcükler: Yaşam günlüğü, ekrandan metin elde etme, masaüstü arama motoru

Giriş
Bilgi çalışanları kişisel ve kurumsal bilgi çalışmalarını gün boyunca iş yerinde, evde ve hareket halindeyken masaüstü, dizüstü ve tablet bilgisayarlarda gerçekleştirirler. Üzerinde çalıştıkları konular sürekli olarak aynı konu hakkında gerçekleştirdikleri önceki çalışmalarına ait ayrıntıları anımsamalarını gerektirir. Aynı anda birden fazla konuda birbirine paralel olarak çalışan bireyler geçmiş deneyimler hakkındaki ayrıntılara konular üzerinde düzenli olarak ardışık biçimde çalışanlardan daha fazla gereksinim duyarlar. Bireylerin geçmişte bilgisayar ortamlarında yaşadıkları kişisel ve kurumsal bilgi çalışması deneyimlerine ait anımsatıcı enformasyona (örneğin ekran görüntülerine) her hangi bir anda anımsadıkları bir ya da bir kaç anahtar sözcük yardımıyla erişebilmeleri sağlayacak bir sistem bilgi çalışması verimliliğini anlamlı biçimde artıracaktır.

Bu çalışmada, daha önceki bir çalışmada geliştirilmiş olan, bireylerin kullandıkları masaüstü, dizüstü ve tablet bilgisayarlara ait ekran görüntülerini düzenli olarak yakalayan, bu ekranlardaki metinleri "optik karakter tanıma" yardımıyla çıkartan ve  kaydeden bir yaşam günlüğü sistemi ile açık kaynak kodlu bir arama motoru yazılımı bir araya getirilerek ekran metinlerinin indekslenmesi ve anahtar sözcüklerle erişilmesi sağlanmıştır. Bireyin elde etmiş olduğu, verilen bir sözcük ya da sözcük grubunu içeren ekran görüntüsü metni dosyaları zaman bağlamında işlenerek görselleştirilmekte ve böylece bireyin aradığı konuyla yıl, ay, gün ve saat temelinde hangi sıklıkta ilgilendiği belirlenebilmektedir. Birey ayrıca herhangi bir andaki ekran görüntüsüne de erişebilmektedir. Çalışmanın son bölümünde geliştirilen uygulamanın uygulama alanları tartışılmış, kısıtlılıkları ve geliştirilebilir yönleri değerlendirilmiştir.

Bilgisayar Ekranından Metin Elde Etme ve Kaydetme
Bireyin bütün bilgisayarlarında düzenli olarak 30 saniyelik aralıklarla ekran görüntülerini yakalama, aynı anda bu görüntülerden "optik karakter tanıma" ile metinleri elde etmek ve cihaz ismi-zaman etiketi ile isimlendirilmiş dosyalar halinde bir bulut hizmeti üzerinde kaydetmek için "Yaşam Günlüğü İçin ekran Görüntüsü Yakalama - OCR" isimli çalışmada geliştirilen LifeLoggingSC (OCR) isimli uygulamadan yararlanılmıştır [1].

LifeLoggingSC (OCR) uygulamasından, bu çalışmanın da dahil olduğu, yürütülmekte olan bir TÜBİTAK projesinde geliştirilen/geliştirilecek bir dizi yazılımın ilk basamağı olarak yararlanılacaktır. Bu nedenle ilgili yazılım M-Levels1 olarak yeniden isimlendirilmiştir.

Ekran Metinlerini Masaüstü Arama Motoru İle İndeksleme
Açık kaynak kodlu masaüstü arama motorları arasında Apache vakfının Lucene Projesi öncü durumdadır [2]. Java ile geliştirilen bu arama motoru kitaplığına .Net üzerinden erişmek amacıyla C# ile geliştirilmiş Lucene.Net paketi bulunmakla birlikte bu çalışma en son 2012 yılında .Net 3.5 için uyarlanmıştır [3]. Yapılan bir aramada Mehdi Gholam tarafından geliştirilen ve CodeProject tarafından CPOL lisansıyla dağıtılan hOOt arama motorunun daha az yer kapladığı (sadece 98 KB büyüklüğünde bir DLL'den oluşmaktadır), kullanımının basit olduğu ve daha güncel tutulduğu görülmüştür [4]. Yapılan ilk denemelerde hOOt paketinin ekran metni dosyalarını indeksleme ve anahtar sözcüklerle erişme işlevlerini Lucene.Net ile karşılaştırılabilir hızlarda yerine getirmesi nedeniyle projede hOOt masaüstü arama motorunun 2.2.1 sürümünün kullanılmasına karar verilmiştir.

Mehdi Gholam'a göre tam metin arama, seçilen metin blokları içerisinde verilen sözcükleri arama sürecidir ve bu sürecin iki yönü bulunmaktadır: a) Varlık: Aranan sözcüklerin çok sayıda metin bloklarının hangilerinde var olduğunun belirlenmesi; b) Uygunluk: Verilen sözcükleri içeren metin bloklarının en ilgili olanının en önde olduğu bir sıralama sistemi ile sıralanmasıdır. hOOT paketinin son sürümü sadece "varlık" sürecini içermekte, "uygunluk" sürecini barındırmamaktadır. Bu çalışmada "uygunluk" öncelikli bir gereksinim değildir. Tam tersine, aranan sözcükleri içeren "en uygun" belgelere değil, tüm belgelere erişilmesi önemlidir.

Anahtar Sözcüklerle Ekran Metinlerine Erişme

Bireyin bilgisayarlarından M-Levels1 ile yakalanan ekran görüntüleri ve ekran metinleri bir bulut hizmeti üzerinden aktarılarak bir çalışma bilgisayarında "/LifeLogging" isimli bir klasörde bir araya getirilmektedir [1]. Mehdi Gholam'ın hOOt'u kullanan örnek uygulaması olan SampleApp ile bu klasör indekslendiğinde klasörde bulunan bütün ".txt" dosyalarındaki sözcükler çıkartılarak bu indekse eklenmektedir. Daha sonra aynı uygulamada anahtar sözcükler ile bu indeks üzerinde arama yapılarak, sözcük ya da sözcük gruplarını içeren tüm metin ekranı dosyalarının listesi elde edilebilmektedir.



Bu süreci ve daha sonraki aşamaları içerecek olan ve M-Levels2 olarak isimlendirilen bir yazılım geliştirilmeye başlanmıştır. Bu amaçla Windows Forms sunum altyapısı kullanılarak yazılmış olan SampleApp uygulaması bu çalışmada geliştirilecek sistemin gereklerine göre WPF ortamında yeniden düzenlenerek geçmiş ekran metinlerine erişme sürecinin ilk dört aşaması oluşturulmuştur. M-Levels2 yazılımının Mehdi Gholam'ın çalışmasına bağlı kalarak oluşturulan ilk dört adımına ait ekran görünümü Şekil 1'de verilmiştir.


Şekil 1. M-Levels2 uygulamasında ilk dört aşama

Bu aşamaların ilki oluşturulacak olan indeksin kaydedileceği klasörün belirlenmesi; ikinci aşama indekslenecek olan dosyaların bulunduğu klasör; üçüncü aşama indeksleme işleminin başlatılması, indekslenen dosya ve sözcük sayısının görüntülenmesi ve indeksin kaydedilmesi aşamasıdır. Daha sonra aynı indeks yüklenerek üzerinde arama yapmak amacıyla kullanılabilir. Şekil 1'deki örnekte kullanıcı ekran görüntülerinden elde edilen metin dosyalarından oluşan yaşam günlüğü dosyaları üzerinde "Anadolu Üniversitesi Eskişehir" sözcüklerinin geçtiği ekranları aramış ve 241 görüntü bulmuştur.

Bir Konuyla Geçmişte Hangi Sıklıkta Çalışıldığının Belirlenmesi
M-Levels2 uygulamasının dördüncü aşamasında listesi elde edilen metin dosyalarının cihaz ismi ve tarih etiketiyle oluşturulan isimlerinden yararlanılarak, dosyalar cihaz ve zaman boyutunda süzülebilmektedir. Kullanıcı yazılımın beşinci aşamasında ekran görüntülerinin elde edildiği cihazların listesinden odaklanmak istediği cihazları seçebilir (Şekil 2). Böylece geçmiş deneyimi anımsamak amacıyla ev, iş yeri ya da hareketli anları birer bağlam olarak kullanabilir.
Şekil 2. M-Level2 uygulamasında ekran görüntülerinin yakalandığı cihazların listesi


Bu yaklaşımla verilen sözcük ya da sözcük gruplarını içeren metin dosyalarının yıl, ay ve gün bazındaki sıklıkları WPF Toolkit yardımıyla görselleştirilerek Şekil 3'deki etkileşimli grafik elde edilmiştir. Bu grafikte kullanıcı bir konuyla hangi yıl kaç kez ilgilendiğini görebilmektedir. Bir yıl seçildiğinde, o yıla ait aylar boyunca söz konusu konuyla kaç kez ilgilenildiği görüntülenmektedir. Bir ay seçildiğinde ise o aya ait günler boyunca o konuyla kaç kez ilgilenildiği görüntülenir. Buradaki "kaç kez" ifadesine karşı gelen büyüklük söz konusu konuyu ifade eden sözcük ya da sözcük grubunu içeren ve her biri 30 saniyelik zaman aralığına ait olan ekran görüntüsü sayısıdır.

Şekil 3. Verilen konunun geçmişte üzerinde çalışılma sıklığı 


Kullanıcı daha sonra belirli bir ana odaklandığında ve o ana ait ekran görüntülerine erişmek istediğinde, grafikte her biri bir dakikalık zaman dilimine karşı gelen çubuklara tıklaması yeterli olmaktadır. Böylece bir dakika boyunca yakalanmış olan 1 ile 2 arası değişen sayıda ekran görüntüsünden birincisine erişerek görüntüleyebilir (Şekil 4).

Şekil 4. Girilen anahtar sözcüğü içeren ekran görüntülerinin görüntülenmesi


M-Levels1 uygulaması mümkün olduğunca yüksek kalitede "jpeg" formatında ekran görüntüsü yakalamaktadır. Farklı bilgisayarlardaki değişik çözünürlükteki ekranlardan yakalanan ekran görüntülerinin boyları farklı olacaktır. Bu nedenle kullanıcıya ek olarak M-Levels2 uygulamasında görüntünün üzerine tıklayarak gerçek boyutunda görüntüleme olanağı sağlanmıştır.

Sonuç ve Öneriler
Tasarlanan sistem "Verilen bir konuyla hangi zaman aralığında ve hangi sıklıkta ilgilenildi?" sorularına yanıt bulma ve verilen bir konu üzerindeki çalışmayı zaman ekseninde tekrar canlandırabilme gibi olanaklar sunmaktadır. Bu özellikleri nedeniyle geliştirilen sistem kişisel ve kurumsal bilgi çalışmasını destekleyen bir kişisel enformasyon yönetim sistemi aracıdır.

Ekran görüntüsünden metin elde etme yaklaşımı ekranın duyarlılığına, ekrandaki metinlerin yazı büyüklüğüne ve yazı tipine sıkı sıkıya bağımlıdır. Bazı yazı tipleri ve küçük yazı boyları metinlerin doğru elde edilmesini engelleyebilmektedir. Diğer taraftan ekranda üst üste binmiş pencerelerin varlığı da hem bazı sözcüklerin görünmesini, hem de sözcüğün bütün harflerinin görünmesini engelleyebilir. Bu sorunlar elde edilen ekran metinlerinin kesinliğini etkilemekle birlikte gün boyunca yüzlerce ekran görüntüsünün yakalanması nedeniyle metinlerin ekran görüntülerinde yer alma sıklığının "niteliğini" fazla etkilemeyecektir. Diğer bir deyişle, bir sözcüğün zaman boyunca dalgalanan sıklık dağılımındaki miktarlar kesin olmamakla birlikte dalganın yapısı gerçek durumdan çok uzak olmayacaktır.

Uygulanan yaklaşım "anımsama" açısından yaklaşıldığında, kullanıcının görmediği sözcükleri anımsamayacağı gerçeğiyle uyumludur. Böylece bir pencerenin arkasında kaldığından dolayı görülmeyen bir belge kullanıcının deneyiminin bir parçası haline gelmeyecektir.

Tasarlanan sisteme ait geliştirilen prototip yazılımın sadece Windows 8.1 ve üstü işletim sisteminde masaüstü ortamında çalışma kısıtlılığı bulunmaktadır. Fakat içerdiği işlevlerin diğer işletim sistemlerine taşınmasında bir engel bulunmamaktadır. Diğer taraftan, bilgi çalışanlarının kişisel ve kurumsal bilgi çalışmalarını üzerinde gerçekleştirdikleri önemli bir diğer cihaz olan akıllı telefonlara (güvenlik nedeniyle akıllı telefonlarda genel amaçlı ekran görüntüsü yakalama işlevinin kısıtlanması nedeniyle)  bu sistemde yer verilmemiştir.

Bu çalışmada geliştirilen sistemden yararlanarak, bireylerin geçmiş deneyimlerindeki ilgilendikleri konulara ait "konu çözümlemesi" yapılması için bir sistemin tasarlanması mümkün olabilecektir.

Teşekkürler
Bu çalışma Türkiye Bilimsel ve Teknik Araştırmalar Kurumu (TÜBİTAK) tarafından 115K497 nolu araştırma projesi kapsamında desteklenmiştir.

Kaynaklar


[1] http://http://personalinformationsystems.blogspot.com.tr/2016/03/working-paper-screen-capture-for.html

[2] http://lucene.apache.org/

[3] https://lucenenet.apache.org/

[4] http://www.codeproject.com/Articles/224722/hOOt-full-text-search-engine