Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4764726
Votes 0
Synopsis stddoclet: Add member names as meta keyword tags to improve API search
Category doclet:tbd
Reported Against 1.4
Release Fixed 1.4.2(mantis)
State 10-Fix Delivered, request for enhancement
Priority: 4-Low
Related Bugs
Submit Date 17-OCT-2002
Description
Keywords in a class file now appear as follows if -keywords is passed in.
If -keywords is not passed in, only the first (class) tag appears.

<META NAME="keywords" CONTENT="p1.C1 class">
<META NAME="keywords" CONTENT="field1">
<META NAME="keywords" CONTENT="field2">
<META NAME="keywords" CONTENT="method1()">
<META NAME="keywords" CONTENT="method2()">

Regression test is at <ws>/test/com/sun/javadoc/MetaTag/MetaTag.java

 xxxxx@xxxxx  2002-11-10Add name/content keywords.  We already use:

  In HTML file:
  <META NAME="keywords" CONTENT="java.lang.String,String class">

  The advantage of using "NAME=keywords" is that we can weight all keywords 
  meta tags higher (than body text) for Inktomi searches.
  This page can also be found using Inktomi search query string:
  +keywords:java.lang.String

But we need to do the same thing for methods.  We could use "method" as
the name:
  <META NAME="method" CONTENT="compareTo(Object)">

  This can be found using Inktomi query:
  +method:compareTo

or:
  <META NAME="keywords" CONTENT="compareTo() method,Double.compareTo(Object)">

  which can be found using this Inktomi query:
  +keywords:compareTo
Work Around
N/A
Evaluation
We need some way to find member definitions to improve search
 xxxxx@xxxxx  2002-10-17

Discussed with SwoRDFish team, and concluded:
- There is no current Dublin Core meta tag standard for programming languages
- They recommend we include both Dublin Core "dc:subject" data element per file
  in addition to an equivalent normal 'keywords' meta tags, as shown below.
  There can be at most one dc:subject tag per file.

  <meta name='dc:subject'  content='String Class, java.lang.String'>
  <meta name='keywords'    content='String Class, java.lang.String'>
  <meta name='keywords'    content='compareTo(Object) method'>
  <meta name='keywords'    content='compareTo(String) method'>
  <meta name='keywords'    content='compareToIgnoreCase(String) method'>
  ... 


 xxxxx@xxxxx  2002-10-28

Based on a discussion with Inktomi on the following meta tags:

  <META name="keywords" content="Double class">
  <META name="keywords" content="compareTo(Object) method">

With the meta data defined as above, All of the following searches would 
find this page :

double
class
compareto
object
method
compareTo(Object)

Including parameter types will strengthen the search for methods
when the parameter type is included, but will dilute the search
for classes.  Thus, someone searching for the Object class page 
will find the above page. 

This leads me to consider dropping the parameter types.
We should include at least the leading paren, so they can 
distinguish constructors from classes or methods from fields 
or classes by searching for "compareTo(".

Need to find out if search term 
"compareTo(Object)" would match on keyword "compareTo(".

We could add both parens such as compareTo(), which might be
more natural to type. but showing no args for a method that contains 
args is a bit peculiar.  

NOTE: A search for the parameter types and names, but not types alone,
will match in the full-text search.

So now we have:
  
  <meta name="dc:subject"  content="String Class, java.lang.String">
  <meta name="keywords"    content="String Class, java.lang.String">
  <meta name="keywords"    content="compareTo() method">
  <meta name="keywords"    content="compareToIgnoreCase() method">

Where it's not clear whether to include the trailing paren ')'.

 xxxxx@xxxxx  2002-10-30

Consider including both name='keywords' and name='method', so user
can search for keywords either by default, or more specifically by
uinsg "+method:compareTo" (in Inktomi).  Perhaps we can create
our own java namespace:

  <meta name="keywords"    content="compareTo() method">
  <meta name="java:method" content="compareTo()">

I believe Inktomi would require search term: +java:method:compareTo()

 xxxxx@xxxxx  2002-10-31

CCC Proprosal:

Add members to the name/contents meta keywords.  For example,
for the compareTo(Object) method in the Double class, we will add:
 
<META name="keywords" content="compareTo() method"> 

Using name="keywords" is a search engine standard (used by Inktomi 
and others).  This standard gives greater weight to the value of
the content attribute than to body text.

Notice the given example does not include the parameter type Object.
This is because including it would add Object as a keyword for not
only this method, but also the Double class (which is defined in 
the same HTML file), diluting the ability to find the Object class.

This extends to members the <META> tagging of classes started in 1.4.1.


CCC Decision: 
"Approve, on the condition that the proposed behavior be      
enabled by an undocumented -meta (or whatever) flag.  Not    
all javadoc output is intended as fodder for search engines, 
and META tags for every member will take up quite a bit of space."

My interpretation is that the insertion of meta keywords will be 
turned OFF by default, and a new -meta (or whatever) flag will turn 
it on. 

 xxxxx@xxxxx  2002-11-08

Another reason not to include overloads (such as add(), add(Object))
or parameter types is because search engines will penalize pages with 
repeated keywords.

 xxxxx@xxxxx  2002-11-09

This is an extension of the feature added in 1.4.1:
4034096: Add support for HTML keywords via META tag for class names 

 xxxxx@xxxxx  2002-11-22
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang