Method, system, and program for verifying network addresses included in a file

Provided is a method, system, and program for verifying a network address. A network address included within a file is accessed. At least one context term is provided. Content is accessed at the network address in the file and a determination is made as to whether the accessed content satisfies a qualifying threshold with respect to the at least one context term.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Provided is a method, system, and program for verifying network addresses included in a file.

2. Description of the Related Art

Oftentimes, Internet Web addresses, also known as Universal Resource Locators (URLs), are embedded in hypertext links within an electronic document, such as a Hypertext Markup Language (HTML) page created with a web publishing tool, an e-mail created with an e-mail text editor, and a document created with a word processing document. The person viewing the electronic document may then select the hypertext link to access the page addressed by the URL embedded in the hypertext link. Document authors include hypertext links to provide the reader access to other web pages of interest including related information.

Currently, the accuracy of the URL included in the hypertext link cannot be checked by a spell checker program because the URL itself does not form a recognized English language word, e.g., “www.ibm.com”. Moreover, a document author may believe they have included the correct URL in a hypertext link in the document, when in fact the URL they inserted addresses a web page that is different from the one they intended. For instance, the author may insert the URL “www.whitehouse.com” into a document intending to provide a hypertext link to the official United States government Internet Web page for the White House, when in fact the correct official government Web for the White House is “www.whitehouse.gov”. The author of the web page may be placed in a compromising situation if the hypertext link included in the document incorrectly references an Internet Web page including content entirely unrelated to the intended Web page or including offensive or objectionable material. For instance, the incorrect URL embedded in the hypertext link may reference a web page including objectionable material, such as profane, pornographic, hateful or otherwise inappropriate content. If the Web page is directed to a sensitive target audience, such as children, business associates, potential customers, etc., then such a mistake could be particularly troublesome.

This same problem may occur if the author is preparing an e-mail to send to business associates or other acquaintances and includes a hypertext link to a URL in the e-mail. The e-mail author would face the same embarrassment and problems discussed above by including a wrong hypertext link to a Web page containing material offensive to the e-mail recipients.

For these reasons, there is a need in the art for an improved electronic file editing tool that assists people in including correct network addresses, such as hypertext links, in the electronic file.

SUMMARY OF THE PREFERRED EMBODIMENTS

Provided is a method, system, and program for verifying a network address. A network address included within a file is accessed. At least one context term is provided. Content is accessed at the network address in the file and a determination is made as to whether the accessed content satisfies a qualifying threshold with respect to the at least one context term.

Further, the network address may comprise a Universal Resource Locator (URL). In such case, accessing the content at the network addresses comprises downloading a file addressed by the URL over the Internet.

Moreover, the network address may be embedded in a hypertext link in the file.

Additionally, the network address may be comprised of a string. In such case, if the accessed content does not satisfy the qualifying threshold, then a determination is made of at least one variation of the sting, wherein a determined variation of the string is capable of comprising a network address at which content is located. For each determined string variation, a request is submitted to access content at the network address comprising the string variation. If content is accessed in response to the submitted request, then a determination is made as to whether the accessed content at the network address comprising the string variation satisfies the qualifying threshold with respect to the at least one context term.

Yet further, if the content accessed from the network address comprising the string variation satisfies the qualifying threshold, then the network address comprising the string variation is added to a list of network addresses. User selection of one of the network addresses on the list may be received to substitute for the network address in the file addressing content that did not satisfy the qualifying threshold.

The described implementations provide a technique for checking the network addresses or URLs in a file or page to determine whether the content addressed by the network address satisfies some threshold This threshold may comprise the content at the network address including a sufficient number of keywords that are in the file or document including the network address. Such determinations provide more robust checking of all the content within a file, including any listed network addresses or hypertext links.

The described implementations may also be used with a viewer program to check whether network addresses included in a file being opened by a viewer program includes content that satisfies a certain threshold, indicating whether the hypertext link is correct.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1illustrates a network environment2in which certain aspects of the invention are implemented. The network environment2includes a computer4, e.g., a personal computer, workstation, server, mainframe, telephony device, handheld device, etc., that is in communication with the Internet6. The computer4is capable of accessing web servers8a, b, . . . nwhich provide Internet Web pages in response to Hypertext Transfer Protocol (HTTP) requests, or a request in any other recognized protocol, e.g., File Transfer Protocol (FTP), etc. The computer4includes a computer readable medium10, which may comprise any volatile or non-volatile memory device or storage device known in the art, or some combination thereof. The computer4would load programs into the computer readable medium10to execute. The computer4further includes an attached monitor11capable of rendering graphical user interfaces (GUIs) and other information to display.

The computer4may load and execute a document editor program12, which is capable of generating an electronic document14including text content and one or more hypertext links16a, bthat reference pages, files or content within one of the web servers8a, b, . . . n. For instance, the document editor program12may be part of a Web publishing tool to generate HTML web pages, part of an e-mail program for composing and sending e-mail messages or part of a word processing program (e.g., Corel WordPerfect, Microsoft Word, Lotus Word Pro, etc.)** **WordPerfect is a registered trademark of Corel Corportion; Word pro is a registered trademark of lotus Development Corporation.

The document editor program12may include a spell checker18program that can determine whether text strings in the document14match entries in a dictionary of recognized words in a manner known in the art. The document editor program12further includes a URL checker20that performs hypertext link verification operations in accordance with the described implementations of the invention.

In certain implementations, the URL checker20would be utilized to verify the accuracy of hypertext links16a, bbased on context terms within the document14being edited. If the URL checker20determines that the context terms in a predetermined vicinity of the hypertext link16a, b, e.g., the same sentence, paragraph, page, etc., are not included at a threshold frequency within the web page referenced by the hypertext link16a, b, c, then the URL checker20assumes that the referenced web page is not the page the author intended. In such event, the URL checker20generates a URL variation list22including modified URLs that are variations of the URL in the hypertext link16a, b. For instance, the modified URL in the list may have the same domain name as the URL in the hypertext link, e.g., “whitehouse”, but a different top level domain name, e.g., .com (commercial business), .gov (a government agencies), .edu (educational institution), net (network organizations), .ca (Canada), .th (Thailand), etc. Additionally, the URL may include possible different spellings of the domain name, e.g., whitehouse, and/or URLs including domain names that are morphological variations produced by applying a stemming algorithm known in the art to the domain name. From the URL variation list22, the URL checker program20would analyze the web pages referenced by the URLs in the URL variation list22to determine whether such web pages also satisfy the qualifying threshold. The URL checker20program would then generate a set of possible correct URLs to include in the possible correct URL list24. The URLs in the possible correct URL list24may then be presented to the user to review and select to substitute for the URL in the hypertext link16a, bthe user added into the document.

FIGS. 2,3, and4illustrate logic implemented as code in the URL checker20to verify the accuracy of hypertext links16a, bin the document14in accordance with certain implementations of the invention. With respect toFIG. 2, control begins at block100with the URL checker20being invoked. The URL checker20may be invoked when the user invokes the spell checker18, or separately invoked through a user command or user selection of an item from a drop down menu. Still further, the URL checker20may be invoked when attempting to make the document14available, such as when sending the document14as an e-mail transmission or loading the document14onto a server to make accessible. After being invoked, the URL checker20scans (at block102) the document14to locate hypertext links16a, bincluding URL addresses. For each located hypertext link16a, b, the URL checker performs the loop at blocks104through116, which may also include performing blocks150through214.

At block106, the URL checker20determines context terms in a predetermined vicinity of the hypertext link16a, bbeing considered. The vicinity searched for context terms may include the current surrounding words, line, paragraph, page, pages, etc. The URL checker20then transmits (at block108) an HTTP GET request to a web server8a, b, c, to access the web page referenced in the hypertext link16a, b. If (at block110) the web page is received in response to the GET request, then the URL checker20scans (at block112) the received web page to determine instances of context terms in the web page. The URL checker20then determines (at block114) whether the web page includes a sufficient number of instances of context terms to satisfy a predetermined context term threshold or qualifying threshold. For instance, the qualifying threshold may require at least one or more instances of a certain percentage of the context terms. The qualifying threshold determination at block114screens pages of the hypertext links to determine whether they are likely the web page the author of the document14intended given the context of surrounding terms in the document14. The premise of the determination at block114is that a retrieved web page including instances of context terms less than the qualifying threshold is likely not relevant to the content of the document14and, thus, not likely the intended web page.

If (at block114) the retrieved web page satisfies the qualifying threshold, i.e., includes a number of instances of context terms meeting or exceeding the threshold, then the web page referenced in the hypertext link16a, bis likely the page the author of the document14intended, and control proceeds (at block116) back to block106to consider any further hypertext links16a, blocated in the document14. If the web page was not received (at block110), indicating that the URL of the hypertext link may no longer be valid, or if the web page does not satisfy (at block114) the qualifying threshold, then control proceeds (at block118) to block150inFIG. 3to attempt to automatically generate a set of possible correct URLs the author intended. The logic ofFIGS. 3 and 4is performed for each hypertext link16a, bin the document14that does not address a valid web page or does not satisfy the qualifying threshold.

With respect toFIG. 3, the URL checker20generates (at block150) modified URLs that each include the domain name in the URL of the hypertext link16a, band a top level domain (TLD), e.g., .com, .edu, .gov, etc., that is different than the top level domain embedded in the ULR of the hypertext link16a, b. Each of these modified URLs including the same domain name and different top level domains are added (at block152) to the URL variation list22.

From blocks154to160, the URL checker20generates modified URLs based on alternative spellings of the domain name. At block154, the URL checker20calls the spell checker18to parse and spell check the URL domain name in the hypertext link16a, bin a manner known in the spell checking art as a single term and/or as compound words to generate possible correct spellings of the domain name and/or the compound terms that comprise the domain name. A set of possible correct spellings of the domain name is generated (at block156), which may include different possible correct spellings of the entire domain name or different combinations of the generated correct spellings of the compound terms forming the domain name. The URL checker20then generates (at block158) a modified URL for each possible correct spelling in the generated set and appends (at block160) the modified URLs to the UTRL variation list22.

At blocks162–164, the URL checker20generates modified URLs using a stemming algorithm known in the art against the domain name and/or compound terms that comprise the domain name. At block162, the URL checker20executes a stemming algorithm known in the art on the entire domain name and any compound terms that form the domain name. A modified URL is generated (at block164) for each determined morphological variation of the domain name and/or different combinations of the morphological variations of the compound terms that form the domain name. These generated modified URLs including the morphological variations of the entire domain name or its compound terms are than appended (at block166) to the URL variation list22. Control then proceeds (at block168) to block200inFIG. 4to process the URL variation list22to determine those modified URLs in the list22likely to be the URL the author intended to include in the hypertext link16a, b.

With respect toFIG. 4, control begins at block200where the URL checker20performs a loop of steps at blocks202through210for each modified URL i in the URL variation list22. At block202, the URL20checker transmits an HTTP GET request to the modified URL i. If (at block204) the requested web page is received, then the URL checker20scans (at block206) the received web page to determine instances of the context terms, previously determined at block106inFIG. 2, in the received web page. If (at block208) the scanned web page does include a sufficient number of instances of context terms to satisfy the qualifying threshold, which is the same determination made at block114inFIG. 2, then the modified URL i is appended (at block210) to the possible correct URL list24. In additional implementations, the qualifying thresholds at block208applied to modified URLs and URLs embedded in hypertext links16a, bat block114may be different. After appending the URL i to the possible correct URL list24or failing to qualify the web page addressed by the modified URL i at blocks204or208, control proceeds (at block212) back to block200to consider the next modified URL i in the URL variation list22until all modified URLs are considered. Upon completing the possible correct URL list24, control proceeds (at block214) to block116inFIG. 2to consider any further hypertext links16a, bin the document14.

The possible correct URL list24resulting from the process inFIGS. 3 and 4includes all URLs determined from the actual URL in the hypertext link16a, bthat address web pages that satisfy the qualifying threshold criteria that disqualified the URL in the hypertext link16a, b. The URL checker20would generate a URL list22and possible correct URL list24for each URL in hypertext links16a, bthat does not include a sufficient number of instances of context terms to satisfy the qualifying threshold. In certain implementations, if a possible correct URL list24generated for a hypertext link16a, bdoes not include any modified URLs, then no modified URL could be generated according to the logic ofFIGS. 3 and 4that satisfies the qualifying threshold.

FIG. 5illustrates a graphical user interface (GUI)300the URL checker20may generate on the monitor11of the computer4, named the “URL Check Box”. The URL check box300would be displayed for each hypertext link16a, blocated in the document.FIG. 5shows the URL check box300displayed for the hypertext link302“www.whitehouse.com” located in the document304. The located hypertext link302is displayed in the box306in the check box300. All the modified URLs in the possible correct URL list24generated for the URL in the hypertext link302are displayed in the “Replacement URL” box308. User selection of the “View Web Page You Entered” push button310would cause the URL checker20to retrieve and display the web page at the hypertext link302to view what the author entered into the document14. User selection of the “View Replacement Page” push button312would display the web page at the modified URL the user highlighted or otherwise selected in the Replacement URL box308. Selection of the “Skip All” push button314would cause the URL checker20to bypass the current and any future instances of the located hypertext link302in the document304and selection of the “Replace All” push button316would replace all instances of the located hypertext link302in the document304with the modified URL the user selected in the Replacement URL box308. Similarly, the skip318and replace320push buttons skip or replace, respectively, the located instance of the hypertext link302for which the URL check box300was generated.

In one implementation, the URL checker20may scan the document14to locate the first hypertext link16a, generate the possible correct URL list22for that hypertext link16aonly, and then display the URL check box300for that hypertext link. After the author selects a particular action in the URL check box300, the URL checker20would then locate the next hypertext link16bin the document14and again generate the possible correct URL list22and display the URL check box300for the next located hypertext link16b. These actions may then be performed until all hypertext links16a, bin the document14are checked.

The above described implementations provide a technique for automatically checking hypertext links an author included in an electronic document to determine whether the hypertext link references the web page the author intended to include in the document based on the context of the document. This URL checker20tool would help avoid the situation where an author inadvertently includes a wrong hypertext link that references web content that is unrelated to the content of the document or, worse, offends the target audience of the document and embarrasses the author in the opinion of the target audience.

Following are some alternative implementations of the invention.

In certain described implementations, the URL checker is invoked in response to the author actively invoking the URL checker or some other checker, such as a spell checker18. Additionally, the URL checker may be invoked when the author attempts to transmit or load the document to make available to the target audience.

In certain described implementations, the URL checker is invoked to verify network addresses included in a document being edited. Alternatively, the URL checker may be included in a viewer program, such as an Internet web browser or e-mail program, to check URLs when the target audience selects the document to load into the viewer program to render on the display11or other output means. In this way, the URL checker would alert the reader to possible incorrect hypertext links and suggest possible correct alternative URLs based on the domain name of the embedded hypertext link and the context of the document.

In the described implementations, the URL checker20determined whether the content of the web page addressed by the hypertext link included a threshold number of instances of the context terms. In alternative implementations, the URL checker20may examine metadata or metatags associated with the web page. Metatags comprise the keywords associated with an Internet web page that are used by Internet search engines to index and locate web pages in response to queries. The qualifying threshold would then be applied to the metadata or metatags associated with the web page.

In certain described implementations, the context terms were gleaned from the document being edited. Additionally, the author of the document may manually enter specific context terms to use when qualifying web pages.

Still further, the author of the document may provide a list of negative context terms. In such case, if the hypertext link or generated modified URL addressed a document that included such negative context terms at a negative qualifying threshold, then such document would not qualify or satisfy the qualifying threshold. For instance, an author of a web page or e-mail directed to a sensitive audience, e.g., children, business associates, customers, etc., may specify profane and offensive language as negative context terms to enable the URL checker20to alert the author of hypertext links embedded in the document that point to web pages including such offensive language. The URL checker20would then generate a possible correct URL list24that would include alternative URLs that are free of such offensive material as specified in the negative context terms. Moreover, the URL checker20may provide a predefined list of negative context words including offensive and profane language that the URL checker20may reference when qualifying web pages.

The implementations involving the use of negative context terms may be included in an Internet filtering program to screen web pages based on the content of the web pages addressed by the hypertext links in the downloaded web page. Such an Internet filtering program including the URL checker would allow parents, employers or others to block the display of web pages including hypertext links to web pages including a sufficient number of the negative context terms. This would allow the exclusion of pages whose hypertext links include offensive content even if the web page including the hypertext link does not itself include negative context terms.

In the described implementations, the network addresses or URLs being checked were embedded in hypertext links. In alternative implementations, a list of URLs or network addresses in a file may be checked even if such network addresses are not embedded in hypertext links.

The algorithm ofFIGS. 2,3, and4described particular steps as occurring in a particular order. However, in alternative implementations, the order of the steps may be changed and certain steps removed and added without departing from the scope of the invention. Moreover, different steps may be performed to execute the overall operation of the algorithm.

The GUI implementation described located hypertext links as being bolded and the term to substitute as being highlighted. Alternatively, the located hypertext links may be indicated in other ways, such as displaying the terms in different colors, different fonts, different font size, etc.

The GUI implementation was described as having particular pushbuttons to cause a particular set of actions to occur. Alternatively, the URL check box GUI may include additional pushbuttons to provide additional functions or combinations of functions described herein.

In the described implementations, the URL checker is used to check URL hypertext links to web pages. Additionally, the URL checker may be provided to check hypertext links including any type of network address known in the art, including non-URL type addresses, and check any type of content available at the network address identified in the hypertext link.

In the described implementations, the URL checker is used to check content on a web page. Additionally, if the URL in the hypertext link addresses content in media formats other than text, such as video, audio, three-dimensional graphics, etc., the URL checker may include the capability to parse and check whether content in such other media formats satisfies the qualifying threshold.

Moreover, the document including the hypertext link that is being processed by the URL checker may be in any document format known in the art, e.g., HTML, Extensible Markup Language (XML), ASCII, bitmap, etc.

In the described implementations, the hypertext links are embedded in a document the author intends to transmit to a target audience. Additionally, the hypertext links being checked may be included in any type of file, regardless of whether the file is to be transmitted to a target audience.

The described implementations involved checking hypertext links in a document. Additionally, the described implementations may be applied to verifying network address that are listed in the document and not embedded in hypertext links.

In the described implementations, the author used a GUI to review and substitute the hypertext links in the document. Additionally, the user may review the possible correct URL list and then manually change selected hypertext links in the document without using the URL check box GUI shown inFIG. 5.