NZemberek 0.1 Çıktı

0
FZ
Zemberek blogundaki habere göre .NET için C# ile geliştirilen açık ve özgür kodlu yazım kılavuzu NZemberek çıktı:

"17 Kasım 2006'da Mehmet'e gönderdiğim bir e-posta ile başlayan çalışmamızın ilk ürününü bugün ortaya çıkardık. Zemberek projesinin .NET "port"u olan NZemberek'in 0.1 sürümü bugün itibariyle yayınlandı. 17 Kasım'dan sonra kodların .NET (C#) karşılıklarını oluşturduk. Bu iş, bazı araçları ya da otomatikleştirilmiş komutları kullanarak ne kadar hızla yapılsa da birçok zorlukla karşılaşılabiliyor. Zemberek ekibinin de desteğiyle şu anda Zemberek2 projesinin işlevlerini neredeyse tamamıyla yerine getiren bir sürüm mevcut.
Mehmet ve Ahmet'e çok teşekkür ediyoruz. Onlar, tek amacımızın bu projeyi .Net platformuna taşımak olmadığını, bilgi ve deneyimimiz ölçüsünde her iki kanatta da elden gelen katkıyı yapmak istediğimizi biliyorlar.

NZemberek için bundan sonraki hedefimiz bir MS Office "add-in"i sayesinde Office Proofing Tools dışında da sözcük denetimini yapabilmek. Gelişmeleri yine Zemberek ekibinin bizimle paylaştığı bu blogdan sizlerle paylaşmaya devam edeceğiz.

Proje sayfası: http://code.google.com/p/nzemberek/

Görüşler

0
mdakin
Bir kaç küçük düzeltme,
NZemberek yazım kılavuzu değil Zemberek kütüphanesinin doğrudan ikizi, yanlış anlaşılmasın.
Bir de NZemberek Geliştiricileri Tankut Tekeli ve Mert Derman, adları geçmiyor hiç bir yerde, ben söyleyeyim :).
0
towsonu2003
1.
"Gelişmeleri yine Zemberek ekibinin bizimle paylaştığı bu blogdan sizlerle paylaşmaya devam edeceğiz."

hangi blog?

------------------------

2.
http://code.google.com/p/nzemberek/wiki/NZemberekKullanim

:rar dosyasını açtığınız klasördeki NZemberek.dll kütüphanesini ekleyin:

:projenizi build ettiğinizde oluşan exe dosyasını çift tıklayıp çalıştırabilirsiniz:

dll? exe? OMG PONIES! ;)

------------------------

3.
neden java'dan .net'e tasimislar?
0
towsonu2003
1. nm...
0
mdakin
Haber biraz eksik olunca böyle sorular gelmesi doğal tabi.

1. http://zembereknlp.blogspot.com

2 ve 3. NZemberek, zemberek projesinin .net klonu. ve farklı bir ekip tarafından yürütülüyor. .net'e taşınma diye bir şey yok. Şimdilik windows altında çalışıyor, dll ve exe muhabbeti o yüzden. zemberek projesi aynen devam ediyor.
0
spinodal
towsonu2003 her 3 sorunuzu da yanıtlamaya çalışyaım:

1. Haberin başında verilen bağlantının hedefi olan blogdan sözediliyor. Haberi buraya yazan arkadaş blogdaki yazıyı olduğu gibi aldığı için anlaşılmıyor olabilir. Ancak bağlantıyı izleyip yazı okunduğunda sanırım yanlış anlama ya da karışıklık gider.liyor.

2. NZemberek kullanımı için hazırlanmış rar uzantılı dosyanın içeriğindeki .dll (kütüphane) kullanım belgesinde anlatılan örnek konsol uygulamasına referans olarak tanıtılıyor. Konsol uygulaması da oluşturulduğunda (build edşkdiğinde) ortaya .exe uzantılı çalıştırılabilir bir dosya çıkıyor. .Net platformuna bir miktar aşina olanların izleyeceği bir yönerge olarak düşünüldüğünden detaya girilmedi.

3. Sadece Zemberek projesine de destek verebilirdik (ki bunu elimizden geldiğince yapacağız zaten) ancak, Zemberek projesini farklı bir perspektiften yaklaşarak daha kolay anlayabileceğimizi hem böylece farklı br platformda kullanmak isteyecek geliştiricilere hazır bir yapı üretmiş olacağımızı düşündük. Bundan böyle her iki yönde de elimizden gelen desteği sürdürmeyi istiyoruz. .Net portuna ilgi oluşmazsa zaten ömrü uzun olmayacaktır, ama ben öyle olmayacağına inanıyorum.

Umarım aydınlatıcı olmuştur.
0
FZ
Şu anda yapmış olduğunuz işin .NET ortamında alternatifi yok bu bakımdan ilgi olacağını düşünüyorum. Bu sayede Türkçe metinle iş yapan her .NET uygulaması ister VB, ister C# ister Perl yahut Ruby ile yazılmış olsun kolayca Türkçe yazım denetleme özelliğine kavuşacaktır. Yolunuz açık olsun!
0
tongucyumruk
Yakın zamanda Java'nın GPL olarak yayınlanmış olduğunu gözardı ederek birşeyler yazmam gerekirse:

Her ne kadar üzerinde yazılım geliştireceğim bir platform olarak gerek .Net gerekse Java bana çok sevimli platformlar olarak gözükmüyor. Öte yandan .Net'in uzun süredir özgür bir gerçeklemesi (implementasyon) bulunması sebebiyle bilgisayarımda hiç Java uygulaması yokken az da olsa Mono ile geliştirilmiş birkaç uygulama var.

Java'nın GPL olmasıyla Java uygulamaları kullanma oranım nasıl değişir bilmiyorum fakat eğer NZemberek Mono üzerinde sağlıklı bir biçimde çalışıyorsa (ki çalışmaması için aklıma bir sebep gelmiyor) en azından kısa vadede yazım denetleme için tercih ettiğim sistem haline gelebilir diye düşünüyorum.

Çalışmalarınızda başarılar dilerim.

Not: Aramızda hem doğal dil işleme, hem de Common Lisp ile uğraşan birileri olsa, CL-Zemberek diye birşeyler falan yazsa, Java kodunu Common Lisp'e port ederek başlayıp sonra Common Lisp tarzına uygun hale getirecek şekilde refactor etse, hatta ECLM 08'de bunu sunsa ne de güzel olurdu değil mi?
0
FZ
MS Windows ortamını düşündüğümde, daha önce belirttiğim gibi pek çok uygulama geliştirici, bunlar gerek VS.NET gerek Delphi yahut benzeri şeyleri kullansınlar, ellerinin altında böyle bir otomatik Türkçe yazım denetleyici olmasından epey memnun olacak ve uygun olan her yerde yoğun olarak kullanacaklardır diye düşünüyorum.

Diğer yandan, Türkiye'de de yavaş yavaş CL ile ilgili profesyonel olarak uğraşmaya başlayan bir kitle oluşmaya başladı ve bunların arasında daha önce Java ile epey uğraşmış yazılımcılar var. Yani doğal dil ile uğraşmadan da Java'daki sistemi CL'ye aktarmak söz konusu olabilir tabii buradaki dezavantaj özgün projedeki gelişmeleri takip edip sürekli yeniden uygulamak, hataları düzeltip senkronu tutturmak olacaktır.
0
mdakin
Burada küçük bir uyarı yapayım, NZemberek'in yazıldığı C# dili java'nın neredeyse kopyası gibi olsa da NZemberek ekibinin çalışması sırasında zaman kaybına neden olan pek çok küçük sorun çıktı. CL gibi Java ile neredeyse hiç ilgisi olmayan bir dile port etmek kat be kat daha zor olacaktır. Uyarmadı demeyin.

0
FZ
Mutlaka fark olacaktır kıyaslarsak. Ancak daha önce ciddi Java deneyimi olan ve orta seviyede Common Lisp bilen birisi eğer yarı zamanlı yahut tam zamanlı bu işe emek harcarsa tahminim 3-4 ayda konunun %90'ını halleder.
0
mdakin
Olsa bile bu emeğe değer mi şüpheliyim. NZemberek için bile yeni değişikliklerle senkronizasyon ciddi bir sorun çünkü.
0
mdakin
Olsa bile bu emeğe değer mi şüpheliyim. NZemberek için bile yeni değişikliklerle senkronizasyon ciddi bir sorun çünkü.
0
FZ
Eşzamanlılaştırma mutlaka bir sorun olacaktır bu tür farklı ortamlara aktarmada. Diğer yandan, değip değmeyeceğine tabii ki öyle bir yükü üstlenmeyi göze alan kişi karar verecektir. Tıpkı NZemberekçilerin yaptığı gibi. Diğer yandan NZemberek ve belki olursa cl-zemberek gibi projelerle uğraşanların geliştirdikleri birtakım şeyler, yapacakları yenilikler de Zemberek'e aktarılabilir. Özgür ve açık kodlu yazılımın doğasındaki bu çok seslilik ve inisiyatif kullanma tavrı zaman zaman garip dallanmalara, budaklanmalara yol açsada zorunlu olarak verimsizlik getirdiği söylenemez.
0
afsina
C++ ya da C# aktarimini anlarim (ki Nzemberek calismasini destekliyoruz) ama Lisp bana biraz mantiksiz geldi (Javaya en uzak dillerden. pythondan bile uzak ). yanlis anlamayin, lispin gucu malum, ama ciddi bir yazilim yaklasim farki var. Aslinda var olan prolog, perl ile yazilmis cozumleyici yapilari belki daha kolay olurdu lisp acisindan. Ayrica ugrasmak isteyenler icin daha hafif oldugunu dusundugum imla denetimi amacli Hunspell gibi eklemeli diller icin C++ kutuphaneler de mevcut. sirf yapmis olmak icin bu konuda calismak bana da biraz eziyet gibi geldi.
0
FZ
Common Lisp'in farklı bir dil olması, bu tür bir çalışmayı "mantıksız" kılmaz diye düşünüyorum. Daha önce belirttiğim gibi üstlelinelecek yük tamamen üstlenecek kişiye bağlı. Sonuç itibarı ile Zemberek'te kullanılan veriyapıları ve algoritmalar belli. Meraklı ve hevesli biri bunları Common Lisp, Scheme, Prolog yahut Haskell gibi kendi favorisi olan üst seviyeli dillerden biri ile uygulayabilir ve böyle bir çalışmanın sonucunda elimizden çok güzel bilgiler istatistikler oluşmuş olur ve çeşitli performans testleri, kıyaslamalar, vs. yapılabilir.

Diğer yandan daha üst seviyeli (sözdizim, semantik, vs.) işler yapmak isteyen birisi için seçeceği dilde yerel olarak yazılmış bir sözcük çözümleyici bir problem değil bir avantaj olacaktır. Tonguç'un vurguladığı gibi bu tür bir çabaya girişen kişi hem anadilinin yapısı üzerine çok daha farklı bir bilince kavuşacak, hem uğraştığı dilde kapsamlı bir uygulama geliştirmiş olmanın içsel "know-how"ına erişecektir ki bu da o kişi için az buz kazanç değildir. Üstelik sonuç olarak ortaya çıkan ürün de işe yaramaz bir şey olmayacaktır. Özgür yazılım dünyasında ne kadar acayip "hadi bunu yeni baştan yazalım, filanca dilde yeniden yazalım" vakaları olduğunu düşündüğümde (bkz. birçok zırva Yet Another XXXXXX türü yazılım) doğrusu Zemberek gibi yapının farklı diller ve yaklaşımlarla yeniden uygulanması (ve belki ileri götürülmesi) bana nispeten çok daha anlamlı geliyor.

Son olarak: "Hani bu üst seviyeli diller (CL, Scheme, Prolog, Haskell, OCaml, vb.) güzel soyutlama sağlıyor, çok daha rahat iş yapmamıza müsaade eder" denir ya, işte meraklıların bu durumu anlamaları için bence çok güzel bir bitirme projesi olabilir bu ölçüdeki kapsamlı bir uygulama.
0
tongucyumruk
Genel olarak insanlığa hizmet adına ne kadar faydalı olacağı tabiiki tartışılır. SOnuçta aynı şeyin birde fazla defa tekrarlanması anlamsız olabilir, hatta CL altında yazım denetimi ihtiyacı varsa zemberek sunucu modunda çalışıyor yanılmıyorsam, ona bir soket açıp sormak daha verimli olabilir.

Öte yandan böyle bir port işleminin, işlemi gerçekleştiren kişiye sağlayacağı fayda oldukça yüksek olacaktır. Eğer bunu yapan kişi, biraz da kodu ezbere CL'e aktarmak yerine kodu okuyup anlamaya çalışarak bu işi yaparsa gerek Java gerekse Common Lisp (özellikle de CLOS) hakkında derinlemesine bilgi sahibi olacaktır. Üstelik bu, Zemberek'in iç işleyişi konusunda oldukça detaylı bilgiye sahip bir kişinin daha ortaya çıkmasıı sağlayarak Zemberek'in geliştirilmesine de yardımcı olacaktır diye düşünüyorum.
0
FZ
Şimdi düşündüm de bu konudan çok güzel bir bitirme ödevi çıkabilir hem de işe yarar bir şey olur, burayı takip eden üniversite öğrencilerinin ve hocalarının dikkatine ;-)
0
hb
Hmm... challenge... ;)
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Gmail´i Genel Depolama Alanı Olarak Kullanın!

FZ

GmailFS size Gmail hesabınız için ayrılmış Gmail disk alanını "mount" etmenizi sağlayıp sonra da bunu genel bir disk alanı gibi kullanmanıza izin veren bir tür sanal dosya sistemi sunar. GmailFS bir Python uygulaması olup FUSE isimli altyapıdan ve libgmail fonksiyon kitaplığından faydalanmaktadır.

GmailFS, "read", "write", "open", "close", "stat", "symlink", "link", "unlink", "truncate" ve "rename" gibi işlemleri destekler. Bu da şu demektir, Gmail hesabınız için size ayrılmış uzaktaki disk alanı sanki kendi makinanızdaymışçasına ve sanki normal bir disk alanı gibiymişçesine " cp", "ls", "mv", "rm", "ln", "grep", vb. komutları çalıştırabilirsiniz.

Meraklısı GmailFS ana sitesine bakabilir.

Bu yazılıma dikkatimi çeken Can Burak Çilingiroğlu'na teşekkürler.

Java(TM) 2 SDK, Standard Edition sürüm 1.4.0 çıktı

conan

En son Ocak sonunda Release Candidate (Sürüm adayı?) haberini gördüğüm J2SE`nin son sürümü olan 1.4.0 çıkmış. (Ya sessiz sedasız çıktı ya da sağırım :) Çıkış bildirisini buradan, dökümanlara buradan, yeni özelliklerine tam buradan, karar verdim indireceğim diyorsanız da buradan ulaşabilirsiniz. ;)

Hoş Bir TGE

anonim

C için pek çok geliştirme ortamı var bilinen ancak ben karşılaştığım bu hoş TGE yi (Tümleşik Geliştirme Ortamı) paylaşmak istedim. Adı Code::Blocks. GPL 2.0 lisanslı bu TGE pek çok gelişmiş özelliği içinde barındırıyor. Code::Blocks GNU/Linux ve Windows ortamlarında çalışabiliyor. Ayrıntılı bilgi için buraya bakabilirsiniz.

RegExPad

auselen

Eğer kadim bir windows kullanıcısı iseniz düzenli ifadeler (regular expressions) konusu size her zaman yabancı gelmiş olabilir. Uygulama geliştirirken (örneğin web uygulamaları) ya da metin işlerken oldukça işinize yarayabilecek bu konuda biraz pratik yapmak için küçük bir kum havuzu ister misiniz?

2 Günde İşletim Sistemi Yazabilir Misiniz?

FZ

Programlamaya bir şekilde girmiş hemen herkesin aklından bir ara geçmiş sorulardan biridir, "işletim sistemi nasıl yazılır?". İşletim sistemleri bilgisayar dünyasının en popüler, en gizemli, en çok tartışılan ve piyasayı belirleyen konularından biri olagelmiştir. Kimisine göre basit, kimisine göre karmaşık olan bu işte kavram karmaşası da az değildir, çekirdek ile dağıtımı karıştıranlar mı istersiniz, neyin temel işlevsellik olduğu üstüne sabaha dek tartışanlar mı yoksa hangi donanımların esas alınması ve hangi sürücülerin desteklenmesi gerektiğine dair kavga edenler mi istersiniz... BSD, Solaris, Linux, BeOS, VMS, MS Windows ve daha pek çok geliştirme ekibine bakınca konunun popülaritesini ve karmaşıklığını anlamak mümkündür.

Pekiyi bu konuda birkaç günlük bir çalışma ile işin temellerini öğrenmek mümkün müdür? 2 günde işletim sistemi yazabilir misiniz?