Raramorph The Ruby Arabic Morphological Analyzer
September 14, 2008
Raramorph is a Ruby 1.9 gem for an intelligent port of Aramorph based on Buckwalter Arabic Morphological Analyzer Version 1.0 , Released By eSpace Technologies.
The first Release of Raramorph full morphological analyzer tools , provided with an executable or a library can be included in the code , with basic developer tools , to be extended in the next version.
Due to algorithmic and data structures optimization in Raramorph , we enhanced the performance of the library reaching an average of 4 – 5 seconds in loading the dictionaries which was the main bottleneck in the java raramorph reaching to 10-11 seconds and average of 2-3 seconds in parsing meduim sized files and printing the output file.
Installing Raramorph :
gem install raramorph ( note that raramorph requires Ruby1.9 )
Usage :
for exectuable :
raramorph input_file_name output_file_name -v -a -v verbose mode ( optional ) -a arabic output ( optional )
In Coding
require ‘raramorph’
For analyzing a file
Raramorph.execute(input_filename, output_filename ,verbose = false, not_arabic = true)
You can use functions like analyze_token , tokenize , segement_word all as static methods in Raramorph class , In the next Release developer tools will be more stable including more features for analysis and finding the morphological solutions , which can be used in searching and mining engines.
Also Raramorph -ferret adapter is to be released soon , for helping in the morphological analysis in search engines.
Raramorph Source Code is avaliable at :
http://github.com/espace/raramorph/tree/master
SystemVIPC now compatible with Ruby 1.8 and Ruby 1.9
September 9, 2008
SystemVIPC is a Ruby 1.8 module for System V Inter-Process Communication: message queues, semaphores, and shared memory.
eSpace Has released a version from SystemVIPC-0.8 RC1 that is compatible and works fine for Ruby 1.8 and Ruby 1.9
It’s really nice to work with SysVIPC with its simple used APIs , Here I’ll provide a simple tutorial for using SysVIPC Shared Memory.
Downloading and Installing
- Download SysVIPC Compatible Release for Ruby 1.8 , Ruby 1.9 at : http://github.com/espace/sysvipc-0.8-rc1.git
- Extract the Source , then run : ruby1.9 extconf.rb ( note : run with the ruby version you want ) then : make install Makefile
- You will have the sysvipc.so file appearing now
- In all cases you have to put these lines of code :
require ’sysvipc.so’
include SystemVIPC
Shared Memroy Example
## Testing Shared Memory
- $key = ftok ‘/tmp/shm’ , IPC_CREAT
- $sh = SharedMemory.new($key, 33554432, IPC_CREAT | 0660)
- $sh.attach
- child = open(“|-”,”w+”)
- if child.nil?
- $sh.write(‘In Shared Memory’)
- sleep 2
- $sh.write(‘now showing you the world!’)
- else
- sleep 1
- puts $sh.read(100)
- sleep 3
- puts $sh.read(100)
- end
Lines 1 , 2 , 3 we convert the path name into as SysVIPC key , then we initiate if necessary 8 MegaBytes shared Memory Segment associated with key , then finally we attach the shared memory segment.
lines 4 , 5 we for a child for the process
At lines 6 , 8 we use the SharedMemory method write to write two data items to the shared memory segment
lines 11 , 13 the forked child process reads the data written by the parent process in the shared Memory segment and prints it.
sleep call is used for synchronizing the events..
Hope this is helpful….
View The SystemVIPC documentation at : http://sysvipc.rubyforge.org/

![OMG ! [ Explore #1 ] OMG ! [ Explore #1 ]](http://static.flickr.com/2631/4150305338_5dd4270c04_t.jpg)

