[Javamatch-cvs] javamatch/docs/website javamatch.xml,1.8,1.9
Status: Pre-Alpha
Brought to you by:
iterson
From: Walter v. I. <it...@us...> - 2004-09-13 12:37:53
|
Update of /cvsroot/javamatch/javamatch/docs/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10733 Modified Files: javamatch.xml Log Message: Added comparison with SODAQuery Index: javamatch.xml =================================================================== RCS file: /cvsroot/javamatch/javamatch/docs/website/javamatch.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** javamatch.xml 13 Sep 2004 11:32:58 -0000 1.8 --- javamatch.xml 13 Sep 2004 12:37:41 -0000 1.9 *************** *** 261,277 **** <h3>I only want exact matches. How can I get them?</h3> <p> ! Exact matches can be specified using an AndList-query. However, if ! you only want exact results from your database, plain SQL might be a ! better alternative, as it is executed inside the database. That ! causes less overhead. </p> <h2>Usage</h2> - <h3>I get very little results. What's wrong?</h3> - <p> - Are you using an AndList instead of an OrList? The AndList means that - all sub-queries must match the specified criteria more than 80% (by default). - The OrList returns a higher value when at least one of the subqueries - matches. - </p> </page> <page title="Documentation" filebase="docs"> --- 261,270 ---- <h3>I only want exact matches. How can I get them?</h3> <p> ! Exact matches can be specified using the QuerySet.addRequiredQuery(). ! However, if you only want exact results from your database, plain SQL ! might be a better alternative, as it is executed inside the database. ! That causes less (processing and communication) overhead. </p> <h2>Usage</h2> </page> <page title="Documentation" filebase="docs"> *************** *** 293,300 **** </p> <p> ! Queries may be combined by using MatchList-queries (such as the OrList and the ! AndList). The OrList takes the (weighted) average of all subqueries, and returns ! that value. That way, the object that best matches all subqueries returns the ! highest match value. </p> <h3>Two-pass queries</h3> --- 286,292 ---- </p> <p> ! Queries may be combined by using QuerySet-queries. A QuerySet has a list of required ! and a list of preferred subqueries. When all required subqueries match completely, ! the object that best matches most preferred subqueries returns the highest match value. </p> <h3>Two-pass queries</h3> *************** *** 315,319 **** <h3>Persistent storage</h3> <ul> ! <li><a href="http://www.prevayler.org">Prevayler</a> (Persistence without database)</li> <li><a href="http://www.jdocentral.com">Java Data Objects</a> (standard for object-relational mapping)</li> <li><a href="http://www.hibernate.org/">Hibernate</a> (Object-relational mapping tool)</li> --- 307,311 ---- <h3>Persistent storage</h3> <ul> ! <li><a href="http://www.prevayler.org">Prevayler</a> (Persistence without database). See <a href="integration.html#prevayler">Integration with Prevayler</a> for an example</li> <li><a href="http://www.jdocentral.com">Java Data Objects</a> (standard for object-relational mapping)</li> <li><a href="http://www.hibernate.org/">Hibernate</a> (Object-relational mapping tool)</li> *************** *** 321,325 **** <h3>Object-oriented data access</h3> <ul> ! <li><a href="http://sodaquery.sourceforge.net">SODAQuery</a> (Searching data in object databases)</li> </ul> <h3>Object data retrieval</h3> --- 313,317 ---- <h3>Object-oriented data access</h3> <ul> ! <li><a href="http://sodaquery.sourceforge.net">SODAQuery</a> (Searching data in object databases). See the <a href="#sodaquery">comparison</a> below</li> </ul> <h3>Object data retrieval</h3> *************** *** 331,334 **** --- 323,399 ---- <li><a href="http://www.searchtools.com/info/database-search.html">Database searching</a></li> </ul> + <h2>Other technologies in depth</h2> + <a name="sodaquery"/> + <h3>SodaQuery</h3> + <p> + SODAQuery project summary:<br/> + <i>S.O.D.A. is a an object API to communicate with databases. The current + specification is focussed on queries. Goals are: type safety, object reuse, + minimum string use, programming language independance.</i> + </p> + <p> + The main differences and similarities between JavaMatch and + <a href="http://sodaquery.sourceforge.net">SODAQuery</a> are: + </p> + <p> + <b>Returned results</b><br/> + - SODA returns all objects that match the specified constraints.<br/> + - JavaMatch provides a QuerySet, that includes both a required and a preferred part. + The required part is similar to SODAQuery. Within the objects that match all + required subqueries, the engine looks for the objects that best match the + preferred subqueries. It returns the top 10 of the best matching objects, with + the best matching object first + </p> + <p> + <b>Comparison operators</b><br/> + - SODA"s Constraint interface has a fixed set of evaluation modes. + These can be mapped to / executed by the underlying database system.<br/> + - JavaMatch has a hierarchy of queries, that is executed in the Java Virtual Machine + </p> + <p> + <b>Customizable filtering</b><br/> + - SODA provides the Evaluation interface. When a query is executed, the + Evaluation acts as a final filter on the objects that are returned<br/> + - JavaMatch"s queries can be customized by subclassing class MatchQuery + </p> + <p> + <b>Programming language</b><br/> + - SODA is programming langage independant. Java (JDK version 1.0 and later) and C# are supported<br/> + - JavaMatch is Java-only (JDK version 1.4 and later) + </p> + <p> + <b>Limit usage of strings</b><br/> + - Applies to both systems, while providing maximum flexibility with respect to runtime dynamics<br/> + </p> + <p> + <b>Runtime member retrieval</b><br/> + - SODA has a Query interface, that describes how to descend from an object to its + members, and to put restrictions on those members<br/> + - JavaMatch"s Queries that retrieve object members have an argument "memberName" + in their contructor. This is the path that is followed to retrieve a member value + </p> + <p> + <b>Performance</b><br/> + - SODA"s constraints can be mapped to operators in the underlying + database. Therefore, they can be executed by the database itself. + The Evaluation leads to data transfer from the server to the client<br/> + - JavaMatch operates on the full set of objects. All data is sent from + the underlying data storage mechanism to the Java Virtual Machine + </p> + <p> + <b>Collections</b><br/> + - SODA uses an ObjectContainer as a bridge to the data structure<br/> + - JavaMatch operates on standard Java collection classes (java.util.List, java.util.Iterator) + </p> + <p> + <b>Data types</b><br/> + - SODA uses an ObjectSet to return the results<br/> + - JavaMatch returns its results as a java.util.List + </p> + <p> + <b>Memory</b><br/> + - SODA returns the objects one-at-a-time, so the entire database won"t be kept in memory<br/> + - JavaMatch returns a limited amount of results, so only the best matching objects are kept in memory + </p> </page> <page title="Integration" filebase="integration"> *************** *** 444,448 **** <tr> <td>20040913</td> ! <td>Added RegexMatches, BooleanEquals, threshold</td> </tr> <tr> --- 509,514 ---- <tr> <td>20040913</td> ! <td>Replaced MatchList, OrList, AndList with QuerySet. Added RegexMatches, ! BooleanEquals, threshold value. Added comparison with SODAQuery</td> </tr> <tr> |