semantic
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 68
Mantissa 7.0
Mantissa is a collection of various mathematical tools aimed towards for simulation. more>>
Mantissa is a collection of various mathematical tools aimed towards for simulation.
Mantissa contains a collection of algorithms, among which:
a small set of linear algebra classes
a least squares estimator
some curve fitting classes
several ordinary differentials equations integrators, either with fixed steps or adaptive stepsize control (see below)
vectors and rotations in a three dimensional space
algebra-related classes like rational and double polynomials
various orthogonal polynomials:
Chebyshev
Hermite
Laguerre
Legendre
some random numbers and vectors generation classes:
Robert M. Ziff four tap shift register (contributed by Bill Maier)
Makoto Matsumoto and Takuji Nishimura Mersenne twister
generators for vectors with correlated components
some basic (min, max, mean, standard deviation) statistical analysis classes
some optimization algorithms using direct search methods:
the Nelder-Mead simplex method
Virginia Torczons multi-directional method
Enhancements:
- For many basic objects provided by Mantissa like Vector3D, Rotation, and the various Polynomial classes, instances are now guaranteed to be immutable.
- This greatly simplifies safe sharing of instances without forcing users to either put severe restrictions on their use of Mantissa classes or make numerous copies just to make sure everything is safe.
- Since the change is a semantic change on the contract of the classes, this version introduces some incompatibilities with respect to previous ones.
- Upgrading to this version is not difficult, though.
<<lessMantissa contains a collection of algorithms, among which:
a small set of linear algebra classes
a least squares estimator
some curve fitting classes
several ordinary differentials equations integrators, either with fixed steps or adaptive stepsize control (see below)
vectors and rotations in a three dimensional space
algebra-related classes like rational and double polynomials
various orthogonal polynomials:
Chebyshev
Hermite
Laguerre
Legendre
some random numbers and vectors generation classes:
Robert M. Ziff four tap shift register (contributed by Bill Maier)
Makoto Matsumoto and Takuji Nishimura Mersenne twister
generators for vectors with correlated components
some basic (min, max, mean, standard deviation) statistical analysis classes
some optimization algorithms using direct search methods:
the Nelder-Mead simplex method
Virginia Torczons multi-directional method
Enhancements:
- For many basic objects provided by Mantissa like Vector3D, Rotation, and the various Polynomial classes, instances are now guaranteed to be immutable.
- This greatly simplifies safe sharing of instances without forcing users to either put severe restrictions on their use of Mantissa classes or make numerous copies just to make sure everything is safe.
- Since the change is a semantic change on the contract of the classes, this version introduces some incompatibilities with respect to previous ones.
- Upgrading to this version is not difficult, though.
Download (0.19MB)
Added: 2006-12-15 License: BSD License Price:
1044 downloads
Majic 0.01pre2
Majic is an Erc interprter and compiler. more>>
Majic is the interpreter for a language called Erc. It is written in Java and follows the documented standard for the Erc language. First, a word about Erc: Erc is a link-oriented language. In fact, it is the first link-oriented language. It uses a novel syntax with roots in TCL, Scheme, Bash, and natural languages, among others.
Link orientation is a programming paradigm similar to a cross between link-orientation and object-orientation, with a little hypertext markup thrown in for good measure. In it, although it contains list-like structures which behave like objects, the focus is in fact the links between concepts (structures and elements), as opposed to list organization/processing or object creation.
This makes link-oriented languages such as Erc good for AI or other applications which require keeping track of links between concepts, such as expert systems, semantic searching, and neural nets.
Erc is pronounced URk, with a short U. Majic is pronounced MAH-jik. Both names are derived from the book Web of Angels by John M Ford, in which the Erc was the ethreal currency used in the book universe, and Majic was slang for multiple Erc.
Majic stands for Majic Ate Java Inline Classes, or My Awesome Java Interpreter Code. Erc stands for Enumerate Relative Constants, or Ercs Really Cool. Choose an interpretation, either I sound overconfident (read: like an arrogant jerk), obtrusely technical, or like a hacker with a bad sense of humor. All of that is true, just to clear stuff up.
<<lessLink orientation is a programming paradigm similar to a cross between link-orientation and object-orientation, with a little hypertext markup thrown in for good measure. In it, although it contains list-like structures which behave like objects, the focus is in fact the links between concepts (structures and elements), as opposed to list organization/processing or object creation.
This makes link-oriented languages such as Erc good for AI or other applications which require keeping track of links between concepts, such as expert systems, semantic searching, and neural nets.
Erc is pronounced URk, with a short U. Majic is pronounced MAH-jik. Both names are derived from the book Web of Angels by John M Ford, in which the Erc was the ethreal currency used in the book universe, and Majic was slang for multiple Erc.
Majic stands for Majic Ate Java Inline Classes, or My Awesome Java Interpreter Code. Erc stands for Enumerate Relative Constants, or Ercs Really Cool. Choose an interpretation, either I sound overconfident (read: like an arrogant jerk), obtrusely technical, or like a hacker with a bad sense of humor. All of that is true, just to clear stuff up.
Download (0.028MB)
Added: 2005-04-14 License: GPL (GNU General Public License) Price:
1655 downloads
EmacsSpeak 24.0
Emacspeak is a speech interface that allows visually impaired users to interact independently and efficiently with the computer. more>>
Emacspeak is a speech interface that allows visually impaired users to interact independently and efficiently with the computer.
Audio formatting --a technique pioneered by AsTeR-- and full support for W3Cs Aural CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic information. By seamlessly blending all aspects of the Internet such as Web-surfing and messaging, Emacspeak speech-enables local and remote information via a consistent and well-integrated user interface.
Available free of cost on the Internet, Emacspeak has dramatically changed how the author and hundreds of blind and visually impaired users around the can interact with the their computer and the Internet. A rich suite of task-oriented tools provides efficient speech-enabled access to the audio desktop and evolving semantic WWW. When combined with Linux running on low-cost PC hardware, Emacspeak/Linux provides a reliable, stable speech-friendly solution that opens up the Internet to visually impaired users around the world.
<<lessAudio formatting --a technique pioneered by AsTeR-- and full support for W3Cs Aural CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic information. By seamlessly blending all aspects of the Internet such as Web-surfing and messaging, Emacspeak speech-enables local and remote information via a consistent and well-integrated user interface.
Available free of cost on the Internet, Emacspeak has dramatically changed how the author and hundreds of blind and visually impaired users around the can interact with the their computer and the Internet. A rich suite of task-oriented tools provides efficient speech-enabled access to the audio desktop and evolving semantic WWW. When combined with Linux running on low-cost PC hardware, Emacspeak/Linux provides a reliable, stable speech-friendly solution that opens up the Internet to visually impaired users around the world.
Download (2.3MB)
Added: 2006-07-19 License: GPL (GNU General Public License) Price:
1196 downloads
SenseClusters 0.95
SenseClusters is a natural language processing package that allows you to cluster similar contexts or to identify clusters. more>>
SenseClusters is a natural language processing package that allows you to cluster similar contexts or to identify clusters of related words.
SenseClusters supports its own native methods based on first and second order representations of context, and also supports Latent Semantic Analysis. It is fully unsupervised, and can automatically discover the optimal number of clusters in your text.
SenseClusters is a complete system that takes users from preprocessing of raw text to providing clustered output.
Enhancements:
- Full support for Latent Semantic Analysis was introduced.
- Both contexts and words may be clustered using either native SenseClusters methods (first or second order) or Latent Semantic Analysis.
<<lessSenseClusters supports its own native methods based on first and second order representations of context, and also supports Latent Semantic Analysis. It is fully unsupervised, and can automatically discover the optimal number of clusters in your text.
SenseClusters is a complete system that takes users from preprocessing of raw text to providing clustered output.
Enhancements:
- Full support for Latent Semantic Analysis was introduced.
- Both contexts and words may be clustered using either native SenseClusters methods (first or second order) or Latent Semantic Analysis.
Download (20.1MB)
Added: 2006-08-29 License: GPL (GNU General Public License) Price:
1153 downloads
KeyNote 2.3
KeyNote is a simple and flexible trust-management system designed to work well for applications. more>>
KeyNote is a simple and flexible trust-management system designed to work well for applications.
Trust management, introduced in the PolicyMaker system [BFL96], is a unified approach to specifying and interpreting security policies, credentials, and relationships; it allows direct authorization of security-critical actions. A trust-management system provides standard, general-purpose mechanisms for specifying application security policies and credentials. Trust-management credentials describe a specific delegation of trust and subsume the role of public key certificates; unlike traditional certificates, which bind keys to names, credentials can bind keys directly to the authorization to perform specific tasks.
A language for describing `actions, which are operations with security consequences that are to be controlled by the system.
A mechanism for identifying `principals, which are entities that can be authorized to perform actions.
A language for specifying application `policies, which govern the actions that principals are authorized to perform.
A language for specifying `credentials, which allow principals to delegate authorization to other principals.
A `compliance checker, which provides a service to applications for determining how an action requested by principals should be handled, given a policy and a set of credentials.
The trust-management approach has a number of advantages over other mechanisms for specifying and controlling authorization, especially when security policy is distributed over a network or is otherwise decentralized.
Trust management unifies the notions of security policy, credentials, access control, and authorization. An application that uses a trust- management system can simply ask the compliance checker whether a requested action should be allowed. Furthermore, policies and credentials are written in standard languages that are shared by all trust-managed applications; the security configuration mechanism for one application carries exactly the same syntactic and semantic structure as that of another, even when the semantics of the applications themselves are quite different.
Trust-management policies are easy to distribute across networks, helping to avoid the need for application-specific distributed policy configuration mechanisms, access control lists, and certificate parsers and interpreters.
For a general discussion of the use of trust management in distributed system security, see [Bla99].
KeyNote is a simple and flexible trust-management system designed to work well for a variety of large- and small- scale Internet-based applications. It provides a single, unified language for both local policies and credentials. KeyNote policies and credentials, called `assertions, contain predicates that describe the trusted actions permitted by the holders of specific public keys. KeyNote assertions are essentially small, highly-structured programs. A signed assertion, which can be sent over an untrusted network, is also called a `credential assertion. Credential assertions, which also serve the role of certificates, have the same syntax as policy assertions but are also signed by the principal delegating the trust.
In KeyNote:
Actions are specified as a collection of name-value pairs.
Principal names can be any convenient string and can directly represent cryptographic public keys.
The same language is used for both policies and credentials.
The policy and credential language is concise, highly expressive, human readable and writable, and compatible with a variety of storage and transmission media, including electronic mail.
The compliance checker returns an application-configured `policy compliance value that describes how a request should be handled by the application. Policy compliance values are always positively derived from policy and credentials, facilitating analysis of KeyNote-based systems.
Compliance checking is efficient enough for high-performance and real-time applications.
This document describes the KeyNote policy and credential assertion language, the structure of KeyNote action descriptions, and the KeyNote model of computation.
<<lessTrust management, introduced in the PolicyMaker system [BFL96], is a unified approach to specifying and interpreting security policies, credentials, and relationships; it allows direct authorization of security-critical actions. A trust-management system provides standard, general-purpose mechanisms for specifying application security policies and credentials. Trust-management credentials describe a specific delegation of trust and subsume the role of public key certificates; unlike traditional certificates, which bind keys to names, credentials can bind keys directly to the authorization to perform specific tasks.
A language for describing `actions, which are operations with security consequences that are to be controlled by the system.
A mechanism for identifying `principals, which are entities that can be authorized to perform actions.
A language for specifying application `policies, which govern the actions that principals are authorized to perform.
A language for specifying `credentials, which allow principals to delegate authorization to other principals.
A `compliance checker, which provides a service to applications for determining how an action requested by principals should be handled, given a policy and a set of credentials.
The trust-management approach has a number of advantages over other mechanisms for specifying and controlling authorization, especially when security policy is distributed over a network or is otherwise decentralized.
Trust management unifies the notions of security policy, credentials, access control, and authorization. An application that uses a trust- management system can simply ask the compliance checker whether a requested action should be allowed. Furthermore, policies and credentials are written in standard languages that are shared by all trust-managed applications; the security configuration mechanism for one application carries exactly the same syntactic and semantic structure as that of another, even when the semantics of the applications themselves are quite different.
Trust-management policies are easy to distribute across networks, helping to avoid the need for application-specific distributed policy configuration mechanisms, access control lists, and certificate parsers and interpreters.
For a general discussion of the use of trust management in distributed system security, see [Bla99].
KeyNote is a simple and flexible trust-management system designed to work well for a variety of large- and small- scale Internet-based applications. It provides a single, unified language for both local policies and credentials. KeyNote policies and credentials, called `assertions, contain predicates that describe the trusted actions permitted by the holders of specific public keys. KeyNote assertions are essentially small, highly-structured programs. A signed assertion, which can be sent over an untrusted network, is also called a `credential assertion. Credential assertions, which also serve the role of certificates, have the same syntax as policy assertions but are also signed by the principal delegating the trust.
In KeyNote:
Actions are specified as a collection of name-value pairs.
Principal names can be any convenient string and can directly represent cryptographic public keys.
The same language is used for both policies and credentials.
The policy and credential language is concise, highly expressive, human readable and writable, and compatible with a variety of storage and transmission media, including electronic mail.
The compliance checker returns an application-configured `policy compliance value that describes how a request should be handled by the application. Policy compliance values are always positively derived from policy and credentials, facilitating analysis of KeyNote-based systems.
Compliance checking is efficient enough for high-performance and real-time applications.
This document describes the KeyNote policy and credential assertion language, the structure of KeyNote action descriptions, and the KeyNote model of computation.
Download (0.13MB)
Added: 2006-07-14 License: (FDL) GNU Free Documentation License Price:
1253 downloads
Filter::Macro 0.11
Filter::Macro is a Perl module to make macro modules that are expanded inline. more>>
Filter::Macro is a Perl module to make macro modules that are expanded inline.
SYNOPSIS
In MyHandyModules.pm:
package MyHandyModules;
use Filter::Macro;
# lines below will be expanded into callers code
use strict;
use warnings;
use Switch;
use IO::All;
use Quantum::Superpositions;
In your program or module:
use MyHandyModules; # lines above are expanded here
If many of your programs begin with the same lines, it may make sense to abstract them away into a module, and use that module instead.
Sadly, it does not work that way, because by default, all lexical pragmas, source filters and subroutine imports invoked in MyHandyModules.pm takes effect in that module, not the calling programs.
One way to solve this problem is to use Filter::Include:
use Filter::Include;
include MyHandyModules;
However, it would be really nice if MyHandyModules.pm could define the macro-like semantic itself, instead of placing the burden on the caller.
This module lets you do precisely that. All you need to do is to put one line in MyHandyModules.pm, after the package MyHandyModules; line:
use Filter::Macro;
With this, a program or module that says use Filter::Macro will expand lines below use Filter::Macro into their own code, instead of the default semantic of evaluating them in the MyHandyModules package.
Line numbers in error and warning messages are unaffected by this module; they still point to the correct file name and line numbers.
<<lessSYNOPSIS
In MyHandyModules.pm:
package MyHandyModules;
use Filter::Macro;
# lines below will be expanded into callers code
use strict;
use warnings;
use Switch;
use IO::All;
use Quantum::Superpositions;
In your program or module:
use MyHandyModules; # lines above are expanded here
If many of your programs begin with the same lines, it may make sense to abstract them away into a module, and use that module instead.
Sadly, it does not work that way, because by default, all lexical pragmas, source filters and subroutine imports invoked in MyHandyModules.pm takes effect in that module, not the calling programs.
One way to solve this problem is to use Filter::Include:
use Filter::Include;
include MyHandyModules;
However, it would be really nice if MyHandyModules.pm could define the macro-like semantic itself, instead of placing the burden on the caller.
This module lets you do precisely that. All you need to do is to put one line in MyHandyModules.pm, after the package MyHandyModules; line:
use Filter::Macro;
With this, a program or module that says use Filter::Macro will expand lines below use Filter::Macro into their own code, instead of the default semantic of evaluating them in the MyHandyModules package.
Line numbers in error and warning messages are unaffected by this module; they still point to the correct file name and line numbers.
Download (0.013MB)
Added: 2007-02-20 License: MIT/X Consortium License Price:
976 downloads
Search::ContextGraph 0.15
Search::ContextGraph is a Perl module for spreading activation search engine. more>>
Search::ContextGraph is a Perl module for spreading activation search engine.
SYNOPSIS
use Search::ContextGraph;
my $cg = Search::ContextGraph->new();
# first you add some documents, perhaps all at once...
my %docs = (
first => [ elephant, snake ],
second => [ camel, pony ],
third => { snake => 2, constrictor => 1 },
);
$cg->bulk_add( %docs );
# or in a loop...
foreach my $title ( keys %docs ) {
$cg->add( $title, $docs{$title} );
}
# or from a file...
my $cg = Search::ContextGraph->load_from_dir( "./myfiles" );
# you can store a graph object for later use
$cg->store( "stored.cng" );
# and retrieve it later...
my $cg = ContextGraph->retrieve( "stored.cng" );
# SEARCHING
# the easiest way
my @ranked_docs = $cg->simple_search( peanuts );
# get back both related terms and docs for more power
my ( $docs, $words ) = $cg->search(snake);
# you can use a document as your query
my ( $docs, $words ) = $cg->find_similar(First Document);
# Or you can query on a combination of things
my ( $docs, $words ) =
$cg->mixed_search( { docs => [ First Document ],
terms => [ snake, pony ]
);
# Print out result set of returned documents
foreach my $k ( sort { $docs->{$b} $docs->{$a} }
keys %{ $docs } ) {
print "Document $k had relevance ", $docs->{$k}, "n";
}
# Reload it
my $new = Search::ContextGraph->retrieve( "filename" );
Spreading activation is a neat technique for building search engines that return accurate results for a query even when there is no exact keyword match. The engine works by building a data structure called a context graph, which is a giant network of document and term nodes. All document nodes are connected to the terms that occur in that document; similarly, every term node is connected to all of the document nodes that term occurs in. We search the graph by starting at a query node and distributing a set amount of energy to its neighbor nodes. Then we recurse, diminishing the energy at each stage, until this spreading energy falls below a given threshold. Each node keeps track of accumulated energy, and this serves as our measure of relevance.
This means that documents that have many words in common will appear similar to the search engine. Likewise, words that occur together in many documents will be perceived as semantically related. Especially with larger, coherent document collections, the search engine can be quite effective at recognizing synonyms and finding useful relationships between documents. You can read a full description of the algorithm at http://www.nitle.org/papers/Contextual_Network_Graphs.pdf.
The search engine gives expanded recall (relevant results even when there is no keyword match) without incurring the kind of computational and patent issues posed by latent semantic indexing (LSI). The technique used here was originally described in a 1981 dissertation by Scott Preece.
<<lessSYNOPSIS
use Search::ContextGraph;
my $cg = Search::ContextGraph->new();
# first you add some documents, perhaps all at once...
my %docs = (
first => [ elephant, snake ],
second => [ camel, pony ],
third => { snake => 2, constrictor => 1 },
);
$cg->bulk_add( %docs );
# or in a loop...
foreach my $title ( keys %docs ) {
$cg->add( $title, $docs{$title} );
}
# or from a file...
my $cg = Search::ContextGraph->load_from_dir( "./myfiles" );
# you can store a graph object for later use
$cg->store( "stored.cng" );
# and retrieve it later...
my $cg = ContextGraph->retrieve( "stored.cng" );
# SEARCHING
# the easiest way
my @ranked_docs = $cg->simple_search( peanuts );
# get back both related terms and docs for more power
my ( $docs, $words ) = $cg->search(snake);
# you can use a document as your query
my ( $docs, $words ) = $cg->find_similar(First Document);
# Or you can query on a combination of things
my ( $docs, $words ) =
$cg->mixed_search( { docs => [ First Document ],
terms => [ snake, pony ]
);
# Print out result set of returned documents
foreach my $k ( sort { $docs->{$b} $docs->{$a} }
keys %{ $docs } ) {
print "Document $k had relevance ", $docs->{$k}, "n";
}
# Reload it
my $new = Search::ContextGraph->retrieve( "filename" );
Spreading activation is a neat technique for building search engines that return accurate results for a query even when there is no exact keyword match. The engine works by building a data structure called a context graph, which is a giant network of document and term nodes. All document nodes are connected to the terms that occur in that document; similarly, every term node is connected to all of the document nodes that term occurs in. We search the graph by starting at a query node and distributing a set amount of energy to its neighbor nodes. Then we recurse, diminishing the energy at each stage, until this spreading energy falls below a given threshold. Each node keeps track of accumulated energy, and this serves as our measure of relevance.
This means that documents that have many words in common will appear similar to the search engine. Likewise, words that occur together in many documents will be perceived as semantically related. Especially with larger, coherent document collections, the search engine can be quite effective at recognizing synonyms and finding useful relationships between documents. You can read a full description of the algorithm at http://www.nitle.org/papers/Contextual_Network_Graphs.pdf.
The search engine gives expanded recall (relevant results even when there is no keyword match) without incurring the kind of computational and patent issues posed by latent semantic indexing (LSI). The technique used here was originally described in a 1981 dissertation by Scott Preece.
Download (0.093MB)
Added: 2006-09-29 License: GPL (GNU General Public License) Price:
1120 downloads
BlueOrganizer 3.3.1
BlueOrganizer is an extension which provides browsing and personalization technology for Firefox. more>>
BlueOrganizer is an extension which provides browsing and personalization technology for Firefox.
The blueorganizer is smart browsing and personalization technology for Firefox. It makes the browser aware of everyday objects like books, movies, wines, restaurants and much more.
The blueorganizer helps you automatically collect these object from many popular sites, manage them and instantly find related information.
A handy sidebar adds an entirely new layer to bluemarked sites and products, providing one-click access to product reviews, tag searches, related sites and more.
All your data is securely stored on Amazon S3 and is automatically synchronized between all your computers. The blueorganizer takes us all one step closer to the promise of semantic web and ultimate productivity.
<<lessThe blueorganizer is smart browsing and personalization technology for Firefox. It makes the browser aware of everyday objects like books, movies, wines, restaurants and much more.
The blueorganizer helps you automatically collect these object from many popular sites, manage them and instantly find related information.
A handy sidebar adds an entirely new layer to bluemarked sites and products, providing one-click access to product reviews, tag searches, related sites and more.
All your data is securely stored on Amazon S3 and is automatically synchronized between all your computers. The blueorganizer takes us all one step closer to the promise of semantic web and ultimate productivity.
Download (0.31MB)
Added: 2007-07-19 License: MPL (Mozilla Public License) Price:
827 downloads
Emacs Configuration Framework 0.0.5
Emacs Configuration Framework is a versatile configuration package for Emacs. more>>
Emacs Configuration Framework is a versatile configuration package for Emacs. It is meant for users whose Emacs configuration has become so complex that it appears to be unmanageable.
It enables you to write and load the configuration for individual Emacs packages in pieces. You can use it to setup some autoloads for a package when you start Emacs and then do extra configuration after the package has loaded.
This speeds up your Emacs startup without compromising your ability to do complicated things.
Enhancements:
- This release adds a new rc.d/lang directory.
- Modes added: speedbar, semantic, cedet, and ecb.
<<lessIt enables you to write and load the configuration for individual Emacs packages in pieces. You can use it to setup some autoloads for a package when you start Emacs and then do extra configuration after the package has loaded.
This speeds up your Emacs startup without compromising your ability to do complicated things.
Enhancements:
- This release adds a new rc.d/lang directory.
- Modes added: speedbar, semantic, cedet, and ecb.
Download (0.032MB)
Added: 2006-10-09 License: GPL (GNU General Public License) Price:
1111 downloads
Red-Piranha 0.3
Red-Piranha is a search and knowledge management system. more>>
Red-Piranha is an open source search system that can actually learn what you are looking for. It lets you go everywhere , find anything , understand everything.
Because it is open source , it can integrate with any system. Because you can use it as a web page , command line or XML- WebService , it will work with most languages , including Java , Perl , C#/.Net and PHP. As a Java based program , it will run on any platform including Windows , Linux / Unix and Mac.
Main features:
- Personal Search Engine for your Desktop (Windows , Linux and Mac).
- Intranet Search Engine - Search your Company or College Intranet.
- Part of your Development Project - Have search abilities up and running in a few minutes.
- To provide Search facilities on your website.
- As a P2P search engine.
- In conjunction with a wiki, as a knowledge / document management solution.
- Scan a set of websites for the data you want (e.g. Search Job sites on a hourly basis).
- Explore the Semantic web using RDF.
- Search RSS feeds for the information you want.
- Search your Companies systems (including SAP , Oracle or any other Database / Data source).
- Provide a back end for searching in your App (Web , Swing , SWT , Flash, Mozilla-XUL, PHP , Perl or even c#/.Net) .
- Document Management for PDF, Word and other Docs.
- As a Webservice to provide search information
- As a command line tool , to give searching power to your scripts.
- Provide a Search facility for your project documentation.
Using
To use Red-Piranha - open your favourite web browser and point it at http://localhost:8080/RP . Within a few seconds , you should see the Red-Piranha start screen. This will have three items of interest
- A Text box , where we enter the information to add or search
- An add information button - to tell Red-Piranha about new information
- A Search button - to carry out a search.
Before we can search , we must tell Red-Piranha we information we are interested in. This is as easy as putting the piece of information we want to add (e.g. the folder c:temp) in the search box and pressing the Add information button. A message will be displayed saying that your information is being added and will be available to search shortly. For more information , look in the logs at TOMCAT_HOMEWebappsRPlogsrp.log
Examples of things we can add to Red-Piranha are
- A folder (e.g. C:Temp). All files in both this folder and *all* its subfolders will be added.
- An individual file. This file can be text , a web page , a word document , or pdf document. For binary files (like word , which are not plain text) , Red-Piranha will scan the file for recognizable text and add that.
- A Web page. Red-Piranha will add this web page , *and* web pages it links to.
- A Google Search (e.g. http://www.google.com/search?q=some+thing?m=100). Red-Piranha will get the results of the google search , and add information on the pages it links to.
- An XML file (including RSS feeds) , either on disk or over the web.
- Favourites / Bookmarks folders - Red-Piranha will index the web pages that these favourites point to.
Adding information can take anything from a few milliseconds , depending on the amount of information being added. Once added, Red-Piranha will check on a regular basis to see if the information added has changed and re-index if required. Your information is now available to be searched.
To do a search , put the item you want to search for into the textbox and press search. Red-Piranha will show the search results on the screen. Clicking on the link beside the search results will show you the original information (as long as you have access to it).
From version 0.3 onwards , Red-Piranha can learn what search results you are interested in an improve your future searches. To give Red-Piranha feedback and help it learn what you are interested in , click on any of the links on the search results page. Red-Piranha makes a note of your choice , which is used to adjust the search results later.
<<lessBecause it is open source , it can integrate with any system. Because you can use it as a web page , command line or XML- WebService , it will work with most languages , including Java , Perl , C#/.Net and PHP. As a Java based program , it will run on any platform including Windows , Linux / Unix and Mac.
Main features:
- Personal Search Engine for your Desktop (Windows , Linux and Mac).
- Intranet Search Engine - Search your Company or College Intranet.
- Part of your Development Project - Have search abilities up and running in a few minutes.
- To provide Search facilities on your website.
- As a P2P search engine.
- In conjunction with a wiki, as a knowledge / document management solution.
- Scan a set of websites for the data you want (e.g. Search Job sites on a hourly basis).
- Explore the Semantic web using RDF.
- Search RSS feeds for the information you want.
- Search your Companies systems (including SAP , Oracle or any other Database / Data source).
- Provide a back end for searching in your App (Web , Swing , SWT , Flash, Mozilla-XUL, PHP , Perl or even c#/.Net) .
- Document Management for PDF, Word and other Docs.
- As a Webservice to provide search information
- As a command line tool , to give searching power to your scripts.
- Provide a Search facility for your project documentation.
Using
To use Red-Piranha - open your favourite web browser and point it at http://localhost:8080/RP . Within a few seconds , you should see the Red-Piranha start screen. This will have three items of interest
- A Text box , where we enter the information to add or search
- An add information button - to tell Red-Piranha about new information
- A Search button - to carry out a search.
Before we can search , we must tell Red-Piranha we information we are interested in. This is as easy as putting the piece of information we want to add (e.g. the folder c:temp) in the search box and pressing the Add information button. A message will be displayed saying that your information is being added and will be available to search shortly. For more information , look in the logs at TOMCAT_HOMEWebappsRPlogsrp.log
Examples of things we can add to Red-Piranha are
- A folder (e.g. C:Temp). All files in both this folder and *all* its subfolders will be added.
- An individual file. This file can be text , a web page , a word document , or pdf document. For binary files (like word , which are not plain text) , Red-Piranha will scan the file for recognizable text and add that.
- A Web page. Red-Piranha will add this web page , *and* web pages it links to.
- A Google Search (e.g. http://www.google.com/search?q=some+thing?m=100). Red-Piranha will get the results of the google search , and add information on the pages it links to.
- An XML file (including RSS feeds) , either on disk or over the web.
- Favourites / Bookmarks folders - Red-Piranha will index the web pages that these favourites point to.
Adding information can take anything from a few milliseconds , depending on the amount of information being added. Once added, Red-Piranha will check on a regular basis to see if the information added has changed and re-index if required. Your information is now available to be searched.
To do a search , put the item you want to search for into the textbox and press search. Red-Piranha will show the search results on the screen. Clicking on the link beside the search results will show you the original information (as long as you have access to it).
From version 0.3 onwards , Red-Piranha can learn what search results you are interested in an improve your future searches. To give Red-Piranha feedback and help it learn what you are interested in , click on any of the links on the search results page. Red-Piranha makes a note of your choice , which is used to adjust the search results later.
Download (22.4MB)
Added: 2005-04-25 License: GPL (GNU General Public License) Price:
1642 downloads
AdaControl 1.6r8
AdaControl is a free tool that detects the use of various kinds of constructs in Ada programs. more>>
AdaControl is a free (GMGPL) tool that detects the use of various kinds of constructs in Ada programs. AdaControls first goal is to control proper usage of style or programming rules, but it can also be used as a powerful tool to search for use (or non-use) of various forms of programming styles or design patterns. Searched elements range from very simple, like the occurrence of certaine entities, declarations, or statements, to very sophisticated, like verifying that certain programming patterns are being obeyed..
Which elements or constructs are searched is defined by a set of rules; the following table gives a short summary of rules currently checked by AdaControl. The number in parentheses after the rule name gives the number of subrules, if any. Considering all possible rules and subrules, this makes 216 tests that can be performed currently by AdaControl!
- Abnormal_Function_Return Controls a design pattern that ensures that a function always returns a result .
- Allocators Controls ocurrences of allocators, either all of them, or those targeting specified types.
- Array_Declarations (x2) Controls several metrics in array declarations.
- Barrier_Expressions Controls elements allowed in the expression of protected entries barriers
- Case_Statement (x4) Controls several metrics in case statements.
- Control_Characters Controls occurrences of control characters (like tabs) in the source.
- Declarations (x75) Controls occurrences of certain Ada declarations.
- Default_Parameter Controls subprogram calls and generic instantiations that use (or not) the default value for a given parameter.
- Directly_Accessed_Globals Controls a design pattern that ensures that all global variables are accessed only through dedicated subprograms.
- Entities Controls occurrences of any Ada entity.
- Entity_Inside_Exception Controls occurrences of entities inside exception handlers.
- Exception_Propagation (x4) Controls that certain subprograms (or tasks) cannot propagate exceptions, or that no elaboration can propagate exceptions.
- Expressions (x9) Controls usage of certain forms of expressions
- Global_References Controls unsynchronized accesses to global variables.
- Header_Comments (x2) Controls the presence of comments at the start of each module.
- If_For_Case Controls if statements that could be replaced by case statements.
- Instantiations Controls generic instantiations, either all of them, or those that use specified entities.
- Insufficient_Parameters Controls the use of positional parameters in calls where the value does not provide sufficient information.
- Local_Hiding Controls occurrences of local identifiers that hide an identical outer one.
- Local_Instantiation Controls instantiations in local scopes.
- Max_Blank_Lines Controls the occurrence of more than a specified number of consecutive empty lines.
- Max_Call_Depth Controls the maximum depth of subprogram calls.
- Max_Line_Length Controls maximal length of source lines.
- Max_Nesting Controls scopes nested more deeply than a given limit.
- Max_Parameters (x6) Controls the maximum numbers of parameters in callable entities (procedures, functions and entries)
- Max_Statement_Nesting (x5) Controls composite statements nested more deeply than a given limit.
- Movable_Accept_Statements Controls statements that could be moved outside an accept statement.
- Naming_Convention Controls the form of allowed (or forbidden) names in declarations.
- No_Safe_Initialization Controls a design pattern that ensures that any variable is initialized before being used.
- Non_Static (x3) Controls non static expressions in index or discriminant constraints, or in instantiations.
- Not_Elaboration_Calls Controls subprogram calls performed from places outside package elaboration code.
- Other_Dependencies Controls semantic dependencies to other units than those indicated
- Parameter_Aliasing Controls subprograms and entry calls where a variable is provided to more than one [in] out parameter.
- Potentially_Blocking_Operations Controls the use of potentially blocking operations from within protected operations.
- Pragmas Controls the use of specific pragmas.
- Real_Operators Controls occurrences of = or /= operators on real types.
- Reduceable_Scope Controls declarations that could be move to more deeply nested scopes.
- Representation_Clauses Controls occurrences of representation clauses.
- Return_Type Controls the use of certain kinds of types as return types of functions.
- Side_Effect_Parameters Controls subprogram calls and generic instantiations that call functions with side effect, thus creating a dependance to the order of evaluation.
- Silent_Exceptions Controls exception handlers that do not reraise exceptions nor call indicated subprograms.
- Simplifiable_Expressions (x4) Controls occurrences of various forms of expressions that could be simplified.
- Special_Comments Controls the presence of certain string patterns in comments.
- Statements (x42) Controls occurrences of Ada statements.
- Style (x12) Controls various forms of constructs generally recommended in style rules.
- Terminating_Tasks Controls a design pattern that ensures that tasks never terminate.
- Uncheckable (x3) Controls constructs that are not statically checkable by other rules
- Unnecessary_Use_Clause Controls use clauses on packages, where no element of the package is referred to within the scope of the use clause.
- Unsafe_Paired_Calls Controls a design pattern that ensures that certain calls are allways paired (like P/V procedures).
- Unsafe_Unchecked_Conversion Controls instantiations of Unchecked_Conversion between types of different or unspecified sizes.
- Usage (x5) Controls usage of objects under certain conditions (in package specifications, read, written modified...).
- Use_Clauses Controls occurrences of use clauses, except for indicated packages.
- With_Clauses (x3) Controls proper usage of with clauses.
Enhancements:
- This release adds rules to check that header comments match a given pattern.
- It has indication of possible false positives and false negatives due to non-statically analyzable constructs.
- There is a fine definition of constructs allowed in entry barriers (including the one of the Ravenscar profile).
- There is better integration into GPS, and much more.
<<lessWhich elements or constructs are searched is defined by a set of rules; the following table gives a short summary of rules currently checked by AdaControl. The number in parentheses after the rule name gives the number of subrules, if any. Considering all possible rules and subrules, this makes 216 tests that can be performed currently by AdaControl!
- Abnormal_Function_Return Controls a design pattern that ensures that a function always returns a result .
- Allocators Controls ocurrences of allocators, either all of them, or those targeting specified types.
- Array_Declarations (x2) Controls several metrics in array declarations.
- Barrier_Expressions Controls elements allowed in the expression of protected entries barriers
- Case_Statement (x4) Controls several metrics in case statements.
- Control_Characters Controls occurrences of control characters (like tabs) in the source.
- Declarations (x75) Controls occurrences of certain Ada declarations.
- Default_Parameter Controls subprogram calls and generic instantiations that use (or not) the default value for a given parameter.
- Directly_Accessed_Globals Controls a design pattern that ensures that all global variables are accessed only through dedicated subprograms.
- Entities Controls occurrences of any Ada entity.
- Entity_Inside_Exception Controls occurrences of entities inside exception handlers.
- Exception_Propagation (x4) Controls that certain subprograms (or tasks) cannot propagate exceptions, or that no elaboration can propagate exceptions.
- Expressions (x9) Controls usage of certain forms of expressions
- Global_References Controls unsynchronized accesses to global variables.
- Header_Comments (x2) Controls the presence of comments at the start of each module.
- If_For_Case Controls if statements that could be replaced by case statements.
- Instantiations Controls generic instantiations, either all of them, or those that use specified entities.
- Insufficient_Parameters Controls the use of positional parameters in calls where the value does not provide sufficient information.
- Local_Hiding Controls occurrences of local identifiers that hide an identical outer one.
- Local_Instantiation Controls instantiations in local scopes.
- Max_Blank_Lines Controls the occurrence of more than a specified number of consecutive empty lines.
- Max_Call_Depth Controls the maximum depth of subprogram calls.
- Max_Line_Length Controls maximal length of source lines.
- Max_Nesting Controls scopes nested more deeply than a given limit.
- Max_Parameters (x6) Controls the maximum numbers of parameters in callable entities (procedures, functions and entries)
- Max_Statement_Nesting (x5) Controls composite statements nested more deeply than a given limit.
- Movable_Accept_Statements Controls statements that could be moved outside an accept statement.
- Naming_Convention Controls the form of allowed (or forbidden) names in declarations.
- No_Safe_Initialization Controls a design pattern that ensures that any variable is initialized before being used.
- Non_Static (x3) Controls non static expressions in index or discriminant constraints, or in instantiations.
- Not_Elaboration_Calls Controls subprogram calls performed from places outside package elaboration code.
- Other_Dependencies Controls semantic dependencies to other units than those indicated
- Parameter_Aliasing Controls subprograms and entry calls where a variable is provided to more than one [in] out parameter.
- Potentially_Blocking_Operations Controls the use of potentially blocking operations from within protected operations.
- Pragmas Controls the use of specific pragmas.
- Real_Operators Controls occurrences of = or /= operators on real types.
- Reduceable_Scope Controls declarations that could be move to more deeply nested scopes.
- Representation_Clauses Controls occurrences of representation clauses.
- Return_Type Controls the use of certain kinds of types as return types of functions.
- Side_Effect_Parameters Controls subprogram calls and generic instantiations that call functions with side effect, thus creating a dependance to the order of evaluation.
- Silent_Exceptions Controls exception handlers that do not reraise exceptions nor call indicated subprograms.
- Simplifiable_Expressions (x4) Controls occurrences of various forms of expressions that could be simplified.
- Special_Comments Controls the presence of certain string patterns in comments.
- Statements (x42) Controls occurrences of Ada statements.
- Style (x12) Controls various forms of constructs generally recommended in style rules.
- Terminating_Tasks Controls a design pattern that ensures that tasks never terminate.
- Uncheckable (x3) Controls constructs that are not statically checkable by other rules
- Unnecessary_Use_Clause Controls use clauses on packages, where no element of the package is referred to within the scope of the use clause.
- Unsafe_Paired_Calls Controls a design pattern that ensures that certain calls are allways paired (like P/V procedures).
- Unsafe_Unchecked_Conversion Controls instantiations of Unchecked_Conversion between types of different or unspecified sizes.
- Usage (x5) Controls usage of objects under certain conditions (in package specifications, read, written modified...).
- Use_Clauses Controls occurrences of use clauses, except for indicated packages.
- With_Clauses (x3) Controls proper usage of with clauses.
Enhancements:
- This release adds rules to check that header comments match a given pattern.
- It has indication of possible false positives and false negatives due to non-statically analyzable constructs.
- There is a fine definition of constructs allowed in entry barriers (including the one of the Ravenscar profile).
- There is better integration into GPS, and much more.
Download (1.0MB)
Added: 2006-12-08 License: GMGPL (GNAT Modified GPL) Price:
1050 downloads
WebService::GoogleHack 0.15
WebService::GoogleHack is a Perl package that ties together all GoogleHack modules. more>>
WebService::GoogleHack is a Perl package that ties together all GoogleHack modules (Webservice::GoogleHack::Search, Webservice::GoogleHack::Spelling, Webservice::GoogleHack::Rate, and Webservice::GoogleHack::Text) to implement Natural Language Processing techniques that use the World Wide Web as a source of information. Use this package to access all the functionality of GoogleHack.
SYNOPSIS
use WebService::GoogleHack;
my $google = new WebService::GoogleHack;
#Initializing the object to the contents of the configuration file
# API Key, GoogleSearch.wsdl file location.
$google->initConfig("initconfig.txt");
#Printing the contents of the configuration file
$google->printConfig();
#Measure the semantic relatedness between the words "white house" and
#"president".
$measure=$google->measureSemanticRelatedness1("white house","president");
print "nRelatedness measure between white house and president is: ";
print $measure."n";
#Going to search for words that are related to "toyota" and "ford"
my @terms=();
push(@terms,"toyota");
push(@terms,"ford");
#The parameters are the search terms, number of web page results to look
#at, the number of iterations,output file and the "true" indicates that the
#diagnostic data should be stored in the file "results.txt"
$results=$google->Algorithm1(@terms,10,25,1,"results.txt","true");
print $results;
WebService::GoogleHack is a PERL package that interacts with the Google API, and implements basic functions that allow the user to interact with Google and retrieve results in an easy to use format. GoogleHack also implements and extends a number of Natural Language Processing by using the World Wide Web as a source of information.
Main features:
- Issue queries to Google (WebService::GoogleHack, WebService::GoogleHack::Search)
- Retrieve Spelling suggestions from Google (WebService::GoogleHack, WebService::GoogleHack::Spelling)
- Find the Pointwise Mututal Information (PMI) measure between two words (WebService::GoogleHack,WebService::GoogleHack::Rate)
- Given a paragraph find if the paragraph has a positive or negative semantic orientation.(WebService::GoogleHack,WebService::GoogleHack::Rate)
- Given a set of words along with a positively oriented word such as "excellent" and a negatively oriented word such as "poor", find if the word has a positive or negative semantic orientation.(WebService::GoogleHack,WebService::GoogleHack::Rate)
- Given a set of phrases along with a positively oriented word such as "excellent" and a negatively oriented word such as "poor", predict if the given phrases are positive or negative in sentiment.(WebService::GoogleHack,WebService::GoogleHack::Rate)
- Given two or more words finds a set of related words. (WebService::GoogleHack)
<<lessSYNOPSIS
use WebService::GoogleHack;
my $google = new WebService::GoogleHack;
#Initializing the object to the contents of the configuration file
# API Key, GoogleSearch.wsdl file location.
$google->initConfig("initconfig.txt");
#Printing the contents of the configuration file
$google->printConfig();
#Measure the semantic relatedness between the words "white house" and
#"president".
$measure=$google->measureSemanticRelatedness1("white house","president");
print "nRelatedness measure between white house and president is: ";
print $measure."n";
#Going to search for words that are related to "toyota" and "ford"
my @terms=();
push(@terms,"toyota");
push(@terms,"ford");
#The parameters are the search terms, number of web page results to look
#at, the number of iterations,output file and the "true" indicates that the
#diagnostic data should be stored in the file "results.txt"
$results=$google->Algorithm1(@terms,10,25,1,"results.txt","true");
print $results;
WebService::GoogleHack is a PERL package that interacts with the Google API, and implements basic functions that allow the user to interact with Google and retrieve results in an easy to use format. GoogleHack also implements and extends a number of Natural Language Processing by using the World Wide Web as a source of information.
Main features:
- Issue queries to Google (WebService::GoogleHack, WebService::GoogleHack::Search)
- Retrieve Spelling suggestions from Google (WebService::GoogleHack, WebService::GoogleHack::Spelling)
- Find the Pointwise Mututal Information (PMI) measure between two words (WebService::GoogleHack,WebService::GoogleHack::Rate)
- Given a paragraph find if the paragraph has a positive or negative semantic orientation.(WebService::GoogleHack,WebService::GoogleHack::Rate)
- Given a set of words along with a positively oriented word such as "excellent" and a negatively oriented word such as "poor", find if the word has a positive or negative semantic orientation.(WebService::GoogleHack,WebService::GoogleHack::Rate)
- Given a set of phrases along with a positively oriented word such as "excellent" and a negatively oriented word such as "poor", predict if the given phrases are positive or negative in sentiment.(WebService::GoogleHack,WebService::GoogleHack::Rate)
- Given two or more words finds a set of related words. (WebService::GoogleHack)
Download (0.088MB)
Added: 2006-11-28 License: Perl Artistic License Price:
1060 downloads
BuddySpace PRO 2.6
BuddySpace is an enhanced Jabber client providing secure presence management, web services and instant messaging. more>>
BuddySpace is an instant messenger with four novel twists: (1) it allows optional maps for geographical & office-plan visualizations in addition to standard buddy lists; (2) it is built on open source Jabber, which makes it interoperable with ICQ, MSN, Yahoo and others; (3) it is implemented in Java, so it is cross-platform; (4) it is built by a UK research lab, so it is 100% free with full sources readiily available. But BuddySpace is about more than just messaging, as we explain below.
One of the key factors that led to the widespread popularity of Instant Messaging applications from 1997 onwards (including ICQ, AOL, Yahoo!, MSN, Odigo, and Jabber messengers) was the concept of pushed presence: the automatic notification of the appearance of friends and colleagues online.
However, Instant Messaging (IM) is just one of many possible presence-related and presence-dependent applications. For example, presence-enabled applications can facilitate safety-tracking of children by mobile phone, support for emergency services, blind-date radar, group teleconference management, multiplayer games, and anything involving the collaboration of individuals separated in space and time.
Why phone a contact only to receive an engaged tone or pre-recorded message, when the telephone network already knows what state your contact is in, and could indicate this directly on your contact list? All of these concepts embody varying degrees of what we refer to as enhanced presence management.
The concept of presence has matured in recent years to move away from the simple notion of online/offline/away, towards a rich blend of attributes that can be used to characterise an individuals physical and/or spatial location, work trajectory, time frame of reference, mental mood, goals, and even intentions! Our challenge is how best to characterise presence, how to make it easy to manage and easy to visualise, and how to remain consistent with the users own expectations, work habits, and existing patterns of Instant Messaging and other communication tool usage.
BuddySpace generalizes the concept of Buddy List (popularised by Instant Messaging tools such as AOL Instant Messenger, ICQ, MSN Messenger, and Yahoo Messenger) to provide multiple views of collaborative workgroups according to users needs and tastes. Our aim has been to provide a personal dashboard or radar screen so that one can observe the availability and interaction state of colleagues worldwide in a manner that exhibits the following desirable properties:
* immediate: real-time updates need to be pushed instantly to users rather than pulled in by request -- the push approach helps keep updates more palpable and informative
* peripheral and therefore non-intrusive: users lead busy lives, and dislike being bombarded with yet more information, so we aim to keep awareness of colleagues available in a compact manner that can be noticed peripherally
* customisable: some people prefer simple or hierarchical lists, some prefer visual maps, some prefer status lights, and so on; some prefer a Windows look-and-feel, some a Mac-- we need to cater for diverse user preferences and capabilities
* scaleable: we have to provide ways to indicate the presence of potentially enormous numbers of people, even given that these numbers will be filtered down for personal use -- researchers inhabit workspaces with many hundreds of colleagues around the globe; the Open University has well over 150,000 students online; large peer-spaces like music swapping communities have many millions of users connected simultaneously
* interoperable: with several hundred million users of the Big Four (AIM/ICQ/MSN/Yahoo!), it is crucial that any approach allow interopebility with systems to which our users already subscribe; this is one of the many reasons we built BuddySpace entirely on top of Jabber (www.jabber.org), which provides gateways to the Big Four products.
* cross-platform: we need to service a community not only on Windows, Unix/Linux, and Mac desktop and notebook configurations, but also on PDAs and mobile phones -- we therefore develop entirely in Java
* XML-literate: for future intelligent applications, communication transport needs to be about more than just string-transmission; another we adopted Jabber is that it is based entirely on a generic XML transport architecture, ideally suited for this purpose.
* open source: for the research community to join us and to gain leverage via our research output, we have ensured that BuddySpace is open source, available on SourceForge.
* clean: BuddySpace adheres rigorously to the Jabber specification, which means that it interoperates with other Jabber clients and servers without danger of the rogue behaviour that non-standard implementations inadvertently allow (e.g. the semantics of users inhabiting multiple groups is undefined in some clients, and can cause crashes).
* extendable: BuddySpace deploys a plug-in architecture which means that additions, such as new visualizations, and new concepts such as gaming interfaces, are readily achievable
BuddySpace fulfills all the above criteria, and provides a compelling user interface that can be highly compact, yet provide users with an important feel-good factor, akin to seeing nearby office lights turned on when entering ones office building at night. By studying the semantics of presence, we can also augment the existing impoverished presence states in a principles manner, providing capabilities that are more representative of the way real users work. Forthcoming capabilities will include automatic location updates via mobile devices, and the use of semantic matchmaking via intelligent profile handling, in order to help users quickly find and filter colleagues of particular interest.
<<lessOne of the key factors that led to the widespread popularity of Instant Messaging applications from 1997 onwards (including ICQ, AOL, Yahoo!, MSN, Odigo, and Jabber messengers) was the concept of pushed presence: the automatic notification of the appearance of friends and colleagues online.
However, Instant Messaging (IM) is just one of many possible presence-related and presence-dependent applications. For example, presence-enabled applications can facilitate safety-tracking of children by mobile phone, support for emergency services, blind-date radar, group teleconference management, multiplayer games, and anything involving the collaboration of individuals separated in space and time.
Why phone a contact only to receive an engaged tone or pre-recorded message, when the telephone network already knows what state your contact is in, and could indicate this directly on your contact list? All of these concepts embody varying degrees of what we refer to as enhanced presence management.
The concept of presence has matured in recent years to move away from the simple notion of online/offline/away, towards a rich blend of attributes that can be used to characterise an individuals physical and/or spatial location, work trajectory, time frame of reference, mental mood, goals, and even intentions! Our challenge is how best to characterise presence, how to make it easy to manage and easy to visualise, and how to remain consistent with the users own expectations, work habits, and existing patterns of Instant Messaging and other communication tool usage.
BuddySpace generalizes the concept of Buddy List (popularised by Instant Messaging tools such as AOL Instant Messenger, ICQ, MSN Messenger, and Yahoo Messenger) to provide multiple views of collaborative workgroups according to users needs and tastes. Our aim has been to provide a personal dashboard or radar screen so that one can observe the availability and interaction state of colleagues worldwide in a manner that exhibits the following desirable properties:
* immediate: real-time updates need to be pushed instantly to users rather than pulled in by request -- the push approach helps keep updates more palpable and informative
* peripheral and therefore non-intrusive: users lead busy lives, and dislike being bombarded with yet more information, so we aim to keep awareness of colleagues available in a compact manner that can be noticed peripherally
* customisable: some people prefer simple or hierarchical lists, some prefer visual maps, some prefer status lights, and so on; some prefer a Windows look-and-feel, some a Mac-- we need to cater for diverse user preferences and capabilities
* scaleable: we have to provide ways to indicate the presence of potentially enormous numbers of people, even given that these numbers will be filtered down for personal use -- researchers inhabit workspaces with many hundreds of colleagues around the globe; the Open University has well over 150,000 students online; large peer-spaces like music swapping communities have many millions of users connected simultaneously
* interoperable: with several hundred million users of the Big Four (AIM/ICQ/MSN/Yahoo!), it is crucial that any approach allow interopebility with systems to which our users already subscribe; this is one of the many reasons we built BuddySpace entirely on top of Jabber (www.jabber.org), which provides gateways to the Big Four products.
* cross-platform: we need to service a community not only on Windows, Unix/Linux, and Mac desktop and notebook configurations, but also on PDAs and mobile phones -- we therefore develop entirely in Java
* XML-literate: for future intelligent applications, communication transport needs to be about more than just string-transmission; another we adopted Jabber is that it is based entirely on a generic XML transport architecture, ideally suited for this purpose.
* open source: for the research community to join us and to gain leverage via our research output, we have ensured that BuddySpace is open source, available on SourceForge.
* clean: BuddySpace adheres rigorously to the Jabber specification, which means that it interoperates with other Jabber clients and servers without danger of the rogue behaviour that non-standard implementations inadvertently allow (e.g. the semantics of users inhabiting multiple groups is undefined in some clients, and can cause crashes).
* extendable: BuddySpace deploys a plug-in architecture which means that additions, such as new visualizations, and new concepts such as gaming interfaces, are readily achievable
BuddySpace fulfills all the above criteria, and provides a compelling user interface that can be highly compact, yet provide users with an important feel-good factor, akin to seeing nearby office lights turned on when entering ones office building at night. By studying the semantics of presence, we can also augment the existing impoverished presence states in a principles manner, providing capabilities that are more representative of the way real users work. Forthcoming capabilities will include automatic location updates via mobile devices, and the use of semantic matchmaking via intelligent profile handling, in order to help users quickly find and filter colleagues of particular interest.
Download (1.5MB)
Added: 2006-10-18 License: The Apache License 2.0 Price:
1405 downloads
Kelbt 0.12
Kelbt generates backtracking LALR parsers. more>>
Kelbt project can generate backtracking LALR parsers. Standard LALR parser generators emit an error upon encountering a conflict in the parse tables. Kelbt forges onward, generating parsers which handle conflicts by backtracking at runtime. Kelbt is able to generate a parser for any context-free grammar and therefore implements a generalized parsing method.
Kelbt is different from other backtracking LR systems in two ways. First, it elevates backtracking to the level of semantic actions by introducing a class of actions called undo actions. Undo actions are invoked as the backtracker undoes parsing and allow the user to revert any side effects of forward semantic actions. This makes it possible to backtrack over language constructs which must modify global state in preparation for handling context dependencies.
Second, Kelbt enables a user-controlled parsing strategy which approximates that of generalized recursive-descent parsing. This makes it easy for the user to resolve language ambiguities by ordering the grammar productions of a nonterminal according to their precedence. It is approximate in the sense that for most grammars the equivalent of an ordered choice parsing strategy is achieved. In cases where productions are parsed out of the order given, there is a simple grammar transformation which remedies the problem. See the CASCON paper for more details.
As a proof of concept, Kelbt has been used to write a partial C++ parser (included) which is composed of strictly a scanner, a name lookup stage and a grammar with standard semantic actions and semantic undo actions.
Enhancements:
- The -l option was added for turning off line directives in generated code.
- The class keyword was added.
- This indicates that a nonterminal or the token type is a C++ class, and should have its constructors and destructors called.
- The shortest statement was added.
- This allows one to force a shortest match of a list of items.
- The semantics of commit was changed.
- It now forces a full commit rather than a scoped commit.
- Many other improvements were made.
<<lessKelbt is different from other backtracking LR systems in two ways. First, it elevates backtracking to the level of semantic actions by introducing a class of actions called undo actions. Undo actions are invoked as the backtracker undoes parsing and allow the user to revert any side effects of forward semantic actions. This makes it possible to backtrack over language constructs which must modify global state in preparation for handling context dependencies.
Second, Kelbt enables a user-controlled parsing strategy which approximates that of generalized recursive-descent parsing. This makes it easy for the user to resolve language ambiguities by ordering the grammar productions of a nonterminal according to their precedence. It is approximate in the sense that for most grammars the equivalent of an ordered choice parsing strategy is achieved. In cases where productions are parsed out of the order given, there is a simple grammar transformation which remedies the problem. See the CASCON paper for more details.
As a proof of concept, Kelbt has been used to write a partial C++ parser (included) which is composed of strictly a scanner, a name lookup stage and a grammar with standard semantic actions and semantic undo actions.
Enhancements:
- The -l option was added for turning off line directives in generated code.
- The class keyword was added.
- This indicates that a nonterminal or the token type is a C++ class, and should have its constructors and destructors called.
- The shortest statement was added.
- This allows one to force a shortest match of a list of items.
- The semantics of commit was changed.
- It now forces a full commit rather than a scoped commit.
- Many other improvements were made.
Download (0.21MB)
Added: 2007-05-02 License: GPL (GNU General Public License) Price:
905 downloads
Jlint for Unix 1.23
Jlint will check your Java code and find bugs, inconsistencies and synchronization problems by doing data flow analysis and building lock graph more>> Jlint will check your Java code and find bugs, inconsistencies and synchronization problems by doing data flow analysis and building lock graph.
Jlint consists of two separate programs performing syntax and semantic verification. As far as Java mostly inherits C/C++ syntax and so inherits most of the problems caused by C syntax, the idea was to create common syntax verifier for all C-family languages: C, C++, Objective C and Java. This program was named AntiC, because it fixes problems with C grammar, which can cause dangerous programmers bugs, undetected by compiler. By using hand-written scanner and simple top-down parser, AntiC is able to detect such bugs as suspicious use of operators priorities, absence of break in switch code, wrong assumption about constructions bodies...
Semantic verifier Jlint extracts information from Java class files. As far as Java class file has very well specified and simple format, it greatly simplifies Jlint in comparison with source level verifiers, because development of Java grammar parser is not a simple task (even through Java grammar is simpler and less ambiguous than C++ grammar). Also dealing only with class files, protect Jlint from further Java extensions (format of virtual byte instructions is more conservative). By using debugging information Jlint can associate reported messages with Java sources.
Jlint performs local and global data flow analyses, calculating possible values of local variables and catching redundant and suspicious calculations. By performing global method invocation analysis, Jlint is able to detect invocation of method with possible "null" value of formal parameter and using of this parameter in method without check for "null". Jlint also builds lock dependency graph for classes dependencies and uses this graph to detect situations, which can cause deadlock during multithreaded program execution.<<less
Download (70KB)
Added: 2009-04-29 License: Freeware Price: Free
181 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above semantic search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed