United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-4764726 stddoclet: Add member names as meta keyword tags to improve API search
JDK-4764726 : stddoclet: Add member names as meta keyword tags to improve API search

Details
Type:
Enhancement
Submit Date:
2002-10-17
Status:
Resolved
Updated Date:
2002-11-20
Project Name:
JDK
Resolved Date:
2002-11-20
Component:
docs
OS:
other
Sub-Component:
doclet
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
1.4.0
Fixed Versions:
1.4.2 (mantis)

Related Reports

Sub Tasks

Description
Add 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


                                    

Comments
EVALUATION

We need some way to find member definitions to improve search
###@###.### 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'>
  ... 


###@###.### 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 ')'.

###@###.### 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()

###@###.### 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. 

###@###.### 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.

###@###.### 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 

###@###.### 2002-11-22
                                     
2002-11-09
PUBLIC COMMENTS

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

###@###.### 2002-11-10
                                     
2002-11-10
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
mantis

FIXED IN:
mantis

INTEGRATED IN:
mantis
mantis-b08


                                     
2004-06-14



Hardware and Software, Engineered to Work Together