PATRICIA G. BUTLER
DANIELLE R. ODDO
Howrey Simon Arnold & White, LLP
1299 Pennsylvania Avenue, N.W.
Washington, D.C. 20004
(202) 783-0800
KENNETH M. FRANKEL
Finnegan, Henderson, Farabow, Garrett & Dunner, L.L.P.
1300 1 Street, N.W.
Washington, DC 20005
(202) 408-4000
Attorneys for non-party Red Hat, Inc.
IN THE UNITED STATES DISTRICT COURT
FOR THE DISTRICT OF COLUMBIA
UNITED STATES OF AMERICA,
Plaintiff,
v.
MICROSOFT CORPORATION,
Defendant.
STATE OF NEW YORK ex. rel.
Attorney General ELIOT SPITZER, et al.,
Plaintiffs,
v.
MICROSOFT CORPORATION,
Defendant.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Civil Action No. 98-1232 (CKK)
Civil Action No. 98-1233 (CKK)
|
COMMENTS OF RED HAT, INC. TO REVISED PROPOSED FINAL
JUDGMENT AND COMPETITIVE IMPACT STATEMENT IN UNITED STATES
V. MICROSOFT CORP., CIVIL NO. 98-1232, IN THE UNITED STATES
DISTRICT COURT FOR THE DISTRICT OF COLUMBIA
- INTRODUCTION
Pursuant to the Antitrust Procedures and Penalties Act, 15 U.S.C. {} 16, Red Hat, Inc. ("Red
Hat") files comments to the revised Proposed Final Judgment, filed November 6, 2001, and the
Competitive Impact Statement, filed November 15, 2001, in United States v. Microsoft Corp.,
Civil No. 98-1232, in the United States District Court for the District of Columbia. Red Hat files
these comments because the Proposed Final Judgment will not remedy the anti-competitive
effects of Microsoft's antitrust violations that were upheld by the United States Court of Appeals
for the District of Columbia Circuit in its June 23, 2001 decision. As a result, the market for
PC-compatible operating systems -- in which Microsoft unlawfully maintained its monopoly --
will not return to a competitive environment, and the mandate of the District of Columbia Court
of Appeals will be thwarted.1
- BACKGROUND
It is no exaggeration to say that Linux is the operating system that provides the most serious and
fastest growing competition to the Microsoft operating system. Linux is the PC-compatible open
source operating system based on the kernel developed by Mr. Linus Torvalds in the early 1990s,
and in the short amount of time that it has been in the marketplace, the Linux operating system
has become a viable competitor to other operating systems. Red Hat, which began in 1994, offers
the Red Hat version of the Linux operating system with support and software applications and is
the largest distributor of open source Linux. In order for the Proposed Final Judgment to have an
effect in restoring the competitive nature of the PC-compatible operating system market, Red Hat
believes that each and every provision must be viewed with the overall perspective of whether
the provision provides a level playing field for companies such as Red Hat, which offer direct
competition in the injured market, or whether the provision directly or indirectly will enable
Microsoft to perpetuate the monopoly it has been found to have maintained illegally. In order to
provide a background for these comments to the Proposed Final Judgment, a brief overview of
open source, and Red Hat Linux follows.
Open source and free software is distinct from traditional (proprietary) software in that it is
produced by a generally voluntary, collaborative process, and accompanied by a license that
pants users the right to:
- have the source code,
- freely copy the software,
- modify and make derivative works of the software, and
- transfer or distribute the software in its original form or as a derivative work, without paying
copyright license fees.
Many open source and free software licenses also embody the concept known as copyleft. Simply
put, this is the condition that all versions of the product, including derivative works, be
distributed along with, and subject to, the conditions and rights in the license under which they
were received. This concept is central to the ability of a licensor to ensure that its product
remains open source or free software.
The underlying principle is that improvements to a product are given back to the open source and
free software community. In this way, open source and free software is continually improved,
with the modifications being made available to all. Without the ability to impose this condition
on further distribution, a copy, or a derivative work made pursuant to the authorization granted in
the license, could be distributed without the right to copy, modify, distribute or have the source
code -- in effect it would be transformed into a proprietary work. It would cease to be "free."
The benefits of open source and free software are numerous. In practical and commercial terms,
open source and free software is stable, high quality software, which users are free to tailor to
their own purposes. As the source code is available to all, a user is free to remedy any bugs it
may find, maintain the software itself, or hire a third party to do so. The availability of the source
code also allows the creation of complementary and interoperable programs by anyone and
everyone, with no need to reverse engineer the product. As an element in the competitive
environment, open source software provides an almost pure form of competition in the software
(and, of course, operating system) competitive environment. Improvements are quickly available
and users are able to make product-quality based choices, unfettered by many of the
considerations that occur in other competitive markets. Moreover, because of the size of the
community that participates in the open source arena, products are quickly debugged, refined and
improved; greatly benefiting the ultimate end user.
From a company with only $482,000 in revenue in 1995, Red Hat has grown to over $100
million in revenue in 2001. The vast majority of Red Hat's revenues are derived from the services
it offers around its well-known Linux distribution, not from license fees or royalties. Despite its
rapid growth, however, until last year Red Hat Linux was not considered an effective competitor
with either Sun Microsystems or Microsoft in the server market. With increasing success, Red
Hat has now penetrated that market, demonstrating that it can be an effective competitor where
no illegal monopoly exists. The same cannot be said for the desktop operating system market, the
subject of many of the claims and findings against Microsoft in this matter. Because of
Microsoft's stranglehold on that market, with over a 94% marketshare -- a stranglehold
unlawfully maintained -- Red Hat has elected not to attempt to compete until a level playing field
can be established. Any efforts by Red Hat toward competing would be utterly fruitless and an
unjustified use of corporate resources.
Microsoft has made no secret of the fact that it considers companies such as Red Hat to be
potential competitive threats in the marketplace. According to Microsoft's own executives,
Microsoft has contacted "U.S. lawmakers" in an effort to curtail the spread of the Linux
operating system. Microsoft Executive says Linux Threatens Innovation, Feb. 14, 2001,
Bloomberg News, at
http://news.cnet.com/investor/news/newsitem/0-99001028-4825719-RHAT.html. (Ex. A
attached hereto.) Microsoft's CEO, Steve Ballmer has described Linux as a "cancer that attaches
itself in an intellectual property sense to everything it touches." Microsoft CEO takes lunch break
with the Sun-Times, Chicago Sun Times, June 1, 2001, at
http://www.suntimes.com/output/tech/cst-fin-micro01.html(Ex. B attached hereto.); see also Joe
Wilcox & Stephen Shankland, Why, Microsoft is wary of open source, CNET News.com, June
18,2001, at http://news.com.corn/21001001-268520.html (Ex. C attached hereto.); Stephen
Shankland, Microsoft license spurns open source, CNET News.com, June 22, 2001, at
http://news.com.com/2100-1001268889.html (Ex. D attached hereto.); Mike Ricciuti, Microsoft
memo touts Linux, CNET News.com, Nov. 5, 1998, at
http://news.com.com/2100-1001-217563.html (Ex. E attached hereto.); Joe Wilcox & David
Becker, Microsoft sues Linux start-up over name, CNET News.com, Dec. 20, 200l, at
http://news.com.com/2100-1001-277314.html (Ex. F attached hereto.). From these comments, it
is clear, that, unless the Proposed Final Judgment protects the ability of non-Microsoft operating
systems such as Red Hat Linux to gain access to, and compete for, software developers and
users, and to compete, the remedies aspect of this lawsuit will be a failure. Therefore, in order for
the Department of Justice to effect a remedy scheme that will address the findings of the Court of
Appeals, the Department of Justice must ensure the ability of companies such as Red Hat to
compete. A review of the Proposed Final Judgment, however, shows little to no attention paid to
the very companies that directly compete in the market in which Microsoft unlawfully has
maintained its monopoly. Unfortunately, this is despite the clear intent of the Competitive Impact
Statement, in which the Department of Justice states:
Appropriate injunctive relief in an antitrust case should: (1) end the unlawful conduct; (2) "avoid
a recurrence of the violation" and others like it; and (3) undo its anticompetitive consequences.
See Nat'l Soc'y of Prof'l Eng'rs v. United States, 435 U.S. 679, 697 (1978); United States v. E.I
du Pont de Nemours & Co., 366 U.S. 316, 326 (1961); Int'l Salt Co. v. United States, 332 U.S.
392,401 (1947); United States v/Microsoft Corp., 253 F.3d 34, 103, 107 (D.C. Cir. 2001)
Restoring competition is the "key to the whole question of an antitrust remedy," du Pont, 366
U.S. at 326. Competition was injured in this case principally because Microsoft's illegal conduct
maintained the applications barrier to entry into the personal computer operating system market
by thwarting the success of middleware that would have assisted competing operating systems in
gaining access to applications and other needed complements. Thus, the key to the proper remedy
in this case is to end Microsoft's restrictions on potentially threatening middleware, prevent it
from hampering similar nascent threats in the future and restore the competitive conditions
created by similar middleware threats. The Proposed Final Judgment imposes a series of
prohibitions on Microsoft's conduct that are designed to accomplish these critical goals of an
antitrust remedy.
Competitive Impact Statement filed in U.S. v. Microsoft (D.D.C. Nov. 15, 2001) at 9.
It is with consideration being given to the findings of the Court of Appeals and the realistic
impact of the Proposed Final Judgment that Red Hat files these comments.
- COMMENTS ON INTELLECTUAL PROPERTY ISSUES ASSOCIATED WITH THE FINAL JUDGMENT
- The Proposed Final Judgment Would Neither Remedy Microsoft's Monopolization of, Nor Restore Competitive Conditions to, the Market for PC-Compatible Operating Systems, Because
Microsoft Would Remain Free to Shut Down Competitive Operating Systems and Middleware
Through Assertion of Microsoft's Intellectual Property Portfolio
For intellectual property reasons, the Proposed Final Judgment would fail to remedy Microsoft's
monopolization of the operating systems market and fail to accomplish the goal to restore
competitive conditions to the market. It would fail because it would permit Microsoft to block
software and hardware developers, users, and vendors from developing, using, distributing, or
promoting competitive operating systems by threatening or bringing suits for infringement of
Microsoft's extensive intellectual property portfolio. To provide an effective remedy and
accomplish that goal, the narrow scope of licenses to Microsoft's intellectual property fights
required by the Proposed Final Judgment must, at a minimum, be expanded to allow those
persons to engage in that competitive conduct without the threat of an infringement suit by
Microsoft.
More specifically, the Proposed Final Judgment would prohibit Microsoft from retaliating
against software and hardware developers, users, and vendors if they were to develop, use,
distribute, or promote operating systems or middleware that competes with Microsoft's Windows
operating system or middleware. But giving with its right hand and taking with its left, the
Proposed Final Judgment would exempt from prohibited retaliation -- and expressly allow --
Microsoft to sue those persons for infringement of Microsoft's intellectual property fights if they
engage in that conduct.
Two primary effects would flow from this exemption. First, Microsoft would remain free to
assert its intellectual property fights to stop developers and vendors of competitive operating
systems and middleware from developing, using, distributing, or promoting their software. In that
event, the downstream software and hardware developers, users, and vendors who want to use
and work with competitive operating systems and middleware would not have any competitive
operating systems or middleware to use, distribute, or promote. Second, Microsoft would remain
free to assert the same intellectual property rights to stop those downstream developers, users,
and vendors from using, distributing, or promoting such competitive operating systems and
middleware.
If no competitive operating systems and middleware were available or if the downstream
developers, users, and vendors could not use, distribute, or promote competitive operating
systems or middleware because Microsoft threatens or brings intellectual property infringement
suits, the Proposed Final Judgment cannot accomplish its purpose: to remedy Microsoft's
unlawfully maintenance of its monopoly and restore competitive conditions to the market
Microsoft in which Microsoft's monopoly was unlawfully maintained.
The antitrust remedy should at least remove this exemption and define retaliation to include
threatening or bringing suit for infringement of Microsoft's intellectual property portfolio. Such a
remedy would be proper and consistent with both Supreme Court and Justice Department
precedent.
- Microsoft Illegally Maintained a Monopoly in the Market for Intel-Compatible Operating
Systems
The district court held, and the court of appeals affirmed, that Microsoft had illegally
"maintained a monopoly in the market for Intel-compatible PC operating systems in violation of
[Sherman Act] º 2." United States v. Microsoft Corp., 253 F.3d 34, 45, 50 (D.C. Cir. 2001). The
remedy in this case should at the very least restore competition to that market, because that was
the only district court holding that the court of appeals affirmed. See id. at 46. Unless the remedy
restores competition within that market, the courts' holdings, and the Justice Department's and
States' efforts in proving that antitrust violation, will be nullities.
- The Purpose of an Antitrust Remedy Is to Terminate the Monopoly and Restore Competition
to the Monopolized Market
Controlling case law and the Justice Department both recognize that the purpose of the remedy in
a Section 2 case is to end the monopoly and restore competition to the market that the defendant
monopolized. As the Supreme Court explained, and as the Court of Appeals recognized in
Microsoft, in a monopolization case "it is the duty of the court to prescribe relief which will
terminate the illegal monopoly, deny to the defendant the fruits of its statutory violation, and
ensure that there remain no practices likely to result in monopolization in the future." United
States v. United Shoe Mach. Corp., 391 U.S. 244, 250 (1968); see Microsoft, 346 F.3d at 103
(quoting United Shoe). Indeed, the goal of relief is to make sure that competition results, not just
to end a lawsuit. As the Supreme Court instructed:
In an equity suit, the end to be served is not punishment of past transgression, nor is it merely to
end specific illegal practices. A public interest served by such civil suits is that they effectively
pry open to competition a market that has been closed by defendants' illegal restraints. If this
proposed Final Judgment accomplishes less than that, the Government has won a lawsuit and lost
a cause.
International Salt Co. v. United States, 332 U.S. 392, 401 (1947).
In accordance, the Justice Department explained that its purpose in entering into the Proposed
Final Judgment was to "restore competitive conditions to the market." Competitive Impact
Statement at 2. Likewise, the Justice Department told the public in its press release that the
"settlement will bring effective relief to the market and ensure that consumers will have more
choices in meeting their computer needs." Press Release, U.S. Justice Department, Department of
Justice and Microsoft Corporation Reach Effective Settlement on Antitrust Lawsuit, Nov. 2,
2001, at http://www.usdoj.gov/opa/pr/2001/November/01_at_569.htm (Ex. G attached hereto.).
- Intellectual Property Restrictions Would Prevent the Proposed Final Judgment From Restoring
Competitive Conditions to the Monopolized Market for Operating Systems
- The Proposed Final Judgment Would Ban Microsoft from Retaliating Against Certain Groups
if They Work with Operating Systems or Middleware that Compete with Microsoft's Windows or
Middleware
The Proposed Final Judgment would protect certain groups of software or hardware developers,
users, and vendors (OEMs, ISVs, and IHVs)2 from undefined "retaliation" by Microsoft if the
groups were to work with operating systems or middleware that compete with Microsoft's
Windows or middleware. It would provide that Microsoft shall not "retaliate" against those
groups if they engage in certain conduct with any "software that competes with Microsoft
Platform Software," which the Proposed Final Judgment defines to include Microsoft's Windows
operating system "and/or a Microsoft Middleware Product."3 For example, the Proposed Final
Judgment would provide that Microsoft "shall not retaliate" against an:
- OEM for "developing, distributing, promoting, using, selling, or licensing any software that
competes with" Microsoft's Windows operating system or middleware. Proposed Final Judgment
Section III.A. 1.
- ISV or IHV for "developing, using, distributing, promoting or supporting any software that
competes with" Microsoft's Windows operating system or middleware. Proposed Final Judgment
Section III.F. 1 .a.
- The Ban on Retaliation Would Not Ban Infringement Suits
While the term "retaliate" is undefined, the Proposed Final Judgment contradictorily exempts
from the scope of prohibited retaliation -- and therefore expressly permits -- suits for
infringement of Microsoft's intellectual property rights. More specifically, the provisions banning
retaliation against OEMs, ISVs, and IHVs are followed by an exemption:
Nothing in this provision shall prohibit Microsoft from enforcing.., any intellectual property right
that is not inconsistent with this Final Judgment.
Proposed Final Judgment Section III.A; see Section III.F.3. While the term "inconsistent" also is
undefined, it is clear from a later section that a suit to enforce intellectual property rights against
conduct that is protected from Microsoft's retaliation nevertheless is "not inconsistent with" the
Proposed Final Judgment.
The later section, Section III.I, provides that Microsoft must offer to license its intellectual
property rights to the groups if those rights are required to exercise an option expressly provided
under the Proposed Final Judgment. If it stopped there, the provision would be fine. But an
exemption to that license provision emphasizes that the required license is very narrow, and that
Microsoft could still bring infringement suits if the groups engage in the very conduct that is
protected from Micros0ft's retaliation:
I. Microsoft shall offer to license to ISVs, IHVs,... and OEMs any intellectual property rights
owned or licensable by Microsoft that are required to exercise any of the options or alternatives
expressly provided to them under this Final Judgment, provided that
* * *
2. the scope of any such license (and the intellectual property rights licensed thereunder) need be
no broader than is necessary to ensure that an ISV, IHV,... or OEM is able to exercise the options
or alternatives expressly provided under this Final Judgment (e.g., an ISV's, IHV's ... and OEM's
option to promote Non-Microsoft Middleware shall not confer any rights to any Microsoft
intellectual property rights infringed by that Non-Microsoft Middleware);
* * *
Beyond the express terms of any license granted by Microsoft pursuant to this section, this Final
Judgment does not, directly or by implication, estoppel or otherwise, confer any fights, licenses,
covenants or immunities with regard to any Microsoft intellectual property to anyone.
Proposed Final Judgment, Section III.I (emphasis added). In accordance, the Justice Department's
November 15, 2001 Competitive Impact Statement explains that a purpose of this provision is to
"[permit] Microsoft to take legitimate steps to prevent unauthorized use of its intellectual
property." Competitive Impact Statement at 49.
"Unauthorized use" would include infringement. A patent, for example, provides the patent
owner the exclusive fights to make, use, sell, and offer to sell the patented subject matter. 35
U.S.C. § 271(a). Those exclusive fights cover developing, distributing, promoting, using, and
selling. Thus, while earlier sections of the Proposed Final Judgment say Microsoft could not
"retaliate" against that conduct (Proposed Final Judgment Sections III.A.1, III.F.1.a), this later
section contradictorily provides that Microsoft could retaliate against the conduct -- by lawsuits
(Proposed Final Judgment Section III.1.2).
To illustrate the problem, apply the specific example quoted above, from Section III.I.2 of the
Proposed Final Judgment, to an ISV that promotes an operating system that competes with
Windows, and assume that Microsoft has patents that arguably cover that competitive operating
system. Under the Proposed Final Judgment, Microsoft would be prohibited from "retaliat[ing]"
if the ISV were "promoting" the competitive operating system, such as by offering it for sale.
Proposed Final Judgment Section III.F.1.a. But the exemption provides that the option to
promote the software without retaliation "shall not confer any rights to any Microsoft intellectual
property rights [e.g., patents] infringed by that" competitive operating system. Proposed Final
Judgment Section III.I.2. Thus, Microsoft could sue the ISV for infringing its patents by
promoting the competitive software.
Consequently, the Proposed Final Judgment would prohibit Microsoft from "retaliating" against
an ISV or IHV for "developing, using, distributing, [or] promoting" the competitive operating
system -- but Microsoft could sue the ISV or IHV for patent infringement for the same acts:
making (developing), using, selling (distributing), or offering to sell (promoting) that system.
Likewise, it would prohibit Microsoft from "retaliating" against an OEM for "developing,
distributing, promoting, using, or selling" a competitive operating system -- but Microsoft
nonetheless could sue the OEM for patent infringement for that conduct.
Thus, while Microsoft could not "retaliate," it could sue for infringement, thereby completely
eviscerating the ban on retaliation.
- Infringement Suits by Microsoft Based on Its Massive Intellectual Property Portfolio Could
Stop Competitive Operating Systems or Middleware
These intellectual property exemptions could permit Microsoft to completely prevent any
competition from other operating systems or middleware, both at the development level and
downstream throughout the development and distribution chain.
ISVs, i.e., non-Microsoft entities that develop or market software products, would include
developers and vendors of competitive operating systems. See Proposed Final Judgment Section
VI.I.4 A patent suit against such a developer or vendor for infringement of Microsoft's patents
covering competitive operating systems could result in an injunction against making, using,
selling, or offering to sell the competitive system, as well as damages (which could be trebled)
and attorney fees for any sales. See 35 U.S.C. §§ 283-285. If that occurred, downstream ISVs,
IHVs, and OEMs would not have any competitive operating systems with which they could
work.
ISVs also would include downstream developers and vendors of middleware or applications
software. A patent suit against them for infringement of Microsoft's patents would prevent them
from, e.g., using a competitive operating systems to develop their software. Downstream IHVs
and OEMs would include developers and vendors of personal computers. A patent suit against
them for infringement of those Microsoft patents would prevent them from, e.g., making or
selling any computers using competitive operating systems.
The same would apply to competitive middleware. A patent suit against an ISV that develops
competitive middleware would preclude the availability of competitive middleware. A patent suit
against downstream developers or vendors of applications software would preclude them from
using competitive middleware to develop their software. And a patent suit against downstream
IHVs and OEMs would preclude them from making or selling computers using competitive
middleware.
Microsoft has amassed a large portfolio of numerous patents and other intellectual property that
potentially covers competitive operating systems and middleware. While any infringement
analysis must be specific to a particular software, it is clear that Microsoft has numerous patents
that potentially could be asserted against that competitive software. The chart attached as Exhibit
H lists over 1400 patents owned by Microsoft in December 2001 that are in Patent and
Trademark Office classes that include operating systems and middleware software. Additional
Microsoft patents covering operating systems and middleware may be in other classes.
If Microsoft were to bring suit on multiple patents, the accused infringer would have to win
against every patent to avoid an injunction and damages. The odds of losing are so great that only
the most well financed competitive operating system or middleware developer or vendor could
consider fighting that battle. The result would be the same downstream. If the competitive
operating system or middleware developer or vendor indemnified its downstream customers
(ISVs, IHVs, OEMs, and ultimate consumers), it would face the same problem. If it did not
indemnify the downstream customers, those customers would face the problem directly. As a
result, a threat of suit by Microsoft could be enough to stop the making, using, selling, or offering
to sell competitive operating systems and middleware at all levels in the
development-distribution chain.
- Microsoft Intends to Enforce Its Intellectual Property
Microsoft clearly declared its intent to enforce its intellectual property rights against competitors
by including the exemption for infringement suits in Section III.I of the Proposed Final Judgment
and by arguing that the non-settling states were seeking to confiscate its intellectual property.
See, Defendant Microsoft Corporation's Remedial Proposal at 2. (Dec. 12, 2001) ("Microsoft
Remedial Proposal"). Similarly, Craig Mundie, Microsoft's Senior Vice President of Advanced
Strategies, reportedly told the audience at an Open Source convention last July:
Well, at the end of the day, if you have a patent, you enforce the patent if it's valuable to you.
And so I think that Microsoft and other people who have patents will ultimately decide to enforce
those patents.
Shared Source v. Open Source: Panel Discussion, O'Reilly Network, Aug. 9, 2001, at
http://linux.oreillynet.com/pub/a/linux/2001/08/09/oscon panel.html (Ex. I attached hereto.). The
threat of Microsoft's patent enforcement has caused concern among the open-source community,
as reported last August. Galli, Peter, "Microsoft Patents a Threat to Open Source," eWEEK, Aug.
28, 2001, at http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2808548.00.html
("Members of the open-source community are becoming increasingly concerned by ongoing
moves from Microsoft Corp. to acquire a range of software patents that the company can
potentially use down the line to attack and try to restrict the development and distribution of
open-source software.") (Ex. J attached hereto.).
- The Intellectual Property Problem Can Be Fixed by Defining Retaliation to Include
Infringement Suits and Eliminating the Exemptions
The Proposed Final Judgment should define "retaliate" in Section VI of the Proposed Final
Judgment. While the term should remain broad to bar any type of retaliation, it can specifically
include bringing infringement suits:
"Retaliate" means any type of retaliation and is intended to be construed broadly. It specifically
includes threatening or bringing a suit for infringement of any intellectual property rights owned
or licensable by Microsoft.
In addition, the exemption sections should be modified to prevent infringement suits against the
protected groups for engaging in conduct that the Proposed Final Judgment would prohibit
Microsoft from retaliating against:
For OEMs, Section III.A should be modified as follows -- after the sentence
"Nothing in this provision shall prohibit Microsoft from enforcing any provision of any license
with any OEM or any intellectual property right that is not inconsistent with this Final
Judgment," add the following:
Acts that would be inconsistent with this Final Judgment include, but are not limited to,
threatening or bringing suit for infringement of any intellectual property rights that would restrict
the OEM from developing, distributing, promoting, using, selling, or licensing any software that
competes with Microsoft Platform Software or any product or service that distributes or promotes
any Non-Microsoft Middleware.
For ISVs and IHVs, Section III.F.3 should be modified as follows -- after the
sentence "Nothing in this section shall prohibit Microsoft from enforcing any provision of any
agreement with any ISV or IHV, or any intellectual property right, that is not inconsistent with
this Final Judgment," add the following:
Acts that would be inconsistent with this Final Judgment include, but are not limited to,
threatening or bringing suit for infringement of any intellectual property rights that would restrict
the ISV or IHV from developing, using, distributing, promoting, or supporting any software that
competes with Microsoft Platform Software or any software that runs on any software that
competes with Microsoft Platform Software, or exercising any of the options or alternatives
provided for under this Final Judgment.
Also, Section II1.1.2. should be deleted and replaced as follows --
the scope of any such license (and the intellectual property rights licensed thereunder) need be no
broader than is necessary to ensure that an ISV, IHV, IAP, ICP or OEM is able to exercise the
options or alternatives expressly provided under this Final Judgment, and to engage in conduct
against which this Final Judgment prohibits Microsoft from retaliating;
To enable those third parties to obtain those licenses, Section VIII of the Proposed
Final Judgment should be modified as follows:
Nothing in this Final Judgment is intended to confer upon any other persons any rights or
remedies of any nature whatsoever hereunder or by reason of this Final Judgment, except as
provided in Section III.I.
- The Proposed Relief Requiring Licensing of Microsoft's Intellectual Property Is Proper and
Consistent with Precedent
The proposed modifications would require Microsoft to license certain of its intellectual
property: that which potentially covers competitive operating systems, middleware, or other
software or hardware and is necessary to ensure that the protected groups are free to engage in
the conduct against which the Proposed Final Judgment would prohibit Microsoft from
retaliating. Compulsory licensing of intellectual property to remedy monopolization is consistent
with Supreme Court and Justice Department precedent, including the Proposed Final Judgment
as it now stands, even though abuse of intellectual property rights was not found to be predatory
conduct.
To achieve the goal of restoring competitive conditions to the marketplace discussed above, the
court has "'large discretion' to fit the decree to the special needs of the individual case." Ford
Motor Co. v. United States, 405 U.S. 562, 573 (1972) (quoting International Salt Co. v. United
States, 332 U.S. 392, 401 (1947)). That discretion includes prohibiting acts that may otherwise
be valid, if necessary to correct the effects of the violation. "Equity has power to eradicate the
evils of a condemned scheme by prohibition of the use of admittedly valid parts of an invalid
whole." United States v. Bausch & Lomb Optical Co., 321 U.S. 707, 814 (1944). As the Court
similarly instructed in United States v. Paramount Pictures, Inc., 334 U.S. 131,148 (1948), to
achieve effective relief a court can include restrictions on otherwise lawful conduct: "[E]quity
has the power to uproot all parts of an illegal scheme -- the valid as well as the invalid -- in order
to rid the trade or commerce of all taint of the conspiracy."
Compulsory licensing of patents was ordered to remedy monopolization in, for example, United
States v. United Shoe Mach. Corp., 110 F. Supp. 295 (D. Mass. 1953), aff'd, 347 U.S. 521
(1954), even though enforcement of the patents was not an alleged predatory act. The court
concluded that the defendant had not improperly asserted its patents, but they were a barrier to
entry into the monopolized market. See 110 F. Supp. at 297,332-33. In determining the remedy,
the court's goals were not only to eliminate specific predatory practices that had caused or would
cause monopolization, but also "to restore workable competition in the market." Id. at 346-47.
The court explained that licensing of patents was proper as part of the remedy to reduce the
effects of the defendant's monopolization caused by non-patent predatory business practices:
Defendant is not being punished for abusive practices respecting patents, for it engaged in none
.... It is being required to reduce the monopoly power it has, not as a result of patents, but as a
result of business practices. And compulsory licensing, on a reasonable royalty basis, is in effect
a partial dissolution, on a non-confiscatory basis.
Id. at 351. Fifteen years later, the Supreme Court again concluded that the relief granted was
within the proper scope of relief for an antitrust violation. United States v. United Shoe Mach.
Corp., 391 U.S. 244, 251 (1968).
Similarly, the Justice Department has required compulsory licensing of intellectual property as
part of the remedy in proposed final judgments in antitrust cases. One of the latest examples, and
perhaps the most pertinent, is this Proposed Final
Judgment's requirement that "Microsoft shall offer to license to ISVs, IHVs .... and
OEMs any intellectual property rights owned or licensable by Microsoft that are required to
exercise any of the options or alternatives expressly provided to them under this Final
Judgment .... "(Proposed Final Judgment Section III.I.) Indeed, the Competitive
Impact Statement provides that some of those provisions "are designed specifically to prevent
Microsoft from using its intellectual property rights to frustrate the intended effectiveness of the
Proposed Final Judgment's disclosure provisions." Competitive Impact Statement at 49. The
exemption from retaliation by infringement suits, however, allows that frustration.
The issue, therefore, is not whether the remedy can properly include compulsory licensing of
Microsoft's intellectual property. Instead, the issue is the scope of the licensing required. As
shown above, the scope of the proposed modifications to the intellectual property provisions is
reasonable and required to remedy the monopolization and restore competition to the market.
The proposed modifications would not "result in... wholesale confiscation of Microsoft's
intellectual property," a criticism that Microsoft wrongly asserted against the non-settling states'
proposed remedy. Microsoft Remedial Proposal at 2. It would require only licensing that is
necessary to prevent frustration of the anti-retaliation provisions. Moreover, the licenses could
include royalties or other consideration on a reasonable and non-discriminatory basis, as
provided in Section III.I. 1.
Nor would the proposed modifications be a significant disincentive to innovation by Microsoft.
Since the Proposed Final Judgment would expire in five years (see Proposed Final Judgment,
Section V), the obligation to license would exist only for that limited time period. Any future
innovation by Microsoft also would be free of this obligation after those five years. Any arguable
effect on Microsoft's incentives to innovate during those five years would be limited and only to
the extent necessary to provide effective relief from Microsoft's monopolization.
In opposing the non-settling states' proposed relief, Microsoft pointed to the Court of Appeals'
comment that the relief in this case "`should be tailored to fit the wrong creating the occasion for
the remedy.'" Microsoft Remedial Proposal at 5 (quoting Microsoft, 253 F.3d at 107). Microsoft
also relied upon this Court's statement that the "'scope of any proposed remedy must be carefully
crafted so as to ensure that the enjoin[ed] conduct falls within the penumbra of behavior which
was found to be anticompetitive.'" Microsoft Remedial Proposal at 6 (quoting Sept. 8, 2001 Tr. at
8). Removing the infringement suit exemption and defining retaliation to include threatening or
bringing suit for infringement of Microsoft's intellectual property portfolio would fall well within
that scope.
- Conclusion Regarding Intellectual Property
The scope of the required intellectual property licensing under the Proposed Final Judgment is far
too narrow to remedy the monopolization of, and restore competitive conditions to, the market
the courts held Microsoft monopolized -- Intel-compatible operating systems. The modifications
to the scope proposed above would be no broader than that which is necessary to allow the
groups protected under the Proposed Final Judgment to engage in the specific conduct that the
Proposed Final Judgment allows them to engage in without fear of retaliation from Microsoft.
As shown above, unless the scope of the licensing is expanded, and the exemptions for
infringement suits removed, "the Government has won a lawsuit and lost a cause." International
Salt, 332 U.S. at 401.
- COMMENTS TO SECTION III -- PROHIBITED CONDUCT
A focus of any final judgment in this litigation must be to put in place safeguards and protections
against future actions by Microsoft that may not fit the known pattern, but that will obtain a
familiar result -- unlawful continuation of the Microsoft monopoly. An important aspect of this
focus is to make sure that the participants in the marketplace are given a chance at viability in a
competitive marketplace. As worded, Section III does not provide the safeguards and protections
that are necessary. Prohibiting actual retaliatory conduct by Microsoft is simply insufficient to
obtain the goals of the final judgment.
- Section III.A
The Department of Justice set forth a clear intent for the impact of Section III.A. As stated in the
Competitive Impact Statement, the perceived effect of Section III.A is to "ensure[] that OEMs
have the contractual and economic freedom to make decisions about distributing and supporting
non-Microsoft software products that have the potential to weaken Microsoft's personal computer
operating system monopoly without fear of coercion or retaliation by Microsoft." Competitive
Impact Statement at 9.
Unfortunately, Section III.A fails to protect the ability of OEMs to make business choices in a
non-coercive atmosphere, for reasons in addition to those discussed above concerning intellectual
property.
The conduct that is prohibited in Section III.A is actual retaliatory action by Microsoft against
OEMs for, inter alia, dual booting personal computers with other operating systems. More
specifically, Section III.A provides that "Microsoft shall not retaliate against an OEM by altering
Microsoft's commercial relations with that OEM, or by withholding newly introduced forms of
non-monetary Consideration (including but not limited to new versions of existing forms of
non-monetary Consideration) from that OEM, because it is known to Microsoft that the OEM is
or is contemplating .... " Proposed Final Judgment, Section III.A. As worded, the only point at
which injunctive relief is available is after an OEM can show actual retaliation.
The problem with prohibiting only action "after the fact," is that it provides for enforcement only
after Microsoft has taken negative action against an OEM. It is no secret that Microsoft is an
important business partner to may OEMs and even the potential or implication of the change in
an OEMs business relationship with an OEM can be sufficient to prevent action. Section III.A
does not remove the business threat that will prevent OEMs from "crossing" Microsoft.
Therefore, the parameters of the prohibitions on Microsoft's conduct need to be extended so that
enforcement is not triggered only after an OEM has been harmed. By then, it may be too late and
an OEM may find itself competitively or financially crippled by an impairment in its relationship
with Microsoft. Moreover, by the time the retaliation is remedied, the OEM may even be out of
the market. Ideally, Microsoft must be prohibited from maintaining the intimidating business
environment that it has created -- an environment that inhibits OEMs from the free exercise of
competitive decision making. The language of the Proposed Final Judgment ignores what the
Competitive Impact Statement and the Court of Appeals have acknowledged.
Thus, the actions prohibited under Section III.A must encompass a range of activities and not just
after the fact retaliation in order to ensure that Microsoft does not continue to maintain
unlawfully its monopoly. A possible modification of Section III.A is as follows:
A. Microsoft shall not retaliate against an OEM by threatening to or altering Microsoft's
commercial relations with that OEM, or by threatening to or withholding newly introduced forms
of non-monetary Consideration (including but not limited to new versions of existing forms of
non-monetary Consideration) from that OEM, because it is known to Microsoft that the OEM is
or is contemplating: ....
- Section III.D
An underlying premise of the Proposed Final Judgment is that if middleware software developers
are able to develop and market middleware that can be used on either Microsoft or non-Microsoft
operating systems or "that would have assisted competing operating systems in gaining access to
applications and other needed complements" (Competitive Impact Statement at 9), then the
competitive harm to the operating system market caused by Microsoft's unlawful maintenance of
its monopoly will be remedied.
With respect to Section III.D, the Competitive Impact Statement indicates an intent by the
Department of Justice to:
ensure[ ] that developers of competing middleware -- software that
over time could begin to erode Microsoft's Operating System monopoly -- will have full access to
the same interfaces and related information as Microsoft Middleware has to interoperate with
Windows Operating Products. Microsoft will not be able to hamper the development or operation
of potentially threatening software by withholding interface information or permitting its own
products to use hidden or undisclosed interfaces.
Competitive Impact Statement at 12.
The Proposed Final Judgment makes an effort to provide the interface and related technical
information "transparency" to the entities that the Department of Justice believes will need access
to Microsoft software in order to develop software compatible with Microsoft and non-Microsoft
operating systems. While the named entities include ISVs, however, they do not specifically
include entities that provide non-Microsoft Operating Systems. An argument can be made that
the definition for "ISVs" appears to be broad enough to include providers of non-Microsoft
operating systems because under the definition "'ISV'" means an entity other than Microsoft
engaged in the development or marketing of software products." Proposed Final Judgment,
Section VI.I. The question and possible loophole remains, however, that Microsoft might argue
that the transparency extends only to entities that develop middleware, but not to entities such as
Red Hat -- entities that provide non-Microsoft operating systems. In order to ensure that the
protections are as inclusive as possible, the definition of "Independent Software Vendor" can be
supplemented to include specifically entities that compete in the operating system market. Thus,
under the Section VI -- Definitions -- "ISV" would be modified to mean an entity other than
Microsoft that is engaged in the development, marketing or providing of software products or
services, including Operating System Providers.
- Section III.F
According to the Competitive Impact Statement, Section III.F "redresses conduct by Microsoft
specifically found unlawful by the District Court and the Court of Appeals." By addressing only
actual retaliatory conduct, however, Section III.F suffers from the same infirmity as Section III.A,
and may provide injunctive relief only after Microsoft has taken action that will harm a business
entity. Microsoft must not be prohibited only from actual retaliation, but must also be prohibited
from intimidating, threatening to withhold business from, coercing or retaliating against any ISV
or IHV because of activities that will further competing middleware or operating systems. See
comment on Section III.A, supra.
- Section III.J
As worded, Section III.J provides exceptions to Microsoft's disclosure obligations that have a
serious potential to defeat the intent of the Proposed Final Judgment. The Competitive Impact
Statement makes it clear that the exception to Microsoft's disclosure obligations is meant to be a
"narrow exception limited to specific end-user implementations of security items such as actual
keys, authorization tokens or enforcement criteria, the disclosure of which would compromise
the security of a `particular installation or group of installations' of the listed security features."
Competitive Impact Statement at 18. The nature of security, however, requires that Section III.J
should be modified so that there is a detailed specification of what Microsoft must provide under
the mandates of the Proposed Final Judgment, rather than what it is excluded from providing
within the context of security. Because of the potentially wide-ranging negative impact of this
Section, Red Hat believes some background on the nature of security is required.
All security experts agree that there is no such thing as perfect security, and indeed this
pessimistic view extends to the field of computer security. In his book "Secrets and Lies: Digital
Security in a Networked World", noted security expert Bruce Schneier explains "modem systems
have so many components and connections -- some of them not even known by the systems'
designers, implementers, or users -- that insecurities always remain. No system is perfect." If no
computer system can be made perfectly secure, then any computer system can potentially suffer a
security compromise. Moreover, it is not knowable whether the security compromise will be a
result of people having access to information about a security weakness (which they can exploit)
or people not having access to such information (which allows others to exploit something one
might otherwise be able to defend against). Thus, on the one hand, one could argue that divulging
any information whatsoever could lead to a security compromise, but on the other hand, that not
divulging any information of any kind could also lead to a security compromise. Such is the
nature of computer security (indeed, all security).
One of the main issues in the antitrust case against Microsoft is the fact that Microsoft has
controlled information about and permission to use system APIs, Documentation, licenses, and
Communications Protocols to discriminate against or retaliate against one or more parties (or
classes of parties), and has done so strategically to protect, extend, and indeed abuse its
monopoly powers. Certainly any valid remedy for this anti-trust case would enjoin Microsoft
from such conduct in the future.
While the Proposed Final Judgment attempts to set guidelines under which Microsoft would be
required to document, disclose, or license to third parties portions of APIs or Documentation or
portions or layers of Communications Protocols, Section III.J(1) carves out a specific exemption:
the case where the disclosure of such would compromise the security of anti-piracy, anti-virus,
software licensing, digital fights management, encryption or authentication systems, including
without limitation, keys, authorization tokens or enforcement criteria. While this may sound like
a fair and reasonable exemption, it is not because Microsoft could legitimately argue that any
requirement to document, disclose, or license anything to third parties could, in theory, result in a
security compromise of one or more of these systems. Such is the nature of computer security.
Thus, Section III.J(1) grants Microsoft legal protection for the very behavior that this Proposed
Final Judgment was designed to remedy.
As noted, the Competitive Impact Statement interprets Section III.J(1) as being an extremely
limited exemption, essentially only extending to specific keys and security tokens, not to
technologies, interfaces or interoperability. This interpretation, however, is not carried over to the
language of the Proposed Final Judgment, which gives almost blanket permission to Microsoft to
invoke the exemption. An appropriate modification of Section III.J(1) -- other than removing it
entirely-- is as follows:
No provision of this Final Judgment shall:
1. Require Microsoft to disclose to any specific end-user implementations of security items such
as actual end-user keys, authorization tokens, or enforcement criteria, the disclosure of which
would compromise the security of a particular installation or group of installations of the security
item. Notwithstanding the foregoing, if any such implementation of a security item requires a
specific end-user key, authorization token, enforcement criteria, or analogous information to fully
and equitably interoperate with Microsoft Platform Software, Microsoft Middleware, APIs,
Communication Protocols, Microsoft applications software, or Microsoft network services (such
as e-commerce or internet services), then Microsoft must either (a) disclose such specific
end-user key, authorization token, enforcement criteria, or analogous information, (b) provide
alternative end-user keys, authorization tokens, enforcement criteria, or analogous information
that enable third parties to fully and equitably interoperate with those software, products, or
services, or (c) disclose how to make such end-user keys, authorization tokens, enforcement
criteria, or analogous information that will fully and equitably interoperate with such software,
products, or services; Microsoft must disclose or provide such keys, authorization tokens,
enforcement criteria, or analogous information to third parties upon request and in a
nondiscriminatory manner. In no event, however, shall Microsoft reserve to itself any
functionality for such keys, authorization tokens, enforcement criteria, or analogous information.
- Section III.J(2)
Section III.J(2) presents another loophole that Microsoft can manipulate to avoid disclosure of
necessary information. Under the provisions of Section III.J(2), Microsoft is permitted to require
a certification of the "authenticity and viability" of any business seeking a license of "any API,
Documentation or Communications Protocol related to anti-piracy systems, anti-virus
technologies, license enforcement mechanisms, authentication/authorization security, or third
party intellectual property protection mechanisms of any Microsoft Product." Although the
certification is required to be pursuant to "reasonable and objective standards," those standards
are established by Microsoft and there is no independent third party approval either of the
development or of the implementation of those standards. The Competitive Impact Statements
indicates that:
the requirements of this subsection cannot be used as a pretext for denying disclosure or
licensing, but instead are limited to the narrowest scope of what is necessary and reasonable, and
are focused on screening out only individuals or firms that should not have access to or use of the
specified security-related information either because they have a history of engaging in unlawful
conduct related to computer software (e.g., they have been found to have engaged in a series of
willful violations of intellectual property rights or of one more violations consisting of conduct
such as counterfeiting), do not have any legitimate basis for needing the information, or are using
the information in a way that threatens the proper operation and integrity of the systems and
mechanisms to which they relate.
Competitive Impact Statement at 19. This will not be the case if there is no safeguard on the
development or implementation of the standards. For example, Microsoft may decide to include
financial or organizational requirements in order for a (1) an entity to be considered a "business"
and (2) an entity to be considered an "authentic and "viable" business. Microsoft may decide to
require that, in order for an entity to be a "business," it must operate in the market in a currently
"traditional" manner, such as Microsoft operates, but not as many open source companies
operate. Will a company need to undertake its own software development? Will a company need
to own and license its software? Unless Microsoft is held to certain independent guidelines or
policing, this provision may gut the intent of the Proposed Final Judgment.
The potential for abuse with this provision is particular Feat when considering the open source
development community. Most open source software is not developed or owned by a for-profit
business entity. It is the result of collaborative development, with software code contributed by
its author for the benefit of all. The restrictive language of Section III.J(2) would expressly
permit Microsoft to deny access to such open source development projects.
- COMMENTS TO VI -- DEFINITIONS
A fair reading of the Proposed Final Judgment supports that the protections extend to the direct
participants in the market in which Microsoft was found to have unlawfully maintained its
monopoly -- the providers of competing operating systems. The Proposed Final Judgment,
however, needs to ensure that the protections extend to all possible readings. It cannot be ignored
that the clear finding Upheld by the Court of Appeals is that Microsoft unlawfully maintained its
monopoly in the PC-compatible operating system market. Thus, if there is any possibility that
Microsoft can find a loophole, that possible loophole should be closed. It is in this vein that we
recommend that the definitions should be expanded to include providers of competing operating
systems -- the participants in the market in which Microsoft unlawfully has maintained its
monopoly. Operating System Providers, then, should be specifically included within the "ISV"
definition -- as recommended, supra. Furthermore, a proposed definition for Operating System
Providers follows:
"OSP" means an operating system provider that provides a non-Microsoft software code that,
inter alia, (i) controls the allocation and usage of hardware resources (such as the microprocessor
and various peripheral devices) of a Personal Computer, (ii) provides a platform for developing
applications by exposing functionality to ISVs through APIs, and (iii) supplies a user interface
that enables users to access functionality of the operating system and in which they can run
applications.
- COMMENTS TO SECTION IV -- COMPLIANCE AND ENFORCEMENT PROCEDURES
- Special Master
By not providing for the appointment of a Special Master to ensure enforcement of the Proposed
Final Judgment, the Justice Department has left the injunctive relief toothless. There is absolutely
nothing in the Proposed Final Judgment that provides a speedy vehicle for the resolution of
complaints from an independent third party, such as Red Hat, that Microsoft has violated the
Proposed Final Judgment. As suggested by the Litigating States in their proposed final judgment,
the appointment of a Special Master could be made pursuant to Rule 53 of the Federal Rules of
Civil Procedure.
- Section IV.B - Appointment of a Technical Committee
The Technical Committee ("TC") as constituted and mandated has no real authority or ability to
address quickly and thoroughly third-party complaints regarding Microsoft's compliance with the
Proposed Final Judgment. Moreover, it is structured as a committee of compromise and not
enforcement. One of the members of the TC is to be selected by Microsoft, one of the members
is selected by the plaintiffs and the third member is a joint selection. All of the members are to be
"experts in software design and programming." This narrowly restricts the scope of the TC to
technical interpretations. It takes out of the realm of the TC's expertise issues relating to business
practices and acts that may have a competitive impact on the market.
The TC should be supplemented with or assisted by a Special Master with the authority to order
compliance with the Proposed Final Judgment. The Special Master will be able to address
complaints relating to business practices as well as complaints relating to software disclosure or
use.
- Section IV.D -- Voluntary Dispute Resolution
Section D sets forth the actual procedures for the Technical Committee to follow in the event that
a third party makes a complaint regarding Microsoft's compliance with the Proposed Final
Judgment. The procedures are general and the intent is to resolve complaints, not handle issues
of enforcement. The Justice Department states that "It]his dispute resolution function reflects the
recognition that the market will benefit from rapid, consensual resolution of issues, where
possible. It complements, but does not supplant, Plaintiffs' other methods of enforcement. If the
TC concludes that a complaint is meritorious, the TC will so advise Plaintiffs and Microsoft and
propose a remedy." Competitive Impact Statement at 20. Despite this statement, the provision
does nothing to ensure a resolution of issues. There is no requirement that Microsoft accept the
remedy and no sanctions if Microsoft does not accept the remedy. In effect, there appears to be
no ultimate control on Microsoft's conduct except for a separate action or convincing the Justice
Department to seek an order to enforce the Proposed Final Judgment. This dispute resolution
provision should be removed from the TC. The Special Master should administer the process for
resolving third party complaints and have the authority to develop and administer a speedy
process for resolving complaints and to order compliance if Microsoft is found to have violated
the Proposed Final Judgment.
| Respectfully submitted,
_____________/s/_____________
PATRICIA G. BUTLER
DANIELLE R. ODDO
Howrey Simon Arnold & White, LLP
1299 Pennsylvania Ave., N.W.
Washington, D.C. 20004
(202) 783-0800
KENNETH M. FRANKEL
Finnegan, Henderson, Farabow, Garrett &
Dunner, L.L.P.
1300 1 Street, N.W.
Washington, DC 20005
(202) 408-4000
Attorneys for non-party
Red Hat, Inc. |
Dated: January 28, 2002
FOOTNOTES
1. The Litigating States have filed their own Proposed Final Judgment and, to the extent it contains additional modifications to DOJ's revised proposed Final Judgment, Red Hat supports those modifications.
2. Under the Proposed Final Judgment: OEM is an "original equipment manufacturer of Personal
Computers that is a licensee of a Windows Operating System Product"; ISV is an "entity other
than Microsoft that is engaged in the development or marketing of software products"; and IHV
is an "independent hardware vendor that develops hardware to be included in or used with a
Personal Computer running a Windows Operating System Product." See Proposed Final
Judgment, Sections VI.O, I, II.
3. "Microsoft Platform Software" is defined as including "a Windows Operating System Product"
(either alone or with a middleware product), which in turn is defined as "the software code..,
distributed commercially by Microsoft for use with Personal Computers as Windows 2000
Professional .... " Proposed Final Judgment, Section VI.L, U. An Operating System is defined as
"the software code that, inter alia, (i) controls the allocation and usage of hardware resources ...
of a Personal Computer, (ii) provides a platform for developing applications by exposing
functionality to ISVs through APIs, and (iii) supplies a user interface that enables users to access
functionality of the operating system and in which they can run applications." Id., Section VI?
4. See. also, discussion in Parts IV.B. and V, infra, concerning the definition of ISVs.
Exhibit A
Microsoft Executive Says Linux Threatens Innovation (Update1)
2/14/01 4:57 PM
Source:Bloomberg News
Redmond, Washington, Feb. 14 (Bloomberg) -- Microsoft Corp.'s Windows operating-system chief, Jim Allchin, says that freely distributed software code such as rival Linux could stifle innovation and that legislators need to understand the threat. The result will be the demise of both intellectual property rights and the incentive to spend on research and development, he said yesterday, after the company previewed its latest version of Windows. Microsoft has told U.S. lawmakers of its concern while discussing protection of intellectual property rights.
Linux is developed in a so-called open-source environment in which the software code generally isn't owned by any one company. That, as well as programs such as music-sharing software from Napster Inc., means the world's largest software maker has to do a better job of talking to policymakers, he said. ''Open source is an intellectual-property destroyer,'' Allchin said. ''I can't imagine something that could be worse than this for the software business and the intellectual-property business.'' Microsoft distributes some of its programs without charge to customers, although it generally doesn't release its programming code, and it retains the ownership rights to that code. Linux is the most widely known open-source product, though other programs including the popular Apache system for Web server computers also are developed the same way. Corel Inquiry Allchin made his comments several hours before Microsoft confirmed that its $135 million investment in software maker Corel Corp. last October is being reviewed by the U.S. Justice Department. Corel said last month it willl drop efforts to develop the Linux operating system, though it will continue to make Linux applications. Corel said it hadn't consulted with Microsoft before making that decision. Brian Behlendorf, founder of open-source company CollabNet Inc., said most companies that use the open-source development model do retain the rights to some of their intellectual property. ''I think Microsoft is trying to paint the open-source community as being fascist; that all software have has to be free, or none of it can be,'' said Behlendorf, whose company helps businesses run their own open-source projects. Allchin said he's concerned that the open-source business model could stifle initiative in the computer industry. ''I'm an American, I believe in the American Way,'' he said. ''I worry if the government encourages open source, and I don't think we've done enough education of policy makers to understand the threat.'' Linux Adoption Some leading computer companies including International Business Machines Corp. and Hewlett-Packard Co. are selling Linux- based products and working on open-source projects, noted Jeremy Allison, a VA Linux Systems Inc. software developer. He's also a leader in a project develop an open-source file and printer server program. Microsoft only began significant lobbying efforts in the last few years. The Redmond, Washington-based company also talks to lawmakers about issues including the need for more visas for people with computer skills and computer privacy and security. Linux is the fastest-growing operating system program for running server computers, according to research firm IDC. It accounted for 27 percent of unit shipments of server operating systems in 2000. Microsoft's Windows was the most popular on that basis, with 41 percent. Despite Linux's success in some markets, Allchin says he isn't concerned about sales competition from the product. Microsoft provides support to change and develop products based on its operating system software that Linux companies don't, he said. Companies that use Linux in their products then must pay someone else for support, he said. ''We can build a better product than Linux,'' he said. ''There is always something enamoring about thinking you can get something for free".
Copyright ©1995-2002 CNET Networks, Inc. All rights reserved.
Exhibit B
Microsoft CEO takes launch break with the Sun-Times June 1, 2001
It's hard to find a computer that doesn't run a Microsoft product, particularly in Chicago. Microsoft's Chicago-based Midwest district office, which covers Illinois, Indiana and Wisconsin, is the tech giant's biggest moneymaker in the country, with more than 500 customers generating $500 million in revenue annually for Microsoft.
It should come as no surprise, then, that the Seattle-area company sent its No. 2 man, CEO Steve Ballmer, for the official launch of its new Office XP software Thursday at the United Center (yes, Bill Gates went to New York).
Between appointments in a whirlwind visit to Chicago--which included a lunch with 100 local companies and back-to-back-to-back media interviews--Ballmer sat down with Chicago Sun-Times reporter Dave Newbart to discuss the local tech economy, Microsoft's dominance in the market, the federal antitrust case, Microsoft's new licensing requirements and the open-source movement (in effect, free software on the Web, which he called a ''cancer'').
Q: Boeing recently moved to Chicago. Why doesn't Microsoft relocate here?
A: [laughs] We are quite comfortable with our headquarters in Seattle. Chicago is a great city. I'm from Detroit. I like it here. But we have 20,000 people comfortably ensconced in Seattle.
Q: More seriously, in Chicago we do seem to have an inferiority complex about our place in the tech world. Rankings frequently put us toward the bottom among major cities in terms of our tech presence. How do you view the state of our tech economy?
A: I think there is a lot of great stuff going on in Chicago. There are a lot of innovative users in the Chicago area, which is exciting. We have a lot of great partners. I'll be on stage with a company called Genesis [Consulting], which I'm very excited about. We have a local partner named Calypso [Systems]. We literally have dozens of partners doing very innovative work with customers here.
I don't know what the national surveys say. Other than Silicon Valley, I think it's hard to point to any one place and say, "That's where it's all happening."
Q: Microsoft's market dominance and financial position are stronger than ever, despite the government's antitrust case and the weakening economy. Has the government's case had any impact on the way you do business?
A: There has been no legal ruling put into effect. We have and continue to innovate within the spirit and letter of the law. We continue to do what we have always done, because we think it's 100 percent correct. We add new capabilities to our product, we keep our prices low, we try to offer our customers better and better values. The laws were designed to encourage that and protect that behavior, because it's good for consumers.
Q: Microsoft has expanded to a number of markets, especially with the development of the Xbox and a smart phone. What's next, and is there any area that you don't see yourself entering?
A: We have a lot on our plate. We have a big dream about what XML (a markup language for documents containing structured information, such as words and graphics) can do for the world. The way software gets built will change over the years, which we are pursuing with our .Net platform. But we are hardly trying to do everything. I won't sit here and try to rule out that we might do other things in the future, but we have a few clear priorities.
Q: The new Windows XP software, I've seen a trial version, contains a number of free products--media player, a CD burner, an Internet firewall. Could that bundling hurt smaller competitors who make stand-alone software? Isn't this kind of bundling that you offered with Windows and Internet Explorer?
A: Just as with Internet Explorer, our job is to offer customers what they want. We are trying to provide more functionality at the same or better prices every day. [A]ll the new capabilities of Windows XP are open to software developers to add onto, to build value around. I think Windows XP ought to be a real boon to the kinds of innovations that come from smaller companies. The inclusion of Internet Explorer with Windows has been absolutely great ... for innovation in the software industry. Whether it was great for Netscape is a different question.
Q: Independent analyses of your new licensing policy indicate that unless a company upgrades its software every two years, it could face costs from one-third to double what they are paying now to upgrade. What do you think of the criticism that says Microsoft is forcing companies to upgrade to Windows XP by October or face much higher costs later?
A: We are trying to simplify our licensing practices in many ways. We are clearly providing some incentive to upgrade more regularly. Your better customers get a better price. An analysis we've done, 80 percent of our customers are going to see the same or lesser prices, and 20 percent are going to see very small to somewhat larger increases.
Q: The new software also allows a user to install it only twice. You have recently cracked down on corporate piracy and large-scale pirating operations. Are home users next?
A: Intellectual property should be protected. That's the only way that a newspaper or a software company or record company or artist can get a fair return on their work. Our goal is to try to educate people on what it means to protect intellectual property and pay for it properly. We are trying to help customers understand when they are crossing the line by putting some bumps in the road so they can't do the wrong thing.
Q: Do you view Linux and the open-source movement as a threat to Microsoft?
A: Yeah. It's good competition. It will force us to be innovative. It will force us to justify the prices and value that we deliver. And that's only healthy. The only thing we have a problem with is when the government funds open-source work. Government funding should be for work that is available to everybody. Open source is not available to commercial companies. The way the license is written, if you use any open-source software, you have to make the rest of your software open source. If the government wants to put something in the public domain, it should. Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works.
Q: You've been on this job [as CEO] almost 18 months. What has it been like replacing Bill Gates?
A: [I]n a weird and strange way I probably feel more pressure now, no reason I should, but I feel a little more pressure, responsibility. The great thing is we get a chance to do two things. Bill gets a chance to put the highest possible percentage of time into our strategy. My particular capability and focus are really about building a management team, the business processes, etc. Bill and I are going to be around for a lot of years, but we are not going to be around forever. In some senses I'll put a little more time and energy into setting us up so the business is a business that doesn't depend on one guy, even a guy who is as talented as Bill Gates.
Copyright 2000, Digital Chicago Inc.
Exhibit C
Why Microsoft is wary of open source
By Joe Wilcox and Stephen Shankland
Staff Writers, CNET News.com
June 18, 2001, 11:00 AM PT
update There's more to Microsoft's recent attacks on the open-source movement than mere rhetoric: Linux's popularity could hinder the software giant in its quest to gain control of a server market that's crucial to its long-term goals.
Recent public statements by Microsoft executives have cast Linux and the open-source philosophy that underlies it as, at the minimum, bad for competition, and, at worst, a "cancer" to everything it touches.
Behind the war of words, analysts say, is evidence that Microsoft is increasingly concerned about Linux and its growing popularity. The Unix-like operating system "has clearly emerged as the spoiler that will prevent Microsoft from achieving a dominant position" in the worldwide server operating-system market, IDC analyst Al Gillen concludes in a forthcoming report.
While Microsoft's overall operating-system market leadership is by no means in jeopardy, Linux's
continued gains make it harder for Microsoft to further its core plan for the future, Microsoft.Net. The plan is a software-as-a-service initiative similar to plans from competitors including Hewlett-Packard, IBM and Sun Microsystems.
One of the cornerstones of .Net is HailStorm, which is built around the company's Passport authentication service.
Microsoft.Net and HailStorm make use of XML (Extensible Markup Language) to pass information between computers based on Windows and computers using other operating systems. However, many .Net components--such as Passport and server-based software including the company's SQL Server database software and BizTalk e-commerce server--run only on Windows.
"The infrastructure to operate XML Web services relies on the Windows operating system and the .Net Enterprise Servers," Microsoft's marketing literature states.
Microsoft needs to control the server operating-system market if HailStorm and all the .Net services and subscriptions associated with it are to succeed, analysts say.
"HailStorm itself by definition needs Microsoft-provided or -partnered services, which means Microsoft's or its partners' servers," said Gartner analyst David Smith. "In that sense, Linux is a threat to .Net."
Microsoft is expected to spend hundreds of millions of dollars marketing and developing .Net. Virtually every product from the company ties in to the plan at some point.
While Linux hasn't displaced Windows, it has made serious inroads. Linux accounted for 27 percent of new worldwide operating-system licenses in 2000, and Microsoft captured 41 percent of new licenses, according to IDC.
Overall, Gartner estimates Linux runs on nearly 9 percent of U.S. servers shipped in the third quarter of 2000, with worldwide projected Linux server sales of nearly $2.5 billion in 2001 and about $9 billion in 2005.
But Linux continues to gain credibility, particularly because of the massive support provided by IBM, which has pledged to spend $1 billion on Linux development.
In attacking Linux and open source, Microsoft finds itself competing "not against another company, but against a grassroots movement," said Paul Dain, director of application development at Emeryville, Calif.-based Wirestone, a technology services company.
"My guess is that they are now under pressure to defend themselves against the criticism from the open-source and free-software communities--whether it's justified or not--as well as companies like IBM that are aggressively marketing Linux," Dain said. "In order to combat that, they have to use strong language to get their point across."
Increasing Linux use makes it more difficult to spread the .Net message. That, in turn, has led to a string of comments from Microsoft executives publicly denouncing
Linux and open source. "Linux is a cancer that attaches itself in an intellectual property sense to everything it touches," Chief Executive Steve Ballmer said in an interview with the Chicago Sun-Times.
Despite Microsoft's criticism, the company still uses open-source code in some products. Servers for the company's Hotmail e-mail service use FreeBSD for some DNS (domain name server) functions.
"This is a legacy issue that came from Hotmail when we originally got it," said Microsoft spokesman Rick Miller. "We haven't gone out, purchased and put into place FreeBSD. It came when we purchased other companies. We didn't build any of our infrastructure on FreeBSD. We build it on Windows."
In the mid 1980s, Microsoft licensed its TCP/IP (transmission control protocol/Internet protocol) networking stack from another company that used open-source code. "You could say it had its genesis in FreeBSD, but it's now absolutely Windows," Miller said. The code first appeared in Windows NT and also was used in Windows 2000.
Critical of change
Microsoft has also criticized the General Public License
(GPL) that governs the heart of Linux. Under this license, changes to the Linux core, or kernel, must also be governed by the GPL. The license means that if a company changes the kernel, it must publish the changes and can't keep them proprietary if it plans to distribute the code externally.
Other open-source projects, such as FreeBSD, allow changes that are kept proprietary. That
provision was one reason FreeBSD proved appealing to Wind River Systems, the dominant seller of operating systems for non-PC
"embedded" computing devices such as network routers.
Microsoft's open-source attacks come at a time when the company has been putting the pricing squeeze on customers. In early May, Microsoft revamped software licensing, raising upgrades between 33 percent and 107 percent,
according to Gartner. A large percentage of Microsoft business customers could in fact be compelled to upgrade
to Office XP before Oct. 1 or pay a heftier purchase price later on.
The action "will encourage--'force' may be a more accurate term--customers to upgrade much sooner than they had otherwise planned," Gillen noted in the IDC report. "Once the honeymoon period runs out in October 2001, the only way to 'upgrade' from a product that is not considered to be
current technology is to buy a brand-new full license.'"
This could make open-source Linux's GPL more attractive to some customers feeling trapped by the price hike, Gillen said. "Offering this form of 'upgrade protection' may motivate some users to seriously consider alternatives to Microsoft technology."
Ray Bailey, information services manager at The Bergquist Company, said a recent meeting with Microsoft changed the technology direction of his company,
which manufactures electronic components and other goods.
"Our IS team agreed that, due to Microsoft's changing of the licensing rules and the manner in which they have given us less-than-adequate
time to process those changes, we are seriously looking at other platforms," he said. "Linux is a strong contender for our next server because of the
low-cost nature of the licensing."
Internally, Microsoft seems somewhat torn on how to approach the open-source movement. While the company denounces the move toward free software, it does recognize at least some of the value of open-source development.
"Microsoft views open source as a competitor, but it's hard to treat it as a competitor," Gartner's Smith said. "So they have to attack basic tenets, mentality, way of life and thought processes."
Since last year, Microsoft has made available to hundreds of its larger customers copies of its closely guarded Windows source code. The company hopes its best customers can help it improve Windows.
Microsoft has been touting plans to broaden Windows source-code access to business partners in an initiative it calls its "shared-source philosophy."
In particular, Microsoft wants to emulate the spirit of cooperation that has spawned groups of volunteer Linux programmers. "Having a sense of
community is a good thing. It's one thing we've watched with interest," Craig Mundie, senior vice president of advanced strategies at Microsoft,
said in a recent interview. "The more of that we can foster in our community, the better."
Building a better community
Microsoft hopes to imbue its programmer network with some of this community spirit, Mundie said. "The Microsoft Developer Network hasn't been one where there was a lot of dialogue between (developers) and with Microsoft developers."
Though Microsoft will be expanding how it engages directly with those who see its source code, the company isn't going to extend the right granted to many members of the open-source community--the power to change the software. People may submit bug fixes, but "customers aren't trying to buy the rights to produce derivatives," Mundie said. "In general, we're going to control that reintegration. We worry a lot about uniformity and
avoiding fragmentation."
But how far Microsoft is willing to go with open source appears limited, said Smith, who noted that while attacking Linux, the company promises to
support the Unix variant through .Net.
It's "a nice PR story for Microsoft to talk about the possibilities about .Net on Linux," he said. "It is true that Linux can participate in those .Net services, but don't expect Microsoft to provide any incentive or anything else that would make that possible."
Dain said Microsoft's attacks on Linux and open source may in the long run benefit technology buyers. "Personally, I think the talk on both sides--Microsoft vs. open source--will end up benefiting consumers in the workplace and at home. There definitely is competition in the marketplace, and this battle simply proves the point."
And while Microsoft may have the advantage in the consumer market with Windows, it's still the underdog in the large-scale business server market.
"To many people, including myself, implementing a Microsoft solution is a much more cost-effective way to go than a Sun or other high-end Unix/mainframe solution," Dain said.
Copyright ©1995-2002 CNET Networks, Inc. All rights reserved.
Exhibit D
Microsoft license spurns open source
By Stephen Shankland
Staff Writer, CNET News.com
June 22, 2001, 12:05 PM PT
Microsoft lawyers have joined the company's campaign against open-source software, restricting how developers may use what it terms "viral software" in connection with Microsoft programming tools.
The license of the second beta version of Microsoft's Mobile Internet Toolkit--software used so programmers can create server software to connect with handheld computers over the Internet--prohibits customers from using the Microsoft software in conjunction with "potentially viral software."
In describing this category of software, Microsoft includes the most common licenses used for publishing open-source software, such as the Linux operating system. Licenses specifically excluded by Microsoft include the General Public License, the Lesser General Public License, the Mozilla Public License and the Sun Industry Standards License.
While the provision in Microsoft's license isn't surprising, Fenwick & West intellectual property attorney Dana Hayter said the company could have picked a more neutral term, such as "open software."
"The choice of the term says more about Microsoft's view than the rest of it," Hayter said. "I think it's a pejorative and misleading term. To suggest that open-source software is somehow 'viral' is to confuse harm to your customers' machines and data with harm to Microsoft's profits."
Microsoft representatives weren't immediately available for comment.
The license provision, posted Thursday at Linux Today, is the latest step in an increasingly vocal campaign by Microsoft Chairman Bill Gates, Senior Vice President Craig Mundie and Chief Executive Steve Ballmer to disparage open-source software.
The campaign, in which the executives have compared open-source software to viruses and cancer, comes at a time when some observers believe Microsoft is worried that Linux--the best-known open-source project--will undermine the Microsoft.Net strategy for joining desktop computer users with sophisticated Internet services.
Some open-source fans weren't happy with Microsoft's view of the software world and its use of the term "viral software."
"The GPL is not a virus, it is a vaccine, an inoculation against later abuse of your code by having someone, such as Microsoft, take your hard work, incorporate it into a proprietary product which is then extended and kept closed, marginalizing your project in the process," said one comment at discussion site Slashdot.
The Microsoft license seeks to prevent the possibility that a program that links both to Microsoft and open-source software components could force Microsoft to expose the now-secret source code of its software, Hayter said.
"They're saying you cannot use (Microsoft) software in a way that would create in Microsoft any obligations to do anything with (Microsoft's) code, for example to make the source public," Hayter said.
One example of a forbidden move would be to create software that used prepackaged components called libraries from Microsoft as well as a library covered by the GPL, Hayter said. Under the terms of the GPL, software covered by it may be directly incorporated only into other GPL software.
But a legally grayer area is creating software that merely calls upon such libraries rather than incorporating the library code directly. The Free Software Foundation created the LGPL license for precisely such occasions; this license allows links to proprietary software.
One example is the use of a library called "readline" that lets people use arrow keys and perform some other tasks when typing information into a computer, said PostgreSQL database developer Bruce Momjian. Because PostgreSQL is released under a BSD-style license that has different terms than the GPL, GPL code may not be freely mixed within PostgreSQL.
"If we required the readline library, then the entire PostgreSQL software would have to be GPL'd," Momjian said, noting that programs such as the BSD-licensed libedit software offer an alternative. "If you use (readline) in any application, your entire application is GPL."
Regardless of the legalities involved, the provision in the license is significant, Hatyer said. "This demonstrates they're taking open source seriously."
Copyright ©1995-2002 CNET Networks, Inc. All rights reserved.
Exhibit E
Microsoft memo touts Linux
By Mike Ricciuti
Staff Writer, CNET News.com
November 5, 1998, 11:20 AM PT
Microsoft engineers see Linux as a
"best-of-breed" Unix that outperforms the company's own Windows NT operating
system and is a "credible alternative" to commercially developed servers,
according to an internal memo posted to the Web this week.
The admission, contained in the second so-called Halloween memo posted
to the Web this week by programmer Eric Raymond, is counter to the company's
public statements downplaying the significance of Linux, and its suggestions
that Fortune 1,000 companies have little interest in open source software
(OSS).
The new memo also contains a single sentence suggesting that the company may
investigate the use of patents and copyrights to combat Linux. Microsoft
representatives were not immediately available to comment further on the
statement.
In a preface to the memo, Raymond states that the document had been leaked
to him by a former Microsoft employee. A Microsoft representative today said
the document appears to be authentic, and said it is the second in "what
could be a series" of similar memos posted to the Web.
Yesterday, a Microsoft representative downplayed the significance of the
initial memo.
According to the new memo, written by Microsoft engineer Vinod Valloppillil,
Linux "represents a best-of-breed Unix, that is trusted in mission critical
applications, and--due to its open source code--has a long
term credibility which exceeds many other competitive OS's."
In what the memo's author considers the "worst case" scenario for Microsoft,
Linux will "provide a mechanism for server OEMs to provide integrated,
task-specific products and completely bypass Microsoft revenues in this
space."
Another new revelation contained in the new memo is that Microsoft considers
Linux to be a threat on both server and client systems. "Long term, my
simple experiments do indicate that Linux has a chance at the desktop
market..," the memo states. The initial memo only cited the server market as
a competitive battleground between Linux and Windows NT, now renamed Windows
2000.
The first
memo, posted to the Web over the weekend, showed that Microsoft
executives fear that the growing popularity of Linux and other
open source software poses a direct threat to the company's revenue
stream, and suggests the company could respond by modifying open
Internet protocols to become proprietary technologies that tie consumers
and developers to Microsoft products.
In the new memo, some of the reasons for the company's fears are more clearly
defined. The memo states:
"Most of the primary apps that people require when they move to Linux
are already available for free. This includes Web servers, POP clients, mail
servers, text editors, etc."
"An advanced Win32 GUI user would have a short learning cycle to become
productive [under Linux]."
"I previously had [Internet Explorer and Windows NT] on the same
box and by comparison the combination of Linux /[Netscape
Navigator] ran at least 30 to 40 percent faster when rendering simple HTML +
graphics."
"Linux's (real and perceived) virtues over Windows NT include:
Customization. Availability/Reliability. Scalability/Performance.
Interoperability."
The author of the memo also writes that he believes consumers "love" Linux.
Copyright ©1995-2002 CNET Networks, Inc. All rights reserved.
Exhibit F
Microsoft sues Linux start-up over name
By Joe Wilcox and David Becker
Staff Writers, CNET News.com
December 20, 2001, 3:50 PM PT
update
Microsoft asked a court on Thursday to stop a Linux start-up from using a name the software giant contends infringes on the Windows trademark.
The Redmond, Wash.-based software giant filed a motion with the U.S. Court for the Western District of Washington against Lindows, which is developing a version of the Linux operating system that will run popular applications written for Microsoft's Windows OS.
Microsoft contends the company, which plans to formally release its product next year, purposely is trying to confuse Lindows with Windows. The suit asks the court to order the start-up to stop using the Lindows name and also seeks unspecified monetary damages.
"We're not asking the court to stop the company from making their products," said Microsoft spokesman Jon Murchinson. "What we're saying is they should not use a name that could confuse the public and infringe on our valuable trademark."
Lindows is based on the Wine project, an open-source effort to mimic the commands that Windows programs use. The San Diego-based Lindows company was launched earlier this year by Michael Robertson, former CEO of digital music site MP3.com.
Robertson characterized the move as another attempt by Microsoft to thwart a viable threat to its Windows empire.
"If they're alleging that people are going to be confusing Microsoft Corp. with Lindows.com, I think there's zero potential of that happening," he said. "If people are confused, just remember that we're not the convicted monopolist."
Murchinson said Microsoft considered legal action a last resort.
"Clearly we prefer to work with them to resolve this problem voluntarily. Their product name infringes on our trademark," Murchinson said. "We hope they will work with us to resolve this problem without the need for legal action."
Robertson said he had heard from nobody at Microsoft regarding the name dispute. "They just filed lawsuits," he said.
Microsoft has been involved in an increasingly fractious war of words with Linux supporters this year, with Microsoft executives castigating the open-source distribution model behind Linux as a sure road to commercial failure and on blight for software development.
Emmett Stanton, an attorney at Palo Alto, Calif.-based Fenwick & West, said Microsoft has not been overzealous in the past about protecting its trademark, allowing spoof sites and others to go unchallenged.
"They're not the type to sue at the drop of a hat," he said, concluding that there appears to be solid ground for the Lindows complaint. "Superficially, you would have to say there's some potential for confusion, and the defendant may be trying to trade on Microsoft's position in the marketplace."
Robertson said he hoped to have a preview version of Lindows ready for download by next week, with a full version ready early next year. He said the company is targeting small and medium-sized business that might be interested in switching to a less expensive operating system but have invested in Windows applications such as Office.
"We're trying to give consumers a choice, where there's really no choice today," he said.
Copyright ©1995-2002 CNET Networks, Inc. All rights reserved.
Exhibit G
|
FOR IMMEDIATE RELEASE
FRIDAY, NOVEMBER 2, 2001
WWW.USDOJ.GOV/ATR |
AT
(202) 514-2007
TDD: (202) 514-1888 |
DEPARTMENT OF JUSTICE AND MICROSOFT CORPORATION
REACH EFFECTIVE SETTLEMENT ON ANTITRUST LAWSUIT
Settlement Provides Enforcement Measures to Stop Microsoft's Unlawful Conduct,
Prevent Its Recurrence, and Restore Competition
WASHINGTON, D.C. The Department of Justice reached a settlement today with
Microsoft Corporation that imposes a broad range of restrictions that will stop Microsoft's
unlawful conduct, prevent recurrence of similar conduct in the future and restore competition in
the software market, achieving prompt, effective and certain relief for consumers and businesses.
"A vigorously competitive software industry is vital to our economy and effective antitrust
enforcement is crucial to preserving competition in this constantly evolving high-tech arena," said
Attorney General John Ashcroft. "This historic settlement will bring effective relief to the market
and ensure that consumers will have more choices in meeting their computer needs."
The settlement, which will be filed today in U.S. District Court in the District of Columbia
with Judge Colleen Kollar-Kotelly, if approved by the court, would resolve the lawsuit filed by the
Department on May 18, 1998.
"This settlement will promote innovation, give consumers more choices, and provide the
computer industry as a whole with more certainty in the marketplace," said Charles A. James,
Assistant Attorney General for the Antitrust Division. "The goals of the government were to
obtain relief that stops Microsoft from engaging in unlawful conduct, prevent any recurrence of
that conduct in the future, and restore competition in the software marketwe have achieved
those goals."
Today's proposed settlement is modeled on the conduct provisions in the original Final
Judgment entered by Judge Jackson, but includes key additions and modifications that take into
account the current and anticipated changes in the computer industry, including the launch of
Microsoft's new Windows XP operating system, and the Court of Appeals decision revising some
of the original liability findings.
The proposed Final Judgment includes the following key provisions:
Broad Scope of Middleware Products The proposed Final Judgment applies a broad
definition of middleware products which is wide ranging and will cover all the technologies that
have the potential to be middleware threats to Microsoft's operating system monopoly. It
includes browser, e-mail clients, media players, instant messaging software, and future new
middleware developments.
Disclosure of Middleware Interfaces Microsoft will be required to provide software
developers with the interfaces used by Microsoft's middleware to interoperate with the operating
system. This will allow developers to create competing products that will emulate Microsoft's
integrated functions.
Disclosure of Server Protocols The Final Judgment also ensures that other non-Microsoft server software can interoperate with Windows on a PC the same way that Microsoft
servers do. This is important because it ensures that Microsoft cannot use its PC operating
system monopoly to restrict competition among servers. Server support applications, like
middleware, could threaten Microsoft's monopoly.
Freedom to Install Middleware Software--Computer manufacturers and consumers will
be free to substitute competing middleware software on Microsoft's operating system.
Ban on Retaliation--Microsoft will be prohibited from retaliating against computer
manufacturers or software developers for supporting or developing certain competing software.
This provision will ensure that computer manufacturers and software developers are able to take
full advantage of the options granted to them under the proposed Final Judgment without fear of
reprisal.
Uniform Licensing Terms Microsoft will be required to license its operating system to
key computer manufacturers on uniform terms for five years. This will further strengthen the ban
on retaliation.
Ban on Exclusive Agreements Microsoft will be prohibited from entering into
agreements requiring the exclusive support or development of certain Microsoft software. This
will allow software developers and computer manufacturers to contract with Microsoft and still
support and develop rival middleware products.
The proposed Final Judgment also includes key additional provisions related to
enforcement:
Licensing of Intellectual Property Microsoft also will be required to license any
intellectual property to computer manufacturers and software developers necessary for them to
exercise their rights under the proposed Final Judgment, including for example, using the
middleware protocols disclosed by Microsoft to interoperate with the operating system. This
enforcement measure will ensure that intellectual property rights do not interfere with the rights
and obligations under the proposed Final Judgment.
On-Site Enforcement Monitors The proposed settlement also adds an important
enforcement provision that provides for a panel of three independent, on-site, full-time computer
experts to assist in enforcing the proposed Final Judgment. These experts will have full access to
all of Microsoft's books, records, systems, and personnel, including source code, and will help
resolve disputes about Microsoft's compliance with the disclosure provisions in the Final
Judgment.
The core allegation in the lawsuit, upheld by the Court of Appeals in June 2001, was that
Microsoft had unlawfully maintained its monopoly in computer-based operating systems by
excluding competing software products known as middleware that posed a nascent threat to the
Windows operating system.
Specifically, the Court of Appeals found that Microsoft engaged in unlawful exclusionary
conduct by using contractual provisions to prohibit computer manufacturers from supporting
competing middleware products on Microsoft's operating system; prohibiting consumers and
computer manufacturers from removing Microsoft's middleware products from the operating
system; and reaching agreements with software developers and third parties to exclude or
disadvantage competing middleware products.
The proposed Final Judgment will be published by the Federal Register, along with the
Department's Competitive Impact Statement, as required by the Antitrust Procedures and
Penalties Act. Any person may submit written comments concerning the proposed consent decree
within 60 days of its publication to: Renata Hesse, Trial Attorney, 325 7th Street, N.W., Suite 500,
Washington, D.C. 20530, (202-616-0944). At the conclusion of the 60-day comment period, the
Court may enter the proposed consent decree upon a finding that it serves the public interest.
The proposed Final Judgment will be in effect for a five year period and may be extended
for an additional two-year period if the Court finds that Microsoft has engaged in multiple
violations of the proposed Final Judgment.
###
01-569
|
Exhibit H
Patent Number |
Title |
Issue Date |
6330670 |
Digital rights management operating system |
11-Dec-01 |
6330589 | System and method for using a client database to manage
conversation threads generated from email or news messages | 11-Dec-01 |
6330566 | Apparatus and method for optimizing client-state data storage | 11-Dec-01
| 6330563 | Architecture for automated data analysis | 11-Dec-01
| 6330003 | Transformable graphical regions | 11-Dec-01
| 6327705 | Method for creating and maintaining user data | 04-Dec-01
| 6327702 | Generation a compiled language program for an interpretive runtime
environment | 04-Dec-01
| 6327699 | Whole program path profiling | 04-Dec-01
| 6327652 | Loading and identifying a digital rights management operating
system | 04-Dec-01
| 6327617 | Method and system for identifying and obtaining computer software
fro a remote computer | 04-Dec-01
| 6327608 | Server administration tool using remote file browser | 04-Dec-01
| 6327589 | Method for searching a file having a format unsupported by a
search engine | 04-Dec-01
| 6326964 | Method for sorting 3D object geometry among image chunks for
rendering in a layered graphics rendering system | 04-Dec-01
| 6326953 | Method for converting text corresponding to one keyboard mode to
text corresponding to another keyboard more | 04-Dec-01
| 6326947 | Ractile character input in computer-based devices | 04-Dec-01
| 6324587 | Method, computer program product, and data structure for
publishing a data object over a store and forward transport | 27-Nov-01
| 6324571 | Floating single master operation | 27-Nov-01
| 6324546 | Automatic logging of application program launches | 27-Nov-01
| 6324544 | File object synchronization between a desktop computer and a
mobile device | 27-Nov-01
| 6324492 | Server stress testing using multiple concurrent client simulation | 27-Nov-01
| 6321334 | Administering permissions associated with a security zone in a
computer system security model | 20-Nov-01
| 6321276 | Recoverable methods and systems for processing input/output
requests including virtual memory addresses | 20-Nov-01
| 6321275 | Interpreted remote procedure calls | 20-Nov-01
| 6321274 | Multiple procedure calls in a single request | 20-Nov-01
| 6221243 | Laying out a paragraph by defining all the characters as a single
text run by substituting, and then positioning the glyphs | 20-Nov-01
| 6321226 | Flexible keyboard searching | 20-Nov-01
| 6321225 | Abstracting cooked variables from raw variables | 20-Nov-01
| 6321219 | Dynamic symbolic links for computer file systems | 20-Nov-01
| 6320978 | Stereo reconstruction employing a layered approach and layer
refinement techniques | 20-Nov-01
| 6317880 | Patch source list management | 13-Nov-01
| 6317818 | Pre-fetching of pages prior to a hard page fault sequence | 13-Nov-01
| 6317774 | Providing predictable scheduling of programs using a repeating
precomputed schedule | 13-Nov-01
| 6317760 | Extensible ordered information within a web page | 13-Nov-01
| 6317748 | Management information to object mapping and correlator | 13-Nov-01
| 6314562 | Method and system for anticipatory optimization of computer
programs | 06-Nov-01
| 6314533 | System and method for forward custom marshaling event filters | 06-Nov-01
| 6314417 | Processing multiple database transactions in the same process to
reduce process overhead and redundant retrieval from database servers | 06-Nov-01
| 6313851 | User friendly remote system interface | 06-Nov-01
| 6311323 | Computer programming language statement building and information
tool | 30-Oct-01
| 6311228 | Method and architecture for simplified communications with HID
devices | 30-Oct-01
| 6311216 | Method, computer program product, and system for client-side
deterministic routing and URL lookup into a distributed cache of URLS | 30-Oct-01
| 6311209 | Methods for performing client-hosted application sessions in
distributed processing systems | 30-Oct-01
| 6308274 | Least privilege via restricted tokens | 23-Oct-01
| 6308273 | Method and system of security location discrimination | 23-Oct-01
| 6308266 | System and method for enabling different grades of cryptography
strength in a product | 23-Oct-01
| 6308222 | Transcoding of audio data | 23-Oct-01
| 6308173 | Methods and arrangements for contro??ing resource access in a
networked computing environment | 23-Oct-01
| 6307566 | Methods and apparatus for performing image rendering and
rasterization operations | 23-Oct-01
| 6307547 | Method and system for providing enhanced folder racks | 23-Oct-01
| 6307538 | EMC enhanced peripheral device | 23-Oct-01
| 6305008 | Automatic statement completion | 16-Oct-01
| 6304928 | Compressing/decompressing bitmap by performing exclusive- or
operation setting differential encoding of first and previous row therewith
outputting run-length encoding of row | 16-Oct-01
| 6304918 | Object interface control system | 16-Oct-01
| 6304917 | Negotiating optimum parameters in a system of interconnected
components | 16-Oct-01
| 6304914 | Method and apparatus for pre-compression packaging | 16-Oct-01
| 6304879 | Dynamic data cache for object-oriented computing environments | 16-Oct-01
| 6304878 | Method and system for improved enumeration of tries | 16-Oct-01
| 6304261 | Operating system for handheld computing device having program icon
auto hide | 16-Oct-01
|
6304258 |
Method and system for adding application defined properties and
application defined property sheet pages |
16-Oct-01
|
6303924 | Image sensing operator input device | 16-Oct-01
| 6301616 | Pledge-based resource allocation system | 09-Oct-01
| 6301612 | Establishing one computer as a replacement for another computer | 09-Oct-01
| 6301601 | Disabling and enabling transaction committal in transactional
application components | 09-Oct-01
| 6298440 | Method and system for providing multiple entry point code
resources | 02-Oct-01
| 6298391 | Remote procedure calling with marshaling and unmarshaling of
arbitrary non-conformant pointer sizes | 02-Oct-01
| 6298373 | Local service provider for pull based intelligent caching system | 20-Oct-01
| 6298342 | Electronic database operations for perspective transformations on
relational tables using pivot and unpivot columns | 02-Oct-01
| 6298321 | Trie compression using substates and utilizing pointers to replace
or merge identical, reordered states | 02-Oct-01
| 6297837 | Method of maintaining characteristics information about a system
component either modified by an application program or a user initiated change | 02-Oct-01
| 6295608 | Optimized allocation of data elements among cache lines | 25-Sep-01
| 6295556 | Method and system for configuring computers to connect to networks
using network connection objects | 25-Sep-01
| 6295529 | Method and apparatus for indentifying clauses having predetermined
characteristics indicative of usefulness in determining relationships between
different texts | 25-Sep-01
| 6292934 | Method and system for improving the locality of memory references
during execution of a computer program | 18-Sep-01
| 6292857 | Method and mechanism for coordinating input of asynchronous data | 18-Sep-01
| 6292840 | Voice/audio data communication with negotiated compression scheme
and data header compressed in predetermined scheme | 18-Sep-01
| 6292834 | Dynamic bandwidth selection for efficient transmission of
multimedia streams in a computer network | 18-Sep-01
| 6292822 | Dynamic load balancing among processors in a parallel computer | 18-Sep-01
| 6292194 | Image compression method to reduce pixel and texture memory
requirements in graphics applications | 18-Sep-01
| 6289464 | Receiving wireless information on a mobile device with reduced
power consumption | 11-Sep-01
| 6289458 | Perproperty access control mechanism | 11-Sep-01
| 6289390 | System and method for performing remote requests with an on-line
service network | 11-Sep-01
| 6288726 | Method for rendering glyphs using a layout services library | 11-Sep-01
| 6288720 | Method and system for adding application defined properties and
application defined property sheet pages | 11-Sep-01
| 6286131 | Debugging tool for linguistic applications | 04-Sep-01
| 6286013 | Method and system for providing a common name space for long and
short file names in an operating system | 04-Sep-01
| 6285998 | System and method for generating reusable database queries | 04-Sep-01
| 6285374 | Blunt input device cursor | 04-Sep-01
| 6285363 | Method and system for sharing applications between computer
systems | 04-Sep-01
| 6282712 | Automatic software installation on heterogeneous networked
computer systems | 28-Aug-01
| 6282621 | Method and apparatus for reclaiming memory | 28-Aug-01
| 6282561 | Method and system for resource management with independent real-time applications on a common set of machines | 28-Aug-01
| 6282327 | Maintaining advance widths of existing characters that have been
resolution enhanced | 28-Aug-01
| 6282294 | System for broadcasting to, and programming, a motor device in a
protocol, device, and network independent fashion | 28-Aug-01
| 6281881 | System and method of adjusting display characteristics of a
displayable data file using an ergonomic computer input device | 28-Aug-01
| 6281879 | Timing and velocity control for displaying graphical information | 28-Aug-01
| 6279111 | Security model using restricted tokens | 21-Aug-01
| 6279032 | Method and system for quorum resource arbitration in a server
cluster | 21-Aug-01
| 6279016 | Standardized filtering control techniques | 21-Aug-01
| 6279007 | Architecture for managing query friendly hierarchical values | 21-Aug-01
| 6278989 | Histogram construction using adaptive random sampling with cross-validation for database systems | 21-Aug-01
| 6278462 | Flexible schemes for applying properties to information in a
medium | 21-Aug-01
| 6278450 | System and method for customizing controls on a toolbar | 21-Aug-01
| 6278448 | Composite Web page built from any web content | 21-Aug-01
| 6278434 | Non-square scaling of image data to be mapped to pixel sub-components | 21-Aug-01
| 6275957 | Using query language for provider and subscriber registrations | 14-Aug-01
| 6275938 | Security enhancement for untrusted executable code | 14-Aug-01
| 6275912 | Method and system for storing data items to a storage device | 14-Aug-01
| 6275868 | Script Engine interface for multiple languages | 14-Aug-01
| 6275857 | System and method for freeing shared resources in a computer
system | 14-Aug-01
| 6275829 | Representing a graphic image on a web page with a thumbnail-sized
image | 14-Aug-01
| 6275496 | Content provider for pull based intelligent caching system | 14-Aug-01
| 6272631 | Protected storage of core data secrets | 07-Aug-01
| 6272593 | Dynamic network cache directories | 07-Aug-01
| 6272581 | System and method for encapsulating legacy data transport
protocols for IEEE 1394 serial bus | 07-Aug-01
| 6272545 | System and method for interaction between one or more mobile
devices | 07-Aug-01
| 6271858 | Incremental update for dynamic/animated textures on three-dimensional models | 07-Aug-01
| 6271855 | Interactive construction of 3D models from panoramic images
employing hard and soft constraint characterization and decomposing techniques | 07-Aug-01
| 6271847 | Inverse texture mapping using weighted pyramid blending and view-dependent weight maps | 07-Aug-01
| 6271839 | Method and system for sharing applications between computer
systems | 07-Aug-01
| 6269477 | Method and system for improving the layout of a program image
using clustering | 31-Jul-01
| 6269403 | Browser and publisher for multimedia object storage, retrieval and
transfer | 31-Jul-01
| 6269382 | Systems and methods for migration and recall of data from local
and remote storage | 31-Jul-01
| 6269377 | System and method for managing locations of software components
via a source list | 31-Jul-01
| 6368855 | Method and system for sharing applications between computer
systems | 31-Jul-01
| 6268852 | System and method for facilitating generation and editing of event
handlers | 31-Jul-01
| 6266729 | Computer for encapsulating legacy data transport protocol for IEEE
1394 serial bus | 24-Jul-01
| 6266665 | Indexing and searching across multiple sorted arrays | 24-Jul-01
| 6266658 | Index tuner for given workload | 24-Jul-01
| 6266064 | Coherent visibility sorting and occlusion cycle detection for
dynamic aggregate geometry | 24-Jul-01
| 6266059 | User interface for switching between application modes | 24-Jul-01
| 6266054 | Automated removal of narrow, elongated distortions from a digital
image | 24-Jul-01
| 6266043 | Apparatus and method for automatically positioning a cursor on a
control | 24-Jul-01
| 6263492 | Run time object layout model with object type that differs from
the derived object type in the class structure at design time and the ability
to store the optimized run time object layout model | 17-Jul-01
| 6263491 | Heavyweight and lightweight instrumentation | 17-Jul-01
| 6263379 | Method and system for referring to and binding to objects using
identifier objects | 17-Jul-01
| 6263367 | Server-determined client refresh periods for dynamic directory
services | 17-Jul-01
| 6263352 | Automated web site creation using template driven generation of
active server page applications | 17-Jul-01
| 6263337 | Scalable system for expectation maximization clustering of large
detabases | 17-Jul-01
| 6263334 | Density-based indexing method for efficient execution of high
dimensional nearest-neighbor queries on large databases | 17-Jul-01
| 6262733 | Method of storing and providing icons according to application
program calls and user-prompted system metric changes | 17-Jul-01
| 6262730 | Intelligent user assistance facility | 17-Jul-01
| 6262712 | Handle sensor with fade-in | 17-Jul-01
| 6260148 | Methods and systems for message forwarding and property
notifications using electronic subscriptions | 10-Jul-01
| 6260043 | Automatic file format converter | 10-Jul-01
| 6256780 | Method and system for assembling software components | 03-Jul-01
| 6256668 | Method for identifying and obtaining computer software from a
network computer using a tag | 03-Jul-01
| 6256650 | Method and system for automatically causing editable text to
substantially occupy a text frame | 03-Jul-01
| 6256642 | Method and system for file system management using a flash-erasable, programmable, read-only memory | 03-Jul-01
| 6256634 | Method and system for purging tombstones for deleted data items in
a replicated database | 03-Jul-01
| 6256623 | Network search access construct for accessing web-based search
services | 03-Jul-01
| 6256069 | Generation of progressive video from interlaced video | 03-Jul-01
| 6256031 | Integration of physical and virtual namespace | 03-Jul-01
| 6256028 | Dyanmic site browser | 03-Jul-01
| 6256013 | Computer pointing device | 03-Jul-01
| 6256009 | Method for automatically and intelligently scrolling handwritten
input | 03-Jul-01
| 6253374 | Method for validating a signed program prior to execution time or
an unsigned program at execution time | 26-Jun-01
| 6253324 | Server verification of requesting clients | 26-Jun-01
| 6253255 | System and method for batching data between transport and link
layers in a protocol stack | 26-Jun-01
| 6253241 | Selecting a cost-effective bandwidth for transmitting information
to an end user in a computer network | 26-Jun-01
| 6253195 | Optimized query tree | 26-Jun-01
| 6253194 | System and method for performing database queries using a stack
machine | 26-Jun-01
| 6252608 | Method and system for improving shadowing in a graphics rendering
system | 26-Jun-01
| 6252593 | Assisting controls in a windowing environment | 26-Jun-01
| 6252589 | Multilingual user interface for an operating system | 26-Jun-01
| 6249908 | System and method for representing graphical font data and for
converting the font data to font instructions | 19-Jun-01
| 6249866 | Encrypting file system and method | 19-Jun-01
| 6249826 | System and method for media status notification | 19-Jun-01
| 6249822 | Remote procedure call method | 19-Jun-01
| 6249792 | On-line dynamic file shrink facility | 19-Jun-01
| 6249284 | Directional navigation system in layout managers | 19-Jun-01
| 6249274 | Computer input device with inclination sensors | 19-Jun-01
| 6247061 | Method and computer program product for scheduling network
communication packets originating from different flows having unique service
requirements | 12-Jun-01
| 6247057 | Network server supporting multiple instance of services to operate
concurrently by having endpoint mapping subsystem for mapping virtual network
names to virtual endpoint IDs | 12-Jun-01
| 6247042 | Method and system for restoring the state of physical memory as
the focus changes among application programs in a computer | 12-Jun-01
| 6246977 | Information retrieval utilizing semantic representation of text
and based on constrained expansion of query words | 12-Jun-01
| 6246412 | Interactive construction and refinement of 3D models from multiple
panoramic images | 12-Jun-01
| 6246409 | Method and system for connecting to, browsing, and accessing
computer network resources | 12-Jun-01
| 6246404 | Automatically generating code for integrating context-sensitive
help functions into a computer software application | 12-Jun-01
| 6243825 | Method and system for transparently failing over a computer name
in a server cluster | 05-Jun-01
| 6243821 | System and method for managing power consumption in a computer
system | 05-Jun-01
| 6243766 | Method and system for updating software with smaller patch files |
| 6243764 | Method and system for aggregating objects | 05-Jun-01
| 6243753 | Method, system, and computer program product for creating a raw
data channel form an integrating component to a series of kernel mode filters | 05-Jun-01
| 6243721 | Method and apparatus for providing automatic layout capabilities
for computer forms | 05-Jun-01
| 6243701 | System and method for sorting character strings containing
accented and unaccented characters | 05-Jun-01
| 6243093 | Methods, apparatus and data structures for providing a user
interface, which exploits spatial memory in three-dimensions, to objects and
which visually groups matching objects | 05-Jun-01
| 6243070 | Method and apparatus for detecting and reducing color artifacts in
images | 05-June-01
| 6240472 | Method and system for sharing a communications port | 29-May-01
| 6240465 | Method and system for aggregating objects | 29-May-01
| 6240456 | System and method for collecting printer administration
information | 29-May-01
| 6239814 | Method for indicating the existence of a control object | 29-May-01
| 6239783 | Weighted mapping of image data samples to pixel sub-components on
a display device | 29-May-01
| 6237144 | Use of relational databases for software installation | 22-May-01
| 6236390 | Methods and apparatus for positioning displayed characters | 22-May-01
| 6233731 | Program-interface converter for multiple-platform computer systems | 15-May-01
| 6233624 | System and method for layering drivers | 15-May-01
| 6233606 | Automatic cache synchronization | 15-May-01
| 6233570 | Intelligent user assistance facility for a software program | 15-May-01
| 6232976 | Optimizing dynamic/animating textures for use in three-dimensional
models | 15-May-01
| 6232974 | Decision-theoretic regulation for allocating computational
resources among components of multimedia content to improve fidelity | 15-May-01
| 6232972 | Method for dynamically displaying controls in a toolbar display
based on control usage | 15-May-01
| 6232966 | Method and system for generating comic panels | 15-May-01
| 6232958 | Input device with multiplexed switches | 15-May-01
| 6232957 | Technique for implementing an on-demand tool glass for use in a
desktop user interface | 15-May-01
| 6230318 | Application programs constructed entirely from autonomous
component objects | 08-May-01
| 6230312 | Automatic detection of per-unit location constraints | 08-May-01
| 6230269 | Distributed authentication system and method | 08-May-01
| 6230212 | Method and system for the link tracking of objects | 08-May-01
| 6230173 | Method for creating structured documents in a publishing system | 08-May-01
| 6230172 | Production of a video stream with synchronized annotations over a
computer network | 08-May-01
| 6230159 | Method for creating object inheritance | 08-May-01
| 6230156 | Electronic mail interface for a network server | 08-May-01
| 6229539 | Method for merging items of containers of separate program modules | 08-May-01
| 6229537 | Hosting windowed objects in a non-windowing environment | 08-May-01
| 6226747 | Method for preventing software piracy during installation from a
read only storage medium | 01-May-01
| 6226742 | ciphertext message through use of a message authentication code
formed through cipher block chaining of the plaintext message | 01-May-01
| 6226689 | Method and mechanism for interprocess communication using client
and server listening threads | 01-May-01
| 6226665 | Application execution environment for a small device with partial
program loading by a resident operating system | 01-May-01
| 6226635 | Layered query management | 01-May-01
| 6226628 | Cross-file pattern-matching compression | 01-May-01
| 6226407 | Method and apparatus for analyzing computer screens | 01-May-01
| 6226017 | Methods and apparatus for improving read/modify/write operations | 01-May-01
| 6225973 | Mapping samples of foreground/background color image data to pixel
sub-components | 01-May-01
| 6223292 | Authorization systems, methods, and computer program products | 24-Apr-01
| 6223212 | Method and system for sharing negotiating capabilities when
sharing an application with multiple systems | 24-Apr-01
| 6223207 | Input/output completion port queue data structures and methods for
using same | 24-Apr-01
| 6223171 | What-if index analysis utility for database systems | 24-Apr-01
| 6222937 | Method and system for tracking vantage points from which pictures
of an object have been taken | 24-Apr-01
| 6222182 | Apparatus and method for sampling a phototransistor | 24-Apr-01
| 6219782 | Multiple user software debugging system | 17-Apr-01
| 6219675 | Distribution of a centralized database | 17-Apr-01
| 6219025 | Mapping image data samples to pixel sub-components on a striped
display device | 17-Apr-01
| 6216177 | Method for transmitting text data for shared application between
first and second computer asynchronously upon initiation of a session without
solicitation from first computer | 10-Apr-01
| 6216175 | Method for upgrading copies of an original file with same update
data after normalizing differences between copies created during respective
original installations | 10-Apr-01
| 6216154 | Methods and apparatus for entering and evaluating time dependence
hypotheses and for forecasting based on the time dependence hypotheses entered | 10-Apr-01
| 6216141 | System and method for integrating a document into a desktop window
on a client computer | 10-Apr-01
| 6216134 | Method and System for visualization of clusters and
classifications | 10-Apr-01
| 6215503 | Image generator and method for resolving non-binary cyclic
occlusions with image composting operations | 10-Apr-01
| 6215496 | Sprites with depth | 10-Apr-01
| 6212676 | Event architecture for system management in an operating system | 03-Apr-01
| 6212617 | Parallel processing method and system using a lazy parallel data
type to reduce inter-processor communication | 03-Apr-01
| 6212574 | User mode proxy of kernel mode operations in a computer operating
system | 03-Apr-01
| 6212553 | Method for sending and receiving flags and associated data in e-mail transmissions | 03-Apr-01
| 6212541 | System and method for switching between software applications in
multi-window operating system | 03-Apr-01
| 6212526 | Method for apparatus for efficient mining of classification models
from databases | 03-Apr-01
| 6212436 | Dynamic inheritance of software object services | 03-Apr-01
| 6209093 | Technique for producing a privately authenticatable product copy
indicia and for authenticating such an indicia | 27-Mar-01
| 6209089 | Correcting for changed client machine hardware using a server-based operating system | 27-Mar-01
| 6209088 | Computer hibernation implemented by a computer operating system | 27-Mar-01
| 6209041 | Method and computer program product for reducing inter-buffer data
transfers between separate processing components | 27-Mar-01
| 6209040 | Method and system for interfacing to a type library | 27-Mar-01
| 6209011 | Handheld computing device with external notification system | 27-Mar-01
| 6208996 | Mobile device having notification database in which only those
notifications that are to be presented in a limited predetermined time period | 27-Mar-01
| 6208952 | Method and system for delayed registration of protocols | 27-Mar-01
| 6208337 | Method and system for adding application defined properties and
application defined property sheet pages | 27-Mar-01
| 6205561 | Tracking and managing failure-susceptible operations in a computer
system | 27-Mar-01
| 6205498 | Method and system for message transfer session management | 20-Mar-01
| 6205492 | Method and computer program product for interconnecting software
drivers in kernel mode | 20-Mar-01
| 6202202 | Pointer analysis by type inference for programs with structured
memory objects nd potetially inconsistent memory object accesses | 13-Mar-01
| 6202121 | System and method for improved program launch time | 13-Mar-01
| 6202089 | Method for configuring at runtime, identifying and using a
plurality of remote procedure call endpoints on a single server process | 13-Mar-01
| 6202085 | System and method for incremental change synchronization between
multiple copies of data | 13-Mar-01
| 6201549 | System and method for drawing and painting with bitmap brushes | 13-Mar-01
| 6201540 | Graphical interface components for in-dasn automotive accessories | 13-Mar-01
| 6199166 | Method and system for managing data while sharing application
programs | 06-Mar-01
| 6199107 | Partial file caching and read range resume system and method | 06-Mar-01
| 6199082 | Method for delivering separate design and content in a multimedia
publishing system | 06-Mar-01
| 6199081 | Automatic tagging of documents and exclusion by content | 06-Mar-01
| 6199061 | Method and apparatus for providing dynamic help topic titles to a
user | 27-Mar-01
| 6198852 | View synthesis from plural images using a trifocal tensor data
structure in a multi-view parallax geometry | 06-Feb-01
| 6195655 | Automatically associating archived multimedia content with | 27-Feb-01
| 6195622 | Methods and apparatus for building attribute transition
probability models for use in pre-fetching resources | 27-Feb-01
| 6192487 | Method and system for remapping physical memory | 20-Feb-01
| 6192432 | Caching uncompressed data on a compressed drive | 20-Feb-01
| 6192360 | Methods and apparatus for class fying text and for building a text
classifier | 20-Feb-01
| 6191790 | Inheritable property shading system for three-dimensional
rendering of user interface controls | 20-Feb-01
| 6189146 | System and method for software licensing | 13-Feb-01
| 6189143 | Method and system for reducing an intentional program tree
represented by high-level computational constructs | 13-Feb-01
| 6189100 | Ensuring the integrity of remote boot client data | 13-Feb-01
| 6189069 | Optimized logging of data elements to a data storage device | 13-Feb-01
| 6189019 | Computer system and computer-implemented process for presenting
document connectivity | 13-Feb-01
| 6189016 | Journaling ordered changes in a storage volume | 13-Feb-01
| 6189000 | System and method for accessing user properties from multiple
storage mechanisms | 13-Feb-01
| 6188405 | Methods, apparatus and data structures for providing a user
interface, which exploits spatial memory, to objects | 13-Feb-01
| 6188401 | Script-based user interface implementation defining components
using a text markup language | 13-Feb-01
| 6188387 | Computer input peripheral | 13-Feb-01
| 6188358 | Method and apparatus for displaying images such as text | 13-Feb-01
| 6185579 | Method and system for expanding a buried stack frame | 06-Feb-01
| 6185569 | Linked data structure integrity verification system which verifies
actual node information with expected node information stored in a table | 06-Feb-01
| 6185568 | Classifying data packets processed by drivers included in a stack | 06-Feb-01
| 6185564 | Generation and validation of reference handles in a multithreading
environment | 06-Feb-01
| 6184891 | Fog simulation for partially transparent objects | 06-Feb-01
| 6182286 | Dynamic versioning system for multiple users of multi-module
software systems | 30-Jan-01
| 6182160 | Method and system for using editor objects to connect components | 30-Jan-01
| 6182133 | Method and apparatus for display of information prefetching and
cache status having variable visual indication based on a period of time since
prefetching | 30-Jan-01
| 6182108 | method and system for multi-threaded processing | 30-Jan-01
| 6182029 | Method and system for converting between structured language
elements and objects embeddable in a document | 30-Jan-01
| 6182086 | Client-server computer system with application recovery of server
applications and client applications | 30-Jan-01
| 6181351 | Synchronizing the moveable mouths of animated characters with
recorded speech | 30-Jan-01
| 6178529 | Method and system for resource monitoring of disparate resources
in a server cluster | 23-Jan-01
| 6178423 | System and method for recycling numerical values in a computer
system | 23-Jan-01
| 6177945 | Advanced graphics controls | 23-Jan-01
| 6175916 | Common-thread inter-process function calls invoked by jumps to
invalid addresses | 16-Jan-01
| 6175900 | Hierarchical bitmap-based memory manager | 16-Jan-01
| 6175879 | Method and system for migrating connections between receive-any
and receive-direct threads | 16-Jan-01
| 6175878 | Integration of systems management services with an underlying
system object model | 16-Jan-01
| 6175863 | Storage of sitemaps at server sites for holding information
regarding content | 16-Jan-01
| 6175834 | Consistency checker for documents containing Japanese text | 16-Jan-01
| 6175833 | System and method for interactive live online voting with tallies
for updating voting results | 16-Jan-01
| 6173421 | Centrally handling runtime errors | 09-Jan-01
| 6173406 | Authentication systems, methods, computer program products | 09-Jan-01
| 6173404 | Software object security mechanism | 09-Jan-01
| 6173325 | Method computer program product, and system for assessing the
performance of a packet schedule | 09-Jan-01
| 6173317 | Streaming and displaying a video stream with synchronized
annotations over a computer network | 09-Jan-01
| 6172354 | Operator input device | 09-Jan-01
| 6169993 | Method, data structure, and computer program product for object
state storage | 02-Jan-01
| 6169984 | Global incremental type search navigation directly from printable
keyboard character input | 02-Jan-01
| 6169983 | Index merging for database systems | 02-Jan-01
| 6169546 | Global viewer scrolling system | 02-Jan-01
| 6167565 | Method and system of custom marshaling of inter-language
parameters | 26-Dec-00
| 6167423 | Concurrency control of state machines in a computer system using
cliques | 26-Dec-00
| 6166738 | methods, apparatus and data structures for providing a user
interface, which exploits spatial memory in three-dimensions, to objects | 26-Dec-00
| 6166732 | Distributed object oriented multi-user domain with multimedia
presentations | 26-Dec-00
| 6163855 | method and system for replicated and consistent modifications in a
server cluster | 19-Dec-00
| 6163841 | Technique for producing privately authenticatable cryptographic
signatures and for authenticating such signatures | 19-Dec-00
| 6163809 | System and method for preserving delivery status notification when
moving from a native network to a foreign network | 19-Dec-00
| 616377 | System and method for reducing location conflicts in a database | 19-Dec-00
| 6163324 | Median calculation using SIMD operations | 19-Dec-00
| 6161176 | System and method for storing configuration settings for transfer
from a first system to a second system | 12-Dec-00
| 6161130 | Technique which utilizes a probabilistic classifier to detect
"junk" e-mail by automatically updating a training and re-training the
classifier based on the updated training set | 12-Dec-00
| 6161084 | Information retrieval utilizing semantic representation of text by
identify hyponyms and indexing multiple tokenized semantic structures to a
same passage of text | 12-Dec-00
| 6160553 | Methods, apparatus and data structures for providing a user
interface, which exploits spatial memory in three-dimensions, to objects and
in which object occlusion is avoided | 12-Dec-00
| 6160550 | Shell extensions for an operating system | 12-Dec-00
| 6157942 | Imprecise caching of directory download responses for dynamic
directory services | 05-Dec-00
| 6157905 | Identifying language and character set of data representing text | 05-Dec-00
| 6157747 | 3-dimensional image rotation method and apparatus for producing
image mosaics | 05-Dec-00
| 6157618 | Distributed internet user experience monitoring system | 05-Dec-00
| 6157383 | Control polyhedra for a three-dimensional (3D) user interface | 05-Dec-00
| 6154843 | Secure remote access computing system | 28-Nov-00
| 6154767 | Methods and apparatus for using attribute transition probability
models for pre-fetching resources | 28-Nov-00
| 6154220 | Rectilinear layout | 28-Nov-00
| 6154219 | System and method for optimally placing labels on a map | 28-Nov-00
| 6154205 | Navigating web-based content in a television-based system | 28-Nov-00
| 6151708 | Determining program update availability via set intersection over
a sub-optical pathway | 21-Nov-00
| 6151632 | Method and apparatus for distributed transmission of real-time
multimedia information | 21-Nov-00
| 6151618 | Safe general purpose virtual machine computing system | 21-Nov-00
| 6151607 | Database computer system with application recovery and dependency
handling write cache | 21-Nov-00
| 6151022 | Method and apparatus for statically testing visual resources | 21-Nov-00
| 6148325 | Method and system for protecting shared code and data in a
multitasking operating system | 14-Nov-00
| 6148304 | Navigating multimedia content using a graphical user interface
with multiple display regions | 14-Nov-00
| 6148296 | Automatic generation of database queries | 14-Nov-00
| 6147685 | System and method for editing group information | 14-Nov-00
| 6145003 | Method of web crawling utilizing address' mapping | 07-Nov-00
| 6144964 | Methods and apparatus for tuning a match between entities having
attributes | 07-Nov-00
| 6144378 | Symbol entry system and methods | 07-Nov-00
| 6144377 | Providing access to user interface elements of legacy application
programs | 07-Nov-00
| 6141722 | Method and apparatus for reclaiming memory | 31-Oct-00
| 6141705 | System for querying a peripheral device to determine its
processing capabilities and then offloading specific processing tasks from a
host to the peripheral device when needed | 31-Oct-00
| 6141696 | Secure decentralized object exporter | 31-Oct-00
| 6141018 | Method and system for displaying hypertext documents with visual
effects | 31-Oct-00
| 6141003 | Channel bar user interface for an entertainment System | 31-Oct-00
| 6138128 | Sharing and organizing world wide web references using distinctive
characters | 24-Oct-00
| 6138112 | Test generator for database management systems | 24-Oct-00
| 6137492 | Method and system for adaptive refinement of progressive meshes | 24-Oct-00
| 6137491 | Method and apparatus for reconstructing geometry using
geometrically constrained structure from motion with points on planes | 24-Oct-00
| 6134658 | Multi-server location-independent authentication certificate
management system | 17-Oct-00
| 6134602 | Application programming interface enabling application programs to
group code and data to control allocation of physical memory in a virtual
memory system | 17-Oct-00
| 6134596 | Continuous media file server system and method for scheduling
network resources to play multiple files having different data transmission
rates | 17-Oct-00
| 6134594 | Multi-user, multiple tier distributed application architecture
with single-user access control of middle tier objects | 17-Oct-00
| 6134582 | System and method for managing electronic mail messages using a
client-based database | 17-Oct-00
| 6134577 | Method and apparatus for enabling address lines to access the high
memory area | 17-Oct-00
| 6134566 | Method for controlling an electronic mail preview pane to avoid
system disruption | 17-Oct-00
| 6133925 | Automated system and method for annotation using callouts | 17-Oct-00
| 6133917 | Tracking changes to a computer software application when creating
context-sensitive help functions | 17-Oct-00
| 6133915 | System and method for customizing controls on a toolbar | 17-Oct-00
| 6131192 | Software installation | 10-Oct-00
| 6131102 | Method and system for cost computation of spelling suggestions and
automatic replacement | 10-Oct-00
| 6131051 | Interface between a base module and a detachable faceplate in an
in-dash automotive accessory | 10-Oct-00
| 6128737 | Method and apparatus for producing a message authentication code
in a cipher block chaining operation by using linear combinations of an
encryption key | 10-Oct-00
| 6128713 | Application programming interface enabling application programs to
control allocation of physical memory in a virtual memory system | 03-Oct-00
| 6128661 | Integrated communications architecture on a mobile device | 03-Oct-00
| 6128653 | Method and apparatus for communication media commands and media
data using the HTTP protocol | 03-Oct-00
| 6128633 | Method and system for manipulating page-breaks in an electronic
document | 03-Oct-00
| 6128629 | Method and apparatus, for automatically updating data files in a
slide presentation program | 03Oct-O0
| 6128012 | User interface for a portable data management device with limited
size and processing capability | 03-Oct-00
| 6125373 | Identifying a driver that is an owner of an active mount point | 26-Sep-00
| 6125369 | Continuous object sychronization between object stores on
different computers | 26-Sep-00
| 6125366 | Implicit session context system with object state cache | 26-Sep-00
| 6125352 | System and method for conducting commerce over a distributed
network | 26-Sep-00
| 6122658 | Custom localized information in a networked server for display to
art end user | 19-Sep-00
| 6122649 | Method and system for user defined and linked properties | 19-Sep-00
| 6122644 | System for halloween protection in a database system | 19-Sep-00
| 6121981 | Method and system for generating arbitrary-shaped animation in the
user interface of a computer | 19-Sep-00
| 6121968 | Adaptive menus | 19-Sep-00
| 6121964 | Method and system for automatic persistence of controls in a
windowing environment | 19-Sep-00
| 6119153 | Accessing content via installable data sources | 12-Sep-00
| 6119131 | Persistent volume mount points | 12-Sep-00
| 6119120 | Computer implemented methods for constructing a compressed data
structure from a data string and for using the data structure to find data
patterns in the data string | 12-Sep-00
| 6119115 | Method and computer program product for reducing lock contention
in a multiple instruction execution stream processing environment | 12-Sep-00
| 6115708 | Method for refining the initial conditions for clustering with
applications to small and large database clustering | 05-Sep-00
| 6115705 | Relational database system and method for query processing using
early aggregation | 05-Sep-00
| 6112216 | Method and system for editing a table in a document | 29-Aug-00
| 6112214 | Method and system for the direct manipulation of cells in an
electronic spreadsheet program or the like | 29-Aug-00
| 6111574 | Method and system for visually indicating a selection query | 29-Aug-00
| 63111567 | Seamless multimedia branching | 29-Aug-00
| 6110227 | systems and methods for pre-processing variable initializers | 29-Aug-00
| 6108784 | Encryption of applications to ensure authenticity | 22-Aug-00
| 6108715 | Method and system for invoking remote procedure calls | 22-Aug-00
| 6108706 | Transmission announcement system and method for announcing
upcoming data transmissions over a broadcast network | 22-Aug-00
| 6108661 | system for instance customization | 22-Aug-00
| 6108006 | Method and system for view-dependent refinement of progressive
meshes | 22-Aug-00
| 6106575 | Nested parallel language preprocessor for converting parallel
language programs into sequential code | 22-Aug-00
| 6105041 | Using three-state references to manage garbage collection of
referenced objects | 15-Aug-00
| 6105039 | Generation and validation of reference, handles | 15-Aug-00
| 6105038 | Hysteresis System and method for achieving a mean constant cost
per action in a computer system | 15-Aug-00
| 6105024 | System for memory management during run formation for external
sorting in database system | 15-Aug-00
| 6104377 | Method and system for displaying an image at a desired level of
opacity | 15-Aug-00
| 6104359 | Allocating display information | 15-Aug-00
| 6102967 | Testing a help system of a computer software application without
executing the computer software application | 15-Aug-00
| 6101546 | Method and system for providing data files that are partitioned by
delivery time and data type | 08-Aug-00
| 6101513 | Method and apparatus for displaying database information according
to a specified print layout and page for mat | 08-Aug-00
| 6101510 | Web browser control for incorporating web browser functionality
into application programs | 08-Aug-00
| 6101499 | Method and computer program product for automatically generating
an internet protocol (IP) address | 08-Aug-00
| 6101325 | Parameterized packaging system for programming languages | 08-Aug-00
| 6098081 | Hypermedia navigation using soft hyperlinks | 01-Aug-00
| 6097888 | Method and system for reducing an intentional program tree
represented by high-level computational constructs | 01-Aug-00
| 6097854 | Image mosaic construction system and apparatus with patch-based
alignment, global block adjustment and pair-wise motion-based local warping | 01-Aug-00
| 6097392 | Method and system of altering an attribute of a graphic, object in
a pen environment | 01-Aug-00
| 6097380 | Continuous media stream control | 01-Aug-00
| 6097371 | System and method of adjusting display characteristics of a
displayable data file using an ergonomic computer input device | 01-Aug-00
| 6096095 | Producing persistent representations of complex data structures | 01-Aug-00
| 6094680 | system and method for managing distributed resources networks | 25-Jul-00
| 6094679 | Distribution of software in a computer network environment | 25-Jul-00
| 6092208 | System and method for waking a computer having a plurality of
power resources from a system state using a data structure | 18-Jul-00
| 6092144 | Method and system for interrupt-responsive execution of
communications protocols | 18-Jul-00
| 6092067 | Desktop information manager for recording and viewing important
events data structure | 18-Jul-00
| 6091411 | Dynamically updating themes for an operating system shell | 18-Jul-00
| 6091409 | Automatically activating a browser with internet shortcuts on the
desktop | 18-Jut-00
| 6088739 | Method and system for dynamic, object clustering | 11-Jul-00
| 6088718 | Meth0ds and apparatus for using resource transition probability
models for pre-fetching resources | 11-Jul-00
| 6088711 | Method and system for defining and applying a style to a paragraph | 11-Jul-00
| 6088708 | System and method for creating an online table from a layout of
objects | 11-Jul-00
| 6088511 | Nested Parallel 2D Delaunay triangulation method | 11-Jul-00
| 6088041 | Method of dropout control for scan conversion of a glyph
comprising a plurality of discrete segments | 11-Jul-00
| 6086618 | Method and computer program product for estimating total resource
usage requirements of a server application in a hypothetical user
configuration | 11-Jul-00
| 6085247 | Server operating system for supporting multiple client-server
sessions and dynamic reconnection of users to previous sessions using
different, computers | 04-Jul-00
| 6085226 | Method and apparatus for utility-directed prefetching of web pages
into local cache using continual computation and user models | 04-Jul-00
| 6085206 | Method and system for verifying accuracy of spelling and
grammatical composition of a document | 04-Jul-00
| 6084592 | Interactive construction of 3D models from panoramic images | 04-Jul-00
| 6084582 | Method and apparatus for recording a voice narration to accompany
a slide show | 04-Jul-00
| 6083282 | Cross-project namespace compiler and method | 04-Jul-00
| 6081898 | Unification of directory service with file system service | 27-Jun-00
| 6081846 | Method and computer program product for reducing intra-system data
copying during network packet processing | 27-Jul-00
| 6081816 | Method for placing text around Polygons and other constraints | 27-Jun-00
| 6081802 | System and method for accessing compactly stored map element
information from memory | 27-Jun-00
| 6081775 | Bootstrapping sense, characterizations of occurrences of
polysemous words in dictionaries | 27-Jun-00
| 6081598 | Cryptographic system and method with fast decryption | 27-Jun-00
| 6081264 | optimal frame rate selection user interface | 27-Jun-00
| 6078999 | Recovering from a failure using a transaction table in connection
with shadow copy transaction processing | 20-Jun-00
| 6078942 | Resource management for multimedia devices in a computer | 20-Jun-00
| 6078746 | Method and system for reducing an intentional program tree
represented by high-level computational constructs | 20-Jun-00
| 6077313 | Type partitioned dataflow analyses | 20-Jun-00
| 6076100 | Server-side chat monitor | 13-Jun-00
| 6976051 | Information retrieval utilizing semantic representation of text | 13-Jun-00
| 6075545 | Methods and apparatus for storing, accessing and processing images
through the use of row and column Pointers | 13-JUn-00
| 6075540 | Storage of appearance attributes in association with wedges in a
mesh data model for computer graphics | 13-Jun-00
| 6075532 | Efficient redrawing of animated windows | 13-Jun-00
| 6073226 | system and method for minimizing page tattles in virtual memory
systems | 06-Jun-00
| 6073214 | Method and system for identifying and obtaining, computer software
from a remote computer | 06-Jun-00
| 6073137 | Method for updating and displaying the hierarchy of a data store | 06-Jun-00
| 6072950 | Pointer analysis by type inference combined with a non-pointer
analysis | 06-Jun-00
| 6072496 | Method and system for capturing and representing 3D geometry,
color and shading of facial expressions and other animated objects | 06-Jun-00
| 6072486 | System and method for creating and customizing a deskbar | 06-Jun-00
| 6072485 | Navigating with direction keys in an environment that permits
navigating with tab keys | 06-Jun-00
| 6072480 | Method and apparatus for controlling composition and performance
of soundtracks to accompany a slide show | 06-Jun-00
| 6070007 | Method and system for reducing an intentional program tree
represented by high-level computational constructs | 30-May-00
| 6069622 | Method and system for generating comic panels | 30-May-00
| 6067639 | Method for integrating automated software testing with software
development | 23-May-00
| 6067578 | Container independent control architecture | 23-May-00
| 6067569 | Fast-forwarding and filtering of network packets in a computer
system | 23-May-00
| 6067565 | Technique for prefetching a web page of potential future interest
in lieu of continuing a current information download | 23-May-00
| 6067559 | Server architecture for segregation of dynamic content generation
applications into separate process spaces | 23-May-00
| 6067551 | Computer implemented method for simultaneous multi-user editing of
a document | 23-May-00
| 6067550 | Database computer system with application recovery and dependency
handling, write cache | 23-May-00
| 6067547 | Hash table expansion and contraction for use with internal
searching | 23-May-00
| 6067541 | Monitoring document changes in a file system of documents with the
document change information stored in a persistent log | 23-May-00
| 6067412 | Automatic bottleneck detection by means of workload reconstruction
from performance measurements | 23-May-00
| 6067095 | Method for generating mouth features of an animated or physical
character | 23-May-00
| 6067087 | Method for building menus during idle times | 23-May-00
| 6065035 | Method and system for procedure boundary detection | 16-May-00
| 6065020 | Dynamic adjustment of garbage collection | 16-May-00
| 6065012 | System and method for displaying and manipulating user-relevant
data | 16-May-00
| 6065011 | System and method for manipulating a categorized data set | 16-May-00
| 6065008 | System and method for secure font subset distribution | 16-MAY-00
| 6065003 | System and method for finding the closest match 0f a data entry | 16-May-00
| 6064999 | Method and system for efficiently performing database table
aggregation using a bitmask-based index | 16-May-00
| 6064406 | Method and system for caching presentation data of a source object
in a presentation cache | 16-MAY-00
| 6064393 | Method for measuring the fidelity of warped image layer
approximations in a real-time graphics rendering pipeline | 16-May-00
| 6064383 | Method and system for selecting an emotional appearance and
prosody for a graphical character | 16-May-00
| 6061792 | System and method for fair exchange of time-independent
information goods over a network | 09-May-00
| 6061695 | Operating system shell having a windowing graphical user interface
with a desktop displayed as a hypertext multimedia document | 09-MAY-00
| 6061692 | System and method for administering a meta database as an integral
component of an information server | 09-May-00
| 6061684 | Method and system for controlling user access to a resource in a
networked computing environment | 09-May-00
| 6061677 | Data base query system and method | 09-May-00
| 6059838 | Method and system for licensed design and use of software objects | 09-May-00
| 6058263 | Interface hardware design using internal and e external interfaces | 02-May-00
| 6057841 | System and method for processing electronic messages with rules
representing a combination of conditions, actions or exceptions | 02-May-00
| 6057837 | On-screen indentification and manipulation of sources that an
object depends upon | 02-May-00
| 6057836 | System and method for resizing and rearranging a composite
toolbar by direct manipulation | 02-May-00
| 6055548 | Computerized spreadsheet with auto-calculator | 25-Apr-00
| 6055314 | system and method for secure purchase and very of video content-
Programs | 25-Apr-00
| 6054989 | Methods, apparatus and data structures for providing a user
interface, which exploits spatial memory in three-dimensions, to objects and
which provides spatialized audio | 25-Apr-00
| 6052735 | Electronic mail object synchronization between a desktop computer
and mobile device | 18-Apr-00
| 6052710 | System and method for making function calls over a distributed
network | 18-Apr-00
| 6052707 | Preemptive multi-tasking with cooperative groups of tasks | 18-Apr-00
| 6052698 | Reorganization of collisions in a hash bucket of a hash table to
improve system performance | 18-Apr-00
| 6052697 | Reorganization of collisions in a hash bucket of a hash table to
improve system performance | 18-Apr-00
| 6049869 | Method and system detecting and identifying text or data encoding
system | 11-Apr-00
| 6049809 | Replication optimization system and method | 11-Apr-00
| 6049805 | Dynamic event mechanism for objects with associational
relationships | 11-Apr-00
| 6049671 | Method for identifying and obtaining computer software from a
network computer | 11-Apr-00
| 6049663 | Method and facility for uninstalling a computer program package | 11-Apr-00
| 6049636 | Determining a rectangular box encompassing a digital picture
within a digital image | 11-Apr-00
| 6049341 | Edge cycle collision detection in graphics environment | 11-Apr-00
| 6047307 | Providing application programs with unmediated access to a
contested hardware resource | 04-Apr-00
| 6047300 | System and method for automatically correcting a misspelled word | 04-Apr-00
| 6047297 | Method and- system for editing actual work records | 04-Apr-00
| 6046744 | Selective refinement of progressive meshes | 04-Apr-00
| 6044408 | Multimedia device interface for retrieving and exploiting software
and hardware capabilities | 28-Mar-00
| 6044387 | Single command editing of multiple files | 28-Mar-00
| 6044366 | Use of the UNPIVOT relational operator in the efficient gathering
of sufficient statistics for data mining | 28-Mar-00
| 6044181 | Focal length estimation method and apparatus for Construction of
panoramic mosaic images | 28-Mar-00
| 6044155 | Method and system for securely archiving core data secrets | 28-Mar-00
| 6043826 | Transferring outline fonts to devices requiring raster fonts | 28-Mar-00
| 6043817 | Method and apparatus for arranging displayed graphical
representations on a computer interface | 28-Mar-00
| 6041359 | Data delivery system and method for delivering computer data over
a broad, cast network | 21-Mar-00
| 6041345 | Active stream format for holding multiple media streams | 21-Mar-00
| 6041333 | Method and apparatus for automatically updating a data file from a
network | 21-Mar-00
| 6041311 | Method and apparatus for item recommendation using automated
collaborative filtering | 21-Mar-00
| 6040841 | Method and system for virtual cinematography | 21-Mar-00
| 6038628 | System and method for encapsulating legacy data transport
Protocols for IEEE 1394 serial bus | 14-Mar-00
| 6038610 | Storage of sitemaps at server sites for holding information
regarding content | 14-Mar-00
| 6038567 | Method and system for propagating object properties in a desktop
publishing program | 14-Mar-00
| 6038551 | System and method for configuring and managing resources on a
multi-purpose integrated circuit card using a personal computer | 14-Mar-00
| 6037932 | Method for sending computer network data as part of vertical
blanking interval | 14-Mar-00
| 6036495 | interactive simulation including force feedback | 14-Mar-00
| 6035379 | Transaction processing for user data employing both togging and
shadow copying | 07-Mar-00
| 6035342 | Method and computer program product for implementing object
relationships | 07-Mar-00
| 6035327 | SMTP extension to preserve per-message and per-recipient
properties | 07-Mar-00
| 6035269 | Method for detecting stylistic errors and generating replacement
strings in a document containing Japanese text | 07-Mar-00
| 6035119 | Method and apparatus for automatic generation of text and
computer-executable code | 07-Mar-00
| 6032197 | Data packet header compression for unidirectional transmission | 29-Feb-00
| 6032188 | Method and system for controlling data flow | 29-Feb-00
| 6031989 | Method of formatting and displaying nested documents | 29-Feb-00
| 6031534 | Operating system function for specifying a checked image
representation and an unchecked image representation of a menu item | 29-Feb-00
| 6031518 | Ergonomic input device | 29-Feb-00
| 6029200 | Automatic protocol rollover in streaming multimedia data delivery
system | 22-Feb-00
| 6029147 | Method and system for providing an interface for supporting
multiple formats for on-line banking services | 22-Feb-00
| 6028604 | User friendly remote system interface providing previews of
applications | 22-Feb-00
| 6026417 | Desktop publishing software for automatically changing the layout
of content-filled documents | 15-Feb-00
| 6026416 | System and method for storing, viewing, editing, and processing
ordered sections having different file formats | 15-Feb-00
| 6026239 | Run-time code compiler for data block transfer | 15-Feb-00
| 6026238 | Interface conversion modules based upon generalized templates for
multiple platform computer systems | 15-Feb-00
| 6026233 | Method and apparatus for presenting and selecting options to
modify a programming language statement | 15-Feb-00
| 6025841 | Method for managing simultaneous display of multiple windows in a
graphical user interface | 15-Feb-00
| 6023744 | Method and mechanism for freeing disk space in a file system | 08-Feb-00
| 6023714 | Method and system for dynamically adapting the layout of a
document to an output device | 08-Feb-00
| 6023710 | System and method for long-term administration of archival storage | 08-Feb-00
| 6023523 | Method and system for digital plenoptic imaging | 08-Feb-00
| 6023275 | System and method for resizing an input Position indicator for a
user interface of a computer system | 08-Feb-00
| 6023272 | Continuously accessible computer system interface | 08-Feb-00
| 6021412 | Method and system for automatically adding graphics to a document
to illustrate concepts referred to therein | 01-Feb-00
| 6021262 | System and method for detection of, notification of, and automated
repair of problem conditions in a messaging system | 01-Feb-00
| 6021203 | Coercion resistant one-time-pad cryptosystem that facilitates
transmission of messages having different levels of security | 01-Feb-00
| 6018619 | Method, system and apparatus for client-side usage tracking of
information server systems | 25-Jan-00
| 6018349 | Patch-based alignment method and apparatus for construction of
image mosaics | 25-Jan-00
| 6018340 | Robust display management in a multiple monitor environment | 25-Jan-00
| 6016520 | Method of viewing at a client viewing station a multiple media
title stored at a server and containing a plurality of topics utilizing
anticipatory caching | 18-Jan-00
| 6016515 | Method, computer program product, and data structure for
validating creation of and routing messages to file object | 18-Jan-00
| 6016508 | Server-determined client refresh periods for dynamic directory
services | 18-Jan-00
| 6016497 | Methods and system for storing and accessing embedded information
in object-relational databases | 18-Jan-00
| 6016492 | Forward extensible property modifiers for formatting information
in a program module | 18-Jan-00
| 6016488 | Method arid System for constructing queries | 18-Jan-00
| 6016150 | Sprite compositor and method for performing lighting and shading
operations using a compositor to combine factored image layers | 18-Jan-00
| 6016145 | Method and system for transforming the geometrical shape of a
display window for a computer system | 18-Jan-00
| 6014744 | State governing the performance of optional booting operations | 11-Jan-00
| 6014733 | Method and System for creating a perfect hash using an offset
table | 11-Jan-00
| 6014706 | Methods and apparatus for implementing control functions in a
streamed vide° display system | 11-Jan-00
| 6014701 | Selecting a cost-effective bandwidth for transmitting information
to an end user in a computer network | 11-Jan-00
| 6014681 | Method for saving a document using a background save thread | 11-Jan-00
| 6014666 | Declarative and programmatic access control of component-based
server applications using roles | 11-Jan-00
| 6014518 | Terminating polymorphic type inference program analysis | 11-Jan-00
| 6012096 | Method and system for peer-to-peer network latency measurement | 04-Jan-00
| 6012075 | Method and System for background grammar checking an electronic
document | 04-Jan-00
| 6012058 | Scalable system for K-means clustering of large databases | 04-Jan-00
| 6012052 | resources, editing resource link topology, building resource link
topology templates, and collaborative filtering | 04-Jan-00
| 6009459 | Intelligent automatic searching for resources in a distributed
environment | 28-Dec-99
| 6009462 | Apparatus and methods for optimally using available computer
resources for task execution during idle-time based on probabilistic
assessment of future task instances | 28-Dec-99
| 6009441 | Selective response to a comment line in a computer file | 28-Dec-99
| 6009190 | Texture map construction method and apparatus for displaying
panoramic image mosaics | 28-Dec-99
| 6009188 | Method and system for digital plenoptic imaging | 28-Dec-99
| 6008820 | processor for controlling the display of rendered image layers and
method for controlling same | 28-Dec-99
| 6008816 | Method and system for managing color specification using
attachable palettes and palettes that refer to other palettes | 28-Dec-99
| 6008807 | Method and system for controlling the display of objects in a
slide show presentation | 28-Dec-99
| 6008806 | Shell extensions for an, operating system | 28-Dec-99
| 6008803 | System for displaying programming information | 287Dec-99
| 6008799 | Method and system for entering data using an improved on-screen
keyboard | 28-Dec-99
| 600633 | Recovery of online sessions for dynamic directory services | 21-Dec-99
| 6006241 | Production of a video stream with synchronized annotations over a
computer network | 21-Dec-99
| 6006239 | Method and system for allowing multiple users to simultaneously
edit a spreadsheet | 21-Dec-99
| 6006218 | Methods and apparatus for retrieving and/or processing retrieved
information as a function of a user's estimated knowledge | 21 -Dec-99
| 6005582 | Method and system for texture mapping images with anisotropic
filtering | 21-Dec-99
| 6005575 | Foreground window determination through, process and thread
initialization | 21-Dec-99
| 6005551 | Offline force effect rendering | 21-Dec-99
| 6003108 | Method and system for interrupt-responsive execution of
communications protocols | 14-Dec-99
| 6003097 | System for automatically configuring a network adapter without
manual intervention by using a registry data structure maintained within a
computer system memory | 14-Dec-99
| 6003061 | Method and system for scheduling the use of a computer system
resource using a resource planner and a resource provider | 14-Dec-99
| 6003050 | Method for integrating a virtual machine with input method editors | 14-Dec-9
| 6002852 | Method and system for confirming receipt of data opportunistically
broadcast to client computer systems | 14-Dec-99
| 5999996 | Adapter for wirelessly interfacing a full-size stand alone
keyboard with a handheld computing device | 07-Dec-99
| 5999986 | Method and system for providing an event system infrastructure | 07-Dec-99
| 5999979 | Method and apparatus for determining a most advantageous protocol
for use in a computer network | 07-Dec-99
| 5999938 | System and method for creating a new data structure in memory
populated with data from an existing data structure | 07-Dec-99
| 5999896 | Method and system for identifying and resolving commonly confused
words in a natural language parser | 07-Dec-99
| 5999711 | Method and system for providing certificates holding
authentication and authorization information for users/machines | 07-Dec-99
| 5995997 | Apparatus and methods for optimally allocating currently available
computer resources to future task instances versus continued execution of
current task instances | 30-Nov-99
| 5995940 | Method and system for editing multivalued properties of an object | 30-Nov-99
| 5995922 | Identifying information related to an input word in an electronic
dictionary | 30-Nov-99
| 5991804 | Continuous media file server for cold restriping following
capacity change by repositioning data blocks in the multiple data servers | 23-Nov-99
| 5991802 | Method and system for invoking methods of objects over the
internet | 23-Nov-99
| 5991794 | Component integration system for an application program | 23-Nov-99
| 5991777 | System and method for performing defined actions when grafting the
name space of one storage medium into the name space of another storage medium | 23-No799
| 5990905 | System provided child window controls | 23-Nov-99
| 5990904 | Method and system for merging pixel fragments in a graphics
rendering system | 23-Nov-99
| 5990901 | Model based image editing and correction | 23-Nov-99
| 5990899 | Method for compressing journal streams | 23-Nov-99
| 5990886 | Graphically creating e-mail distribution lists with geographic
area selector on map | 23-Nov-99
| 5990883 | Unified presentation of programming from different physical
sources | 23-Nov-99
| 5990871 | Ergonomic pointing device | 23-Nov-99
| 5987517 | System having a library of protocol independent reentrant network
interface functions for providing common calling interface for communication
and application protocols | 16-Nov-99
| 5987481 | Method and apparatus for using label references in spreadsheet
formulas | 16-Nov-99
| 5987376 | System and method for the distribution and synchronization of data
and state information between clients in a distributed processing system | 16-Nov-99
| 5987257 | Metafile optimization | 16-Nov-99
| 5987164 | Block adjustment method and apparatus for construction of image
mosaics | 16-Nov-99
| 5986675 | System and method for animating an object in three-dimensional
space using a two-dimensional input device | 16-Nov-9
| 5986668 | Deghosting method and apparatus for construction of image mosaics | 16-Nov-99
| 5986623 | System and method for interlaced display device data transmission | 16-Nov-99
| 5983274 | Creation and use of control information associated with packetized
network data by protocol drivers and device drivers | 09-Nov-99
| 5983242 | Method and system for preserving document integrity | 09-Nov-99
| 5983240 | Method and system of converting data from a source file system to
a target file system | 09-Nov-99
| 5982389 | Generating optimized motion transitions for computer animated
objects | 09-Nov-99
| 5982381 | Method and apparatus for modifying a cutout image for compositing | 09-Nov-99
| 5978815 | File system primitive Providing native file system support for
remote storage | 02-Nov-99
| 5978814 | Native data signatures in a file system | 02-Nov-99
| 5978802 | System and method for providing opportunistic file access in a
network environment | 02-Nov-99
| 5978795 | Temporally ordered binary search method and system | 02-Nov-99
| 5978566 | Client side deferred actions within multiple MAPI profiles | 02-Nov-99
| 5978484 | system and method for safety distributing executable objects | 02-Nov-99
| 5977977 | Method and system for multi-pass rendering | 02-Nov-99
| 5977973 | window linking | 02-Nov-99
| 5977971 | free view control | 02-Nov-99
| 5977966 | System-provided window elements having adjustable dimensions | 02-Nov-99
| 5977951 | System and method for substituting an animated character when a
remote control physical character is unavailable | 02-Nov-99
| 5974483 | Multiple transparent access to in put peripherals | 26-Oct-99
| 5974454 | Method and system for installing and updating program module
components | 26-Oct-99
| 5974427 | Method and computer system for implementing concurrent accesses of
a database record by multiple users | 26-Oct-99
| 5974421 | Cache-efficient object loader | 26-Oct-99
| 597416 | Method of creating a tabular data stream for sending rows of data
between client and server | 26-Oct-99
| 5974410 | Method and system for filtering in a uniform data interface | 26-Oct-99
| 5974409 | System and method for locating information in an on-line network | 26-Oct-99
| 5970496 | Method and system for storing information in a computer system
memory using hierarchical data node relationships | 19-Oct-99
| 5970173 | Image compression and affine transformation for image motion
compensation | 19-Oct-99
| 5968121 | Method and apparatus for representing and applying network
topological data | 19-oct-99
| 5966719 | Method for inserting capitalized Latin characters in a non-Latin
document | 12-Oct-99
| 5966716 | Automatic spreadsheet forms | 12-Oct-99
| 5966705 | Tracking a user across both secure and non-secure areas on the
Internet wherein the users is initially tracked using a globally unique
identifier | 12-Oct-99
| 5966686 | Method and system for computing semantic logical forms from syntax
trees | 12-Oct-99
| 5966140 | Method- for creating progressive simplicial complexes | 12-Oct-99
| 5966133 | Geomorphs and variable resolution control of progressive meshes | 12-Oct-99
| 5964886 | Method and system for recovering text from a damaged electronic
file | 12-Oct-99
| 5964843 | System for enhancing device drivers | 12-Oct-99
| 5963945 | Synchronization of a client and a server in a prefetching resource
allocation system | 05-Oct-99
| 5963894 | Method and system for bootstrapping statistical processing into a
rule-based natural language Parser | 05-Oct-99
| 5963893 | Identification of words in Japanese text by a computer system | 05-Oct-99
| 5963209 | Encoding and progressive transmission of progressive meshes | 05-Oct-99
| 5963197 | 3-D cursor positioning device | 05-Oct-99
| 5961591 | Downloading data while rejection of its use may be overridden | 05-Oct-99
| 5960423 | Database system index selection using candidate index selection
for a workload | 28-Sep-99
| 5959621 | System and method for displaying data items in a ticker display
pane on a client computer | 28-Sep-99
| 5958004 | Disabling and enabling transaction committal in transactional
application components | 28-Sep-99
| 5956724 | Method for compressing a data file using a separate dictionary
file | 21-Sep-99
| 5956721 | Method and computer program product for classifying network
communication packets processed in a network stack | 21-Sep-99
| 5956715 | Method and system for controlling user access to a resource in a
networked computing environment | 21-Sep-99
| 5956509 | System and method for performing remote requests with an 0n-line
service network | 21-Sep-99
| 5956489 | Transaction replication system and method for supporting
replicated transaction-based services | 21-Sep-99
| 5956483 | System and method for making function calls from a web browser to
a local application | 21-Sep-99
| 5956481 | Method and apparatus for protecting data files on a computer from
virus infection | 21-Sep-99
| 5956033 | Document control interface and method for graphical message
document software | 21-Sep-99
| 5953729 | Using sparse file technology to stage data that will then be
stored in remote storage | 14-Sep-99
| 5953012 | Method and system for connecting to, browsing, and accessing
computer network resources | 14-Sep-99
| 5951694 | Method of redirecting a client service session to a second
application server without interrupting the session by forwarding service-specific it]formation to the second server | 14-Sep-99
| 5951653 | Method and system for coordinating access to objects of different
thread types in a shared memory space | 14-Sep-99
| 5950221 | Variably-sized kernel memory stacks | 07-Sep-99
| 5950193 | Interactive records and groups of records in an address book
database | 07-Sep-99
| 5950186 | Database system index selection using cost evaluation of a
workload for multiple candidate index configurations | 07-Sep-99
| 5949975 | Method and system for negotiating capabilities when sharing an
application program with multiple computer systems | 07-Sep-99
| 5949430 | Peripheral lenses for simulating peripheral vision on a display
device | 07-Sep-99
| 5949429 | Method for performing pixel addressing operations for a tiled
image | 07-Sep-99
| 5949428 | Method and apparatus for resolving pixel data in a graphics
rendering system | 07-Sep-99
| 5949418 | Operating system for handheld computing device having graphical
window minimization/enlargement functionality | 07-Sep-99
| 5948113 | System and method for centrally handling runtime errors | 07-Sep-99
| 5946698 | Database computer system with application recovery | 31-Aug-99
| 5946697 | Rapid transfer of HTML files | 31-Aug-99
| 5946696 | Object property lists | 31-Aug-99
| 5946691 | Method of presenting, storing, and updating a filing identifier
for a data record | 31-Aug-99
| 5946648 | Identification of words in Japanese text by a computer system | 31-Aug-99
| 5945987 | Interactive entertainment network system and method for providing
short sets of preview video trailers | 31-Aug-99
| 5945981 | Wireless input device, for use with a computer, employing a
movable light-emitting element and a stationary light-receiving element | 3-Aug-99
| 5943048 | Method and apparatus for testing a graphic control area | 24-Aug-99
| 5941947 | System and method for controlling access to data entities in a
computer network | 24-Aug-99
| 5941944 | Method for providing a substitute for a requested inaccessible
object by identifying substantially similar objects using weights
corresponding to object features | 24-Aug-99
| 5940847 | System and method for automatically correcting multi-word data
entry errors | 17-Aug-99
| 5940833 | Compressing sets of integers | 17-Aug-99
| 5938752 | System and method for encapsulating legacy data transport
protocols for IEEE 1394 serial bus | 17-Aug-99
| 5938729 | System and method for monitoring server performance at a client
computer | 17-Aug-99
| 5936616 | Method and system for accessing and displaying a compressed
display image in a computer system | 10-Aug-99
| 5935224 | Method and apparatus for adaptively coupling an external
peripheral device to either a universal serial bus Port on a computer or hub
or a game port on a computer | 10-Aug-99
| 5935211 | Distributed notification | 10-Aug-99
| 5935210 | Mapping the structure of a collection of computer resources | 10-Aug-99
| 5933842 | Method and system for compressing publication documents in a
computer system by selectively eliminating redundancy from a hierarchy of
constituent data structures | 03-Aug-99
| 5933838 | Database computer system with application recovery and recovery
log sequence numbers to optimize recovery | 03-Aug-99
| 5933822 | Apparatus and methods for an information retrieval system that
employs natural language processing of search results to improve overall
precision | 03-Aug-99
| 5933599 | Apparatus for presenting the content of an interactive on-line
network | 03-Aug-99
| 5933535 | Object-based video compression process employing arbitrarily-shaped features | 03-Aug-99
| 5933145 | Method and system for visually indicating a selection query | 03-Aug-99
| 5933139 | Method and apparatus for creating help functions | 03-Aug-99;
| 5931935 | File system primitive allowing reprocessing of I/O requests by
multiple drivers in a layered driver I/O system | 03-Aug-99
| 5929860 | Mesh simplification and construction of progressive meshes | 27-Jul-99
| 5929840 | System and method for computer cursor control | 27-Jul-99
| 5926813 | Database system index selection using cost evaluation of a
workload for multiple candidate index configurations | 20-Jul-99
| 5926807 | Method and system for effectively representing query results in a
limited amount of memory | 20-Jul-99
| 5926805 | Dual namespace client having long and short filenames | 20-Jul-99
| 5925127 | Method and system for monitoring the use of rented software | 20-Jul-99
| 5924108 | Document summarizer for word processors | 13-ju799
| 5924099 | Data transfer with expanded clipboard formats | 13-Jul-99
| 5923897 | System for adapter with status and command registers to provide
status information to operating system and processor operative to write eject
command to command register | 13-Jul-99
| 5923848 | System and method for resolving names in an electronic messaging
environment | 13-Jul-99
| 5923846 | Method of uploading a message containing a file reference to a
server and downloading a file from the server using the file reference | 13-Jul-99
| 5923328 | Method and system for displaying a hierarchical sub-tree by
selection of a user interface element in a sub-tree bar control | 13-Jul-99
| 5923307 | Logical monitor configuration in a multiple monitor environment | 13-Jul-99
| 5922058 | Optical transmission system for generating first-edge-based serial
data bit stream by inverting control output line at mark times | 13-Jul-99
| 5920895 | Mapped file input/output with delayed zeroing | 06-Jul-99
| 5920734 | System for providing electrical power to a computer input device
according to the interface types through the shared use of wires and a voltage
clamp | 06-Jul-99
| 5920720 | Efficient computer based virtual machine object structure | 06-Jul-99
| 5920697 | Method of automatic updating and use of routing information by
programmable and manual routing information configuration based on least lost
routing | 06-Jul-99
| 5920327 | Multiple resolution data display | 06-Jul-99
| 5920316 | Taskbar with start menu | 06-Jul-99
| 5919264 | System and method for using data structures to share a plurality
of power resources among a plurality of devices | 06-Jul-99
| 5917499 | Interactive graph display system | 29-Jun-99
| 5917489 | System and method for creating, editing, and distributing rules
for processing electronic messages | 29-Jun-99
| 5917480 | Method and system for interacting with the content of a slide
presentation | 29-Jun-99
| 5915129 | Method and system for storing uncompressed data in a memory cache
that is destined for a compressed file system | 22-Jun-99
| 5914717 | Methods and system for providing fly out menus | 22-Jun-99
| 5914716 | Slide out interface bar | 22-Jun-99
| 5914714 | System and method for changing the characteristics of a button by
direct manipulation | 22-Jun-99
| 5913217 | Generating and compressing universally unique identifiers (UUIDs)
using counter having high-order bit to low-order bit | 15-Jun-99
| 5913207 | Database system index selection using index configuration
enumeration for a workload | 15-Jun-99
| 5913206 | Database system multi-column index selection for a workload | 15-Jun-99
| 5913038 | system and method for processing multimedia data streams using
filter graphs | 15-Jun-99
| 5912661 | Z-encoder mechanism | 15-Jun-99
| 5911072 | Method and system for reducing an intentional program tree
represented by high-level computational constructs | 08-Jun-99
| 5911068 | Container independent control architecture | 08-Jun-99
| 5911066 | Data transfer utilizing a single functionally independent data
transfer mechanism | 08-Jun-99
| 5910802 | Operating system for handheld computing device having taskbar auto
hide | 08-Jun-99
| 5910800 | Usage tips for on-screen touch-sensitive controls | 08-Jun-99
| 5907837 | Information retrieval system in an on-line network including
separate content and layout of published titles | 25-May-99
| 5907685 | System and method for synchronizing clocks in distributed computer
nodes | 25-May-99
| 5905987 | Method, data structure, and computer program product for object
state storage in a repository | 18-May-99
| 5905981 | Automatically associating archived multimedia content with current
textual content | 18-May-99
| 5905894 | Meta-programming methods and apparatus | 18-May-99
| 5905890 | Event architecture system management in an operating system | 18-May-99
| 5905884 | Method and system for registering and retrieving data formats for
objects using a persistent registry | 18-May-99
| 5905522 | Resource allocation method for interactive televideo system | 18-May-99
| 5905508 | Method and System for dynamically plotting an element on an image
using a table | 18-May-99
| 5905492 | Dynamically updating themes for an operating system shell | 18-May-99
| 5903917 | Method and system-for alignment of blocks in a program image | 11-May-99
| 5903905 | Method for simultaneously constructing and displaying a dynamic
preview of a document that provides an accurate customized document | 11-May-99
| 5903903 | System for determining the sequence and placement of pages for a
multiple-page document | 11-May-99
| 5903896 | Method for installing a file on demand using a preview | 11-May-99
| 5903894 | System and method for using a hierarchical data structure to
control and identify devices and represent connections between the devices | 11-May-99
| 5903754 | Dynamic layered protocol stack | 11-May-99
| 5903728 | Plug-in control including an independent plug-in process | 11-May-99
| 5903265 | System-provided window elements having adjustable dimensions | 11-May-99
| 5903255 | Method and system for selecting a color value using a hexagonal
honeycomb | 11-May-99
| 5901312 | Providing application programs with unmediated access to a
contested hardware resource | 04-May-99
| 5900905 | System and method for linking video, services and applications in
an interactive television system | 04-May-99
| 5900004 | Method and system for interactive formatting of word processing
documents with deferred rule evaluation and format editing | 04-May-99
| 5899999 | Iterative convolution filter particularly suited for use in an
image classification and retrieval system | 04-May-99
| 5898868 | Method and system for file system management using a flash-erasable, programmable, read-only memory | 27-Apr-99
| 5898819 | System for black and white printing of colored pages | 27-Apr-99
| 5898170 | Apparatus and method for finding optimal sensitivity level for
optical encoding circuit | 27-Apr-99
| 5897650 | Encapsulation of extracted portions of documents into objects | 27-Apr-99
| 5897642 | Method and system for integrating an object-based application with
a version control system | 27-Apr-99
| 5897640 | Method and system of associating, synchronizing and reconciling
computer files in an operating system | 27-Apr-99
| 5897622 | Electronic shopping and merchandising system | 27-Apr-99
| 5893915 | Local font face selection for remote electronic document browsing | 13-Apr-99
| 5893107 | Method and system for uniformly accessing multiple directory
services | 06-Apr-99
| 5893077 | Method and apparatus for generating and collecting a billing event
object within an on-line network | 06-Apr-99
| 5892917 | System for log record and tog expansion with inserted log records
representing object request for specified object corresponding to cached
object copies | 06-Apr-99
| 5892904 | Code certification for network transmission | 06-Apr-99
| 5892521 | System and method for composing a display frame of multiple
layered graphic sprites | 06-Apr-99
| 5890174 | Method and system for constructing a formula in a spreadsheet | 30-Mar-99
| 5890171 | Computer system and computer-implemented method for interpreting
hypertext links in a document when including the document within another
document | 30-Mar-99
| 5890161 | Automatic transaction processing of component-based server
applications | 30-Mar-99
| 5890147 | Scope testing of documents in a search engine using document to
folder mapping | 30-Mar-99
| 5889952 | Access check system utilizing cached access permissions | 30-Mar-99
| 5889522 | System provided child window controls | 30-Mar-99
| 5889521 | System provided child window controls | 30-Mar-99
| 5886701 | Graphics rendering device and method for operating same | 23-Mar-99
| 5886699 | Method and system for transferring data to common destinations
using a common destination list | 23-Mar-99
| 5886695 | System provided child window controls | 23-Mar-99
| 5886694 | Method for automatically laying out controls in a dialog window | 23-Mar-99
| 5884316 | Implicit session context system with object state cache | 16-Mar-99
| 5884306 | System and method for directly manipulating fields for grouping
items | 16-Mar-99
| 5883633 | Method and system of variable run length image encoding using sub-palette | 16-Mar-99
| 5883627 | Advanced graphics controls | 16-Mar-99
| 5881292 | Dynamic versioning system for multiple users of multi-module
software system | 09-Mar-99
| 5881252 | Method and apparatus for automatically configuring circuit cards
in a computer system | 09-Mar-99
| 5881230 | Method and system for remote automation of object oriented
applications | 09-Mar-99
| 5880744 | Method and apparatus for vector transformation involving a
transformation matrix | 09-Mar-99
| 5880737 | Method and system for accessing texture data in environments with
high latency in a graphics rendering system | 09-Mar-99
| 5880733 | Display system and method for displaying windows of an operating
system to provide a three-dimensional workspace for a computer system | 09-Mar-99
| 5880731 | Use of avatars with automatic gesturing and bounded interaction in
on-line chat session | 09-Mar-99
| 5878421 | Information map | 02-Mar-99
| 5878410 | File system sort order indexes | 02-Mar-99
| 5878386 | Natural language parser with dictionary-based part-of-speech
probabilities | 02-Ma-99
| 5878282 | Portable information device and system and method for downloading
executable instruction from a computer to the portable information device | 02-Mar-99
| 5877765 | Method and system for displaying internet shortcut icons on the
desktop | 02-Mar-99
| 5877758 | System and method for using a slider control for controlling
parameters of a display item | 02-Mar-99
| 5875289 | Method and system for simulating auto-init mode DMA data transfers | 23-Feb-99
| 5874960 | Method and system for sharing applications between computer
systems | 23-Feb-99
| 5873660 | Morphological search and replace | 23-Feb-99
| 5873124 | Virtual memory scratch pages | 16-Feb-99
| 5873118 | Method and system for storing file system state information in
multiple sectors based on update frequency | 16-Feb-99
| 5873081 | Document filtering via directed acyclic graphs | 16-Feb-99
| 5872930 | Load balancing between E-mail servers within a local area network | 16-Feb-99
| 5870763 | Database computer system with application recovery and dependency
handling read cache | 09-Feb-99
| 5870556 | Monitoring a messaging link | 09-Feb-99
| 5870097 | Method and system for improving shadowing in a graphics rendering
system | 09-Feb-99
| 5867657 | Distributed scheduling in a multiple data server system | 02-Feb-99
| 5867652 | Method and apparatus for supporting multiple outstanding network
requests on a single connection | 02-Feb-99
| 5867650 | Out-of-band data transmission | 02-Feb-99
| 5867646 | Providing secure access for multiple processes having separate
directories | 02-Feb-99
| 5867175 | Method and apparatus for scriping animation | 02-Feb-99
| 5867173 | Method for rendering a spline for scan conversion of a glyph
comprising a plurality of discrete segments | 02-Feb-99
| 5867166 | Method and system for generating images using Gsprites | 02-Feb-99
| 5867144 | Method and system for the direct manipulation of information,
including non-default drag and drop operation | 02-Feb-99
| 5864848 | Goal-driven information interpretation and extraction system | 26-Jan-99
| 5864711 | System for determining more accurate translation between first and
second translator, and providing translated data to second computer if first
translator is more accurate | 26-Jan-99
| 5864669 | Method and system for accessing a particular instantiation of a
server process | 26-Jan-99
| 5864342 | Method and system for rendering graphical objects to image chunks | 26-Jan-99
| 5864337 | Mehtod for automatically associating multimedia features with map
views displayed by a computer implemented atlas program | 26-Jan-99
| 5862337 | Determining throughput dynamically | 19-Jan-99
| 5862318 | System generating a gapless series of identity values | 19-Jan-99
| 5860073 | Style sheets for publishing system | 12-Jan-99
| 5859648 | Method and system for providing substitute computer fonts | 12-Jan-99
| 5857190 | Event logging system and method for logging events in a network
system | 05-Jan-99
| 5854932 | Compiler and method for avoiding unnecessary recompilation | 29-Dec-91
| 5854931 | Method and system for accessing virtual base classes | 29-Dec-98
| 5852823 | Image classification and retrieval system using a query-by-example
paradigm | 22-Dec-98
| 5852443 | Method and system for memory decomposition in a graphics rendering
system | 22-Dec-98
| 5852441 | Shell extensions for an operating system | 22-Dec-98
| 5852436 | Notes facility for receiving notes while the computer system ??s
in a screen mode | 22-Dec-98
| 5850232 | Method and system for flipping images in a window using overlays | 15-Dec-98
| 5845300 | Method and apparatus for suggesting completions for a partially
entered data item based on previously-entered, associated data items | 01-Dec-98
| 5845293 | Method and system of associating, synchronizing and reconciling
computer files in an operating system | 01-Dec-98
| 5845280 | Method and apparatus for transmitting a file in a network using a
single transmit request from a user mode process to a kernel-mode process | 01-Dec-98
| 5845273 | Method and apparatus for integrating multiple indexed files | 01-Dec-98
| 5845084 | Automatic data display formatting with a networking application | 01-DEC-98
| 5845077 | Method and system for identifying and obtaining computer software
from remote c9mputer | 01-Dec-98
| 5844569 | Display device interface including support for generalized
flipping of surfaces | 01-Dec-98
| 5844551 | Shell extensions for an operating system | 01-Dec-98
| 5842214 | Distributed file system providing a unified name space with
efficient name resolution | 24-Nov-98
| 5842211 | Method and system for transferring a bank file to an application
program | 24-Nov-9
| 5842180 | Method and system for detecting and correcting errors in a
spreadsheet formula | 24-Nov-98
| 5842018 | Method and system for referring to and binding to objects using
identifier objects | 24-Nov-98
| 5842016 | Thread synchronization in a garb age-collected system using
execution barriers | 24-Nov-98
| 5838963 | Apparatus and method for compressing a data file based on a
dictionary file which matches segment lengths | 17-Nov-98
| 5838923 | Method and system synchronizing computer mail user directories | 17-Nov-98
| 5838336 | Method and system for displaying images on a display device | 17-Nov-98
| 5838322 | Shell extensions for an operating system | 17-Nov-98
| 5838320 | Method and system for scrolling through data | 17-Nov-98
| 5838319 | System provided child window control far displaying items in a
hierarchical fashion | 17-Nov-98
| 5838317 | Method and apparatus for a arranging displayed graphical
representations on a computer interface | 17-Nov-98
| 5838304 | Packet-based mouse data protocol | 17-Nov-98
| 5835964 | Virtual memory system with hardware TLB and unmapped software TLB
updated from mapped task address maps using unmapped kernel address map | 10-Nov-98
| 5835908 | Processing multiple database transactions in the same process to
reduce process overhead and redundant retrieval from database servers | 10-Nov-98
| 5835904 | System and method for implementing database cursors in a
client/server environment | 10-Nov-98
| 5835086 | Method and apparatus for digital painting | 10-Nov-98
| 5835084 | Method and computerized apparatus for distinguishing between read
and unread messages listed in a graphical message window | 10-Nov-98
| 5832528 | Method and system for selecting text with a mouse input device in
a computer system | 03-Nov-98
| 5832514 | System and method for discovery based data recovery in a store and
forward replication process | 03-Nov-98
| 5832502 | Conversation index builder | 03-Nov-98
| 5832479 | Method for compressing full text indexes with document identifiers
and location offsets | 03-Nov-98
| 5832225 | Method computer program product and system for maintaining
replication topology information | 03-Nov-98
| 5831606 | Shell e extensions for an operating system | 03-Nov-98
| 5828885 | Method and system for merging files having a parallel format | 27-Oct-98
| 5828364 | One-piece case top and integrated switch for a computer pointing
device | 27-Oct-98
| 5828361 | Method and system for rapidly transmitting multicolor or gray
scale display data having multiple bits per pixel to a display device | 27-Oct-98
| 5826269 | Electronic mail interface for a network server | 20-Oct-98
| 5826257 | Method and structure for maintaining and utilizing a lookup value
associated with a stored database value | 20-Oct-98
| 5826041 | Method and system for buffering network packets that are
transferred between a V86 mode network driver and a protected mode computer
program | 20-Oct-98
| 5825363 | Method and apparatus for determining visible surfaces | 20-Oct-98
| 5825357 | Continuous?? accessible computer system interface | 20-Oct-98
| 5822751 | Efficient multidimensional data aggregation operator
implementation | 13-Oct-98
| 5822526 | system, and method for maintaining and administering email address
names in a network | 13-Oct-98
| 5822525 | Method and system for Presentation conferencing | 13-Oct-98
| 5819293 | Automatic Spreadsheet forms | 06-Oct-98
| 5819288 | Statistically based image group descriptor particularly suited for
use in an image classification and retrieval system | 06-Oct-98
| 5819272 | Record tracking in database replication | 06-Oct-98
| 5819112 | Apparatus for controlling an I/O port by queuing requests and in
response to a predefined condition, enabling the I/O port receive the
interrupt requests | 06-Oct-98
| 5819107 | Method for managing the assignment of device drivers in a computer
system | 06-Oct-98
| 5819055 | Method and apparatus for docking re-sizeable interface boxes | 06-Oct-98
| 5819032 | Electronic magazine which is distributed electronically from a
publisher to multiple subscribers | 06-Oct-98
| 5819030 | System and method for configuring a server computer for optimal
performance for a particular server type | 06-Oct-98
| 5818465 | Fast display of images having a small number of colors with a VGA-type adapter | 06-Oct-98
| 5818447 | System and method for in-place editing of an electronic mail
message using a separate Program | 06-Oct-98
| 5815793 | Parallel computer | 29-Sep-98
| 5815705 | Method and computer system for integrating a compression System
with an operating System | 29-Sep-98
| 5815703 | Computer-based uniform data interface (UDI) method and system
using an application programming interface (API) | 29-Sep-98
| 5815689 | Method and computer program product for synchronizing the
processing of multiple data streams and matching disparate processing rates
using a standardized clock mechanism | 29-Sep-98
| 5815682 | Device independent modem interface | 29-Sep-98
| 5815665 | System and method for providing trusted brokering services over a
distributed network | 29-Sep-98
| 5813013 | Representing recurring events | 22-Sep-98
| 5813008 | Single instance Storage of in formation | 22-Sep-98
| 5812844 | Method and system for scheduling the execution of threads using
optional time-specific scheduling constraints | 22-Sep-98
| 5812793 | System and method for asynchronous store and forward data
replication | 22-Sep-98
| 5812784 | Method and apparatus for supporting multiple, simultaneous
services over multiple, simultaneous connections between a client and network
server | 22-Sep-98
| 581278?? | Method, system, and product for assessing a server application
performance | 22-Sep-98
| 5812773 | System and method for the distribution of hierarchically
structured data | 22-Sep-98
| 5812430 | Componentized digital signal processing | 22-Sep-98
| 5812136 | System and method for fast rendering of a three dimensional
graphical object | 22-Sep-98
| 5812123 | System for displaying Programming information | 22-Sep-98
| 5809564 | Apparatus and method for swapping blocks of memory between a main memory
area and a secondary storage area of a computer system | 15-Sep-98
| 5809329 | System for managing the configuration of a computer system | 15-Sep-98
|
5809295 | Method and apparatus for storing compressed file data on a disk where
each MDFAT data structure includes an extra byte | 15-Sep-98
| 5808617 | Method and system for depth complexity reduction in a graphics
rendering system | 15-Sep-98
| 5808604 | Apparatus and method for automatically positioning a cursor on a
control | 15-Sep-98
| 5806065 | Data system with distributed tree indexes and method for
maintaining the indexes | 08-Sep-98
| 5805911 | Word prediction system | 08-Sep-98
|
5805896 | System for writing main memory address of object to secondary storage
when storing object and reading main memory address of object when retrieving object from
secondary storage | 08-Sep-98
| 5805885 | Method and system for aggregating objects | 08-Sep-98
| 5805170 | Systems and methods for wrapping a closed polygon around an object | 08-Sep-98
| 5805165 | Method of selecting a displayed control item | 08-Sep-98
| 5805164 | Data display and entry using a limited-area display panel | 08-Sep-98
| 5802590 | Method and system for providing secure access to computer
resources | 01-Sep-98
|
5802526 | system and method for graphically displaying and navigating through an
interactive voice response menu | 01-Sep-98
| 5802380 | Method and system for uniform access of textual data | 01-Sep-98
| 5802367 | Method and system for transparently executing code using a
surrogate Process | 01-Sep-98
|
5802305 | System for remotely waking a sleeping computer in power down state by
comparing incoming packet to the list of packets storing on network interface card | 01-Sep-98
| 5802304 | Automatic dialer responsive to network programming interface
access | O1-Sep-98
| 5801717 | Method and System in display device interface for managing surface
memory | 01-Sep-98
| 5801701 | Method and system for ??place interaction with contained objects | 01-Sep-98
| 5801692 | Audi0-visual user interface controls | 01-Sep-98
|
5801664 | System and method for transmitting data from a computer to a portable
information device using RF emissions from a computer monitor | 01-Sep-96
|
5835881 | Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers | 25-Aug-98
| 5799321 | Replicating deletion information using sets of deleted record lbs | 25-Aug-98
| 5799184 | System and method for identifying data records using solution
bitmasks | 25-Aug-98
| 796988 | Method and system using dedicated location to share information between
real mode and protected mode drivers | 18-Aug-98
| 796402 | Method and system for aligning windows on a computer screen | 18-Aug-98
| 794256 | Pointer swizzling facility using three-state references to manage
access to referenced objects | 11-Aug-96
| 5794253 | Time based expiration of data objects in a store and forward
replication enterprise | 11-Aug-98
| 5794230 | Method and system for creating and searching directories on a
server | 11-Aug-98
| 5794038 | Method and system for notifiying clients using multicasting and for
connecting objects using delayed m?? binding | 11-Aug-98
| 5794006 | System and method for editing content in an on-line network | 11-Aug-98
| 5793973 | Method and system for opportunistic broadcasting of data | 11-Aug-98
| 5793970 | Method and computer program product for converting message
identification codes using a conversion map accesible via a data link | 11-Aug-98
| 5793374 | Specialized shaders for shading objects in computer generated
images | 11-Aug-98
| 5793356 | System and method for the software emulation Of a computer
joystick | 11-Aug-98
| 5790863 | Method and system for generating and displaying a computer program | 04-Aug-98
| 5790858 | Method and system for selecting instrumentation points in a
computer program | 04-Aug-98
| 5790677 | System and method for secure electronic commerce transactions | 04-Aug-98
| 5790126 | Method for rendering, a spline for scan conversion of a glyph | 04-Aug-98
| 5790115 | System for character entry a display screen | 04-Aug-91
| 5787451 | Method for background spell checking a word processing document | 28-Jul-98
| 5787442 | Creating interobject reference links in the directory service of a store
and forward replication computer network | 28-Jul-98
| 5787417 | Method and system for selection of hierarchically related
information using a content-variable list | 28-Jul-98
| 5787411 | Method and apparatus for database filter generation by display
selection | 28-Jul-98
| 5787262 | System and method for distributed conflict resolution between data
objects replicated across a computes network | 28-Jul-98
| 5787259 | Digital interconnects of a PC with consumer electronics devices | 28-Jul-98
| 5787247 | Replica administration without data loss in a store and forward
replication enterprise | 28-Jul-98
| 5787246 | System for configuring devices for a computer system | 28-Jul-98
| 5786818 | Method and system for activating focus | 28-Jul-98
| 5784628 | Method and system for controlling power consumption in a computer
system | 21-Jul-98
| 5784618 | Method and system for managing ownership of a released
synchronization mechanism | 21-Jul-98
| 5784616 | Apparatus and methods for optimally using available computer resources
for task execution during idle-time for future task instances exhibiting incremental value
with computation | 21-Jul-98
| 5784615 | Computer system messaging architecture?? | 21-Jul-98
| 5784555 | Automation and dial-time checking of system configuration for
internet | 21-Jul-98
| 5781902 | Method, computer program product, and system for extending the
capabilities of an existing process to store and display foreign data | 14-Jul-98
| 5781896 | Method and system for efficiently performing database table aggregation
using an aggregation index | 14-Jul-98
| 5781797 | Method and system for configuring device driver by selecting a plurality
of component drivers to be included in the device driver | 14-Jul-98
| 5781723 | System and method for self-identifying a portable information
device to a computing unit | ??4-Jul-98
| 5781195 | Method and system for rendering two-dimensional views of a three-dimensional surface | 14-Jul-98
| 578119 | Method and System for transferring a slide presentation between
computers | 14-Jul-98
| 5778403 | Method for displaying text on a rendering device to accurately represent
the text as if displayed on a target device | 07-Jul-98
| 5778??02 | Method and system for auto-formatting a document using an event-based
rule engine to format a document as the user types | 07-Jul-98
| 5778375 | Database normalizing system | 07-Jul-98
| 5778372 | Remote retrieval and display management of electronic document
with incorporated, images | 07-Jul-98
| 5778361 | Method and system for fast indexing and searching of text in
compound-word languages | 07-Jul-98
| 5778069 | Non-biased pseudo random number generator | 07-July-98
| 5774725 | Method and computer program product for simplifying construction of a
program for testing computer software subroutines in an application programming interface | 30-Jun-98
| 5774668 | System for on-line service in which gateway computer uses service map
which includes loading condition of servers broadcasted by application servers for load
balancing | 30-Jun-98
| 5774126 | Method and apparatus for dynamically changing the color depth of objects
displayed in a computer system | 30-Jun-98
| 5771399 | Optical wand having an end shaped to register to the surface of a
portable device to align respective optical element pairs for data transfer | 23-Jun-98
| 5771384 | Method and system for replacement and extension of container
interfaces | 23-Jun-98
| 5771381 | Method and System for adding configuration files for a user | 23-Jun-98
| 5771034 | Font format | 23-Jun-98
| 5771033 | Method and system for dissolving an image displayed on a computer
screen | 23-Jun-98
| 5768566 | Method and facility for uninstalling a computer program package | 16-Jun-98
| 5768519 | Method and apparatus for merging user accounts from a source security
domain into a target security domain | 16-Jun-98
| 5768515 | Method for generating and storing two segments of HTTP message headers
with different lifetimes and combining them to form a single response header | 16-Jun-98
| 5767835 | Method and system for displaying buttons that transition from an
active state to an inactive state | 16-Jun-98
| 5765180 | Method and system for correcting the spelling of misspelled words | 09-Jun-98
| 5765156 | Data transfer with expanded clipboard formats | 09-Jun-98
| 5764983 | Method and system for efficiently creating a new file associated
with an application program | 09-Jun-98
| 5764913 | Computer network status monitoring system | 09-Jun-98
| 5764890 | Method and system for adding a secure network server ??o an
existing computer network | 09-Jun-98
| 5764241 | Method and system for modeling and presenting integrated media with a
declarative modeling language for representing reactive behavior | 09-Jun-98
| 5761689 | Autocorrecting text typed into a word processing document | 02-Jun-98
| 5761669 | Controlling access to objects on multiple operating systems | 02-Jun-98
| 5761510 | Method for error identification in a program interface | 02-Jun-98
| 5761477 | Methods for safe and efficient implementations of virtual machines | 02-Jun-98
| 5760788 | Graphical Programming system and method for enabling a person ??o
learn text-based programming | 02-Jun-98
| 5760773 | Methods and apparatus for interacting with data objects using
action handles | 02-Jun-98
| 5760770 | System and method defining a view to display data | 02-Jun-98
| 5760768 | Method and system for customizing a user interface in a computer
system | 02-Jun-98
| 575836 | Meta-data structure and handling | 26-May-98
| 5758358 | Method and system for reconciling sections of documents | 26-May-98
| 5758352 | Common name space for long and short filenames | 26-May-98
| 5758337 | Database partial replica generation system | 26-May-98
| 5758184 | System for performing asynchronous file operations requested by runnable
threads by processing completion messages with different queue thread and checking for
completion by runnable threads | 26-May-98
| 5758154 | Method and system for storing configuration data into a common
registry | 26-May-98
| 5757920 | Logon certification | 26-May-98
| 5757371 | Taskbar with start menu | 26-May-98
| 5754890 | System for automatic identification of a computer data entry device
interface type using a transistor to sense the voltage generated by the interface and output a
matching voltage level | 19-May-98
| 5754862 | Method and System for accessing virtual base classes | 19-May-98
| 5754858 | Customizable application project generation process and system | 19-May-98
| 5754854 | Method and system for providing a group of parallel resources as a proxy
for a single shared resource | 19-May-98
| 5754175 | Method and system for in-??ace interaction with contained
objects | 19-May-98
| 5752252 | Storage of file data on disk in multiple representations | 12-May-98
| 5752243 | Computer method and storage structure for storing and accessing
multidimensional data | 12-May-98
| 5752038 | Method and system for determining an optimal placement order for
code portions within a module | 12-May-98
| 5752031 | Queue object for controlling concurrency in a computer system | 12-May-98
| 5752025 | Method, computer program product, and system for creating and
displaying a categorization table | 12-May-98
| 5751283 | Resizing a window and an object on a display screen | 12-May-98
| 5751282 | System and method for calling video on demand using an electronic
programming guide | 12-May-98
| 5751276 | Method for calibrating touch panel displays
| 12-May-98
| 5748980 | System for configuring a computer system | 05-May-98
| 5748895 | transmitted from a display device while concurrently displaying human-readable explanation of the Pattern | 05-May-98
| 5748512 | Adjusting keyboard | 05-May-98
| 5748468 | Prioritized c0-processor resource manager and method | 05-May-98
| 5748191 | Method and system for creating voice commands using an automatically
maintained log interactions performed by a user | 05-May-98
| 5745904n | Buffered table use index | 28-Apr-98
| 5745902 | Method and system for accessing a file using file names having
different filename formats | 28-Apr-98
| 5745767 | Method and system, for testing the interoperability of application
Programs | 28-Apr-98
| 5745764 | Method and system for aggregating objects | 28-Apr-98
| 5745752 | Dual namespace client having long and short filenames | 28-Apr-98
| 5745738 | Method and engine for automating the creation of simulations for
demonstrating use of software | 28-Apr-98
| 5745119 | C01or data conversion using real and virtual address spaces | 28-Apr-98
| 5745110 | Method and apparatus for arranging and displaying task schedule
information in a calendar view format | 28-Apr-98
| 5745103 | Real-time palette negotiations in multimedia presentations | 28-Apr-98
| 5745095 | Compositing digital information on a display screen based on
screen descriptor | 28-Apr-98
| 5742848 | System for passing messages between source object and target object
utilizing generic code in source object to invoke any member function of target object by
executing the same instructions | 21-Apr-98
| 5742835 | Method and system of sharing common formulas in a spreadsheet program
and of adjusting the same to conform with editing operations | 21-Apr-98
| 5742829 | Automatic software installation on heterogeneous networked client
computer systems | 21-Apr-98
| 5742826 | Compiler and method for evaluation or foreign syntax expressions
in source code | 21-Apr-98
| 5742825 | Operating System for office machines | 21-Apr-98
| 5742818 | Method and system of converting data from a source file system to a
target file system | 21-Apr-98
| 5742773 | Method and System for audio compression negotiation for multiple
channels | 21-Apr-98
| 5742756 | System and method of using smart cards to perform security-critical
operations requiring user authorization | 21-Apr-98
| 5742278 | Force feedback Joystick with digital signal processor controlled
by host processor | 2??-Apr-98
| 5742260 | System and method for transferring data using a frame-scanning
display device | 21-APr-98
| 5740456 | Methods and system for controlling intercharacter spacing as font size
and resolution of output device vary | 14-Apr-98
| 5740439 | Method and System for referring to and binding to objects ??sing
identifier objects | 14-Apr-98
| 5740405 | Method and system for providing data compatibility between different
versions of a software program | 14-Apr-98
| 5737733 | Method and system for searching compressed data | 07-Apr-98
| 5737611 | Methods or dynamically, escalating locks On a shared resource | 07-Apr-98
| 5737591 | Database view generation system | 07-Apr-98
| 5736987 | Compression of graphic data normals | 07-APr-98
| 5736983 | Shellextensions for an 0Perating system | 07-Apr-98
| 5734904 | Method and system for calling one of a set of routines designed for
direct invocation by programs of a second type when invoked by a program of the firs type | 31-Mar-98
| 5734858 | Method and apparatus for simulating banked memory as a linear
address space | 31-Mar-98
| 5734387 | Method and apparatus for creating and performing graphics operations on
device-independent bitmaps | 31-Mar-98
| 5732267 | Caching/prewarming data loaded from ?? | 24-Mar-98
| 5732265 | Storage optimizing encoder and method | 24-Mar-98
| 5732256 | CD-ROM optimization and stream splitting | 24-Mar-98
| 5731844 | Television scheduling system for displaying a grid representing
scheduled layout and selecting a programming parameter for display or recording | 24-Mar-981
| 5729748 | Call template builder and method | 17-Mar-98
| 5729745 | Methods and apparatus for creating a base class for manipulating
external data connections in a computer generated document | 17-Mar-98
| 5729689 | Network naming services proxy agent | 17-Mar-98
| 5727178 | System and method for reducing stack physical memory requirements in a
multitasking operating system | 10-Mar-98
| 5726687 | Auto-scrolling with mouse speed computation during dragging | 10-Mar-98
| 5724594 | Method and system for automatically identifying morphological
information from a machine-readable dictionary | 03-Mar-91
| 5724588 | Method and system for network marshaling of interface pointers
for rem0te procedure Calls | 03-Mar-98
| 5724558 | System and method for dynamic data packet configuration | 03-Mar-98
| 5724492 | Systems and method for displaying control objects including a
plurality of panels | 03-Mar-98
| 5724074 | Method and system for graphically programming mobile toys | 03-Mar-98
| 5724070 | common digital representation of still images for data transfer with
both slow and fast data transfer rates | 03-Mar-98
| 5724068 | Joystick with uniform center return force | 03-Mar-98
| 5721919 | Method and system for the link tracking of objects | 24-Feb-98
| 5721916 | Method and system for shadowing file system structures from
multiple types, of networks | 24-Feb-98
| 5721847 | Method and system for liking controls with cells of a spread sheet | 24-Feb-98
| 5721781 | Authentication system and method for smart card transactions | 24-Feb-98
| 5719941 | Method for changing passwords on a remote computer | 17-Feb-98
| 5717902 | Method and system for selectively applying an appropriate object
ownership model | 10-Feb-98
| 5717845 | Method and apparatus for transferring a brush pattern to a
destination bitmap | 10-Feb-98
| 5715441 | Method and system for storing and accessing data in a compound
document using object linking | 03-Feb-99
| 5715415 | Computer application with help pane integrated into workspace | 03-Feb-98
| 5713020 | Method and system for generating database queries containing
multiple levels of aggregation | 27-Jan-98
| 5713003 | Method and system for caching data | 27-Jan-98
| 5713002 | Modified buddy system for managing storage space | 27-Jan-98
| 5710941 | System for substituting protected mode hard disk driver for real mode
driver by trapping test transfers to verify matching geometric translation | 20-Jan-98
| 5710928 | Method and system for connecting objects in a computer system | 20-Jan-98
| 5710925 | Method and system for aggregating objects | 20-Jan-98
| 5710880 | Method and system for creating a graphic image with geometric
descriptors | 20-Jan-98
| 5709219 | Method and apparatus to create a complex tactile sensation | 20-Jan-9
| 5708814 | Method and apparatus for reducing the rate of interrupts by generating a
single interrupt for a group of events | 13-Jan-98
| 5708812 | Method and apparatus for Migrating from a source domain network
controller to a target domain network controller | 13-Jan-98
| 5706505 | Method and system for binding data in a computer system | 06-Jan-98
| 5706504 | Method and system for storing | 06-Jan-98
| 5706483 | Run-time code compiler for data block transfer | 06-Jan-98
| 5706462 | Self optimizing font width cache | 06-Jan-98
| 5706458 | Method and system for merging menus of application programs | 06-Jan-98
| 5706450 | Method and system for presenting alternatives for selection using
adaptive learning | 06-Jan-98
| 5706411 | Printer status user interface and methods relating thereto | 06-Jan-98
| 5701511 | Redbook audio sequencing | 23-Dec-97
| 5701499 | Method and system for automatically entering a data series into
contiguous cells of an electronic spreadsheet Program or the like | 23-Dec-91
| 5701491 | Method and system for transitioning the network mode of a
workstation | 23-Dec-97
| 5701469 | Method and System for generating accurate search result using a
content-index | 23-Dec-97
| 5701462 | Distributed file system providing a unified name space with
efficient name resolution | 23-Dec-97
| 5701461 | Method and system for accessing a remote database using pass-through queries | 23-Dec-97
| 5701460 | Intelligent joining system for a relational database | 23-Dec-97
| 5701424 | Palladian menus and methods relating thereto | 23-Dec-97
| 5701137 | Method for separating a hierarchical tree control into one or more
hierarchical child tree controls in a graphical user interface | 23-Dec-97
| 5699518 | System for selectively setting a server node, evaluating to determine
server node for executing server code, and downloading server code prior to executing if
necessary | ??6??Dec-91
| 696946 | Method and apparatus for efficient transfer of data to memory | 09-Dec-97
| 5694610 | Method and system for editing and formatting.data in a dialog
window | 02-Dec-97
| 5694606 | Mechanism for using common code to handle hardware interrupts in
multiple processor modes | 02-Dec-97
| 5694563 | Method and system for transferring data to common destinations
using a common destination list | 02-Dec-97
| 5694561 | Method and System for grouping and manipulating windows | 02-Dec-97
| 5694559 | on-line help method and system utilizing free text query | 02-Dec-97
| 5694153 | Input device for providing multi-dimensional position coordinate
signals to a computer | 02-Dec-97
| 5692189 | Method and apparatus for isolating circuit boards in a computer
system | 25-Nov-97
| 5692177 | Method and system for data set storage by iteratively searching
for perfect hashing functions | 25-Nov-9
| 5692173 | Methodarid System for combining prefix and first character searching of
a list | 25-Nov-97
| 5692157 | Method and system for transferring data between objects using
registered data formats | 25-N0v-97
| 5692??44 | Method and System for depicting an object, springing back from a
position | 25-Now97
| 5691745 | Low power pixel-based visual display device having dynamically
changeable number of grayscale shades | 25-Nov-97
| 5689709 | Method and system for invoking methods of an object | 18-Nov-97
| 5689703 | Method and system for referring to and binding to objects using
identifier objects | 18-Nov-97
| 5689700 | Unification of directory service with file system services | 18-Nov-97
| 5689664 | Interface sharing between objects | 18-Nov-97
| 5689663 | Remote controller user interface and methods relating thereto | 18-Nov-97
| 5689662 | Shell extensions for an operating system | 18-Nov-97
| 5689638 | Method for providing access to independent network resources by
establishing connection using an application programming interface function call without prompting
the user for authentication data | 18-Nov-97
| 5689565 | Cryptography System and method for providing cryptographic
services for a computer application | 18-N0v-97
| 5687392 | System for allocating buffer to transfer data when user buffer is mapped
to physical region that does not conform to physical addressing limitations of controller | ??-Nov-97
| 5687331 | Method and system for displaying an animated focus item | 11-Nov-97
| 5685003 | Method and system for automatically indexing data in a document
using a fresh index table | 04-Nov-97
| 5685001 | Method and system for automatically entering a data series into
contiguous cells of an electronic spreadsheet program or the like | 04-Nov-97
| 5684993 | Segregation of thread-specific information from shared task
information | 04-Nov-97
| 5684510 | Method Of font rendering employing grayscale processing of grid
fitted fonts | 04-Nov-97
| 5682536 | Method and system for referring to and binding to objects using
identifier objects | 28-Oct-97
| 5682532 | System and method having programmable containers with
functionality for managing objects | 28-Oct-97
| 5682511 | .Graphical viewer interface for an interactive network system | 28-Oct-97
| 5682510 | Method and system for adding application defined properties and
application defined property sheet pages | 28-Oct-97
| 5682478 | Method and apparatus for supporting multiple, simultaneous services over
multiple, simultaneous connections between a client and network server | 28-Oct-97
| 5682469 | software platform having a real world interface with animated
characters | 28-Oct-97
| 5680629 | Method and system for previewing computer output | 21-Oct-97
| 5680616 | Method and system for generating and maintaining property sets
with unique format identifiers | 21-Oct-97
| 5680582 | Method for heap coalescing where blocks do not cross page of
segment b0ur??dartes | 21-Oct797
| 5680559 | Shell extensions for an operating system | 21-00t-97
| 5680458 | Root key compromise recovery | 2??-Oct-97
| 5678034 | Accessbar arbiter | 14-Oct-97
| 5678014 | Folder rack icons | 14-Oct-97
| 5678012 | Method and system for selecting a video piece from a database | 14-Oct-97
| 5678007 | Method and apparatus for supporting multiple outstanding network
requests on a single connection | 14-Oct-97
| 5678002 | System and method for providing automated customer support | 14-Oct-97
| 5677708 | System for displaying a list on a display screen | 14-Oct-97
| 5675833 | Apparatus and method for detecting insertions and removals of floppy
disks by monitoring write-protect signal | 07-Oct-97
| 5675831 | Method for automatic installation of a modem wherein unique
identification for the device registry is computed, from modem responses to queries by the system | 07-Oct-97
| 5675813 | system and method for power control in a universal serial bus | 07-Oct-97
| 5675796 | Concurrency management component for use by a computer program during
the transfer of a message | 07-Oct-97
| 5675793 | Dynamic allocation of a common buffer for use by a set of software
routines | 07-Oct-97
| 5675787 | Unification of directory service with file system services | 07-Oct-97
| 5675782 | Controlling access to objects on multiple operating systems | 07-Oct-97
| 5675520 | Method for extending a common user interface | 07-Oct-97
| 5673401 | Systems and methods for a customizable sprite-based graphical user
interface | 30-Sep-97
| 5673394 | Method of sharing memory between an operating system and an
application program | 30-Sep-97
| 5670955 | Method and apparatus for generating directional and force vector
in an input device | 23-Sep-97
| 5668996 | Rendering CD redbook audi0 using alternative storage, locations
and formats | 16-8ep-97
| 5666526 | Method and system for supporting scrollable, updatable database
queries | 09-Sep-97
| 5666523 | Method and system for distributing asynchronous input from a system
input queue to reduce context switches | 09-Sep-97
| 5666489 | Method and apparatus for enhancing capabilities of office machines | 09-Sep-97
| 5664228 | Portable information device and system and method for downloading
executable instructions from a computer to the portable in formation device | 02-Sep-97
| 5664191 | Method and system for improving the locality of memory references during
execution of a computer program | 02-Sep-97
| 5664??78 | Method and system for organizing internal structure of a file
| 02-Sep-97
| 5664173 | Method and apparatus for generating database queries from a meta-query pattern | 02-Sep-97
| 5664133 | Context sensitive menu system/menu behavior | 02-Sep-97
| 5659791 | Encapsulation of extracted portions of documents into objects | 19-Aug-97
| 5659747 | Multiple level undo/redo mechanism | ??9??-Aug-97
| 5659685 | Method and apparatus for maintaining network communications on a
computer capable of connecting to a WAN and LAN | 19-Aug-97
| 5659674 | System and method for implementing an operation encoded in a
graphics image | 19-Aug-9
| 56.59336 | Method and apparatus for creating and transferring a bitmap | 1g-Aug-g??
| 5657050 | Distance control for displaying a cursor | 12-Aug-97
| 5655154 | Method and system for sharing utilities between operating
systems | 05-Aug-g7
| 5655148 | Method for automatically configuring devices including a network adapter
without manual intervention and without prior configuration information | 05-Aug-97
| 5655077 | Method and System for authenticating access to heterogeneous
computing services | 29-Aug-97
| 5652913 | System for providing intercommunication of I/O access factors stored in
a shared data structure, accessed and maintained by both file System and device driver | 29-Jul-9
| 5652901 | Method and system for previewing computer Output | 29-Jul-97
| 5652888 | System for interconnecting software components in an object oriented
programming environment using a separate editor object/or each run-time object
instantiated for each selected component | 29-Jul-97
| 5652883 | Computer method and system for conservative-stack and generational
heap garbage collection | 29-Jul-97
| 5652602 | Fast serial data transmission using a CRT | 29-Jul-97
| 5651676 | Method of organizing and storing simulated scenery in a flight
simulation system | 29-Jul-97
| 5628005 | System and method for providing opportunistic file access in a
network environment | 06-May-97
| 5627997 | Method and system for converting computer mail messages using an
extensible set of conversion routines | 06-May-97
| 5625799 | Method and apparatus for determining the logic and functionality
of a changeline | 29-Apr-97
| 5625783 | Automated system and method for dynamic menu construction in a
graphical user interface | 29-Apr-97
| 5623674 | Method for determining steerable interrupt request lines used by
PCMCIA controllers | 22-Apr-97
| 5623651 | Method and system for repairing cross-linked clusters an d
reattaching lost directories on a storage device | 22-Apr-97
| 5623613 | System for displaying programming information | 22-Apr-97
| 5623282 | Method and system for the direct manipulation of cells in an
electronic spreadsheet program or the like | 22-Apr-97
| 5621894 | System and method for exchanging Computer data processing
capabilites | 15-Apr-97
| 5621875 | Method and system for automatic formatting of user selected text | 15-Apr-97
| 5619688 | Method and system for constructing database queries using a field
selection grid | 05-Apr-97
| 5617569 | Method and system for implementing pointers to members in a
compiler for an object-oriented programming language | 01-Apr-97
| 5617526 | Operating system provided notification area for displaying visual
notifications from application programs | 01-Apr-97
| 5613131 | Auto-formatting of tables in a spreadsheet program | 18-Mar-97
| 5613124 | Method and system for generating and storing multiple
representations of a source object in object storage | 18-Mar-97
| 5613123 | Method and system for configuring and executing device drivers
based on configuration requirements | 18-Mar-97
| 5613105 | Efficient storage of objects in a file system | 18-Mar-97
| 5613079 | System for verifying the proper operation of a replication
facility | 18-Mar-97
| 5613058 | Method and system for in-place interaction with contained objects | 18-Mar-97
| 5613019 | System and methods for spacing, storing and recognizing electronic
representations of handwriting, printing and drawings | 18-Mar-97
| 5611060 | Auto-scrolling during a drag and drop operation | 11-Mar-97
| 5611040 | Method and system for activating double click applications with a
single click | 11-Mar-97
| 5608909 | Method and system for caching presentation data of a source object
in a Presentation cache | 04-Mar-97
| 5608901 | Method and system for improving the contiguity of sectors of a
file | 04-Mar-97
| 5608853 | System and method for graphics scaling and localized color
enhancement | 04-Mar-97
| 5604897 | Method and system for correcting the spelling of misspelled words | 18-Feb-97
| 5604887 | Method and system using dedicated location to share information
between real and protected mode device drivers | 18-Feb-97
| 5604856 | Motion compensated noise reduction method_ and system for computer
generated images | 18-Feb-97
| 5604850 | Method and system for dynamically generating computer instructions
for performing a logical operation 0n bit maps | 18-Feb-97
| 5604849 | Overlay management system, and method | 18-Feb-97
| 5604847 | System and method of printer banding | 18-Feb-97
| 5603030 | Method and system for destruction of objects using multiple
destructor functions in an object-oriented computer system | 11-Feb-9
| 5602981 | Quickselect icon button on a computer display which redisplays the
last view style activated by the icon button | 11-Feb-97
| 5598563 | Method of loading device drivers from ROM without requirement of
system to have any harddisks or floppy drives and without using config.sys
file | 28-Jam-97
| 5598520 | Methods and apparatus for hinting a font for controlling stem
width as font size and resolution of output device vary | 28-Jan-97
| 5598519 | Method and system for direct cell formatting in a spreadsheet | 28-Jan-97
| 5598183 | System and method for computer cursor control | 28-Jan-97
| 5596755 | Mechanism for using common cede to handle hardware interrupts in
multiple processor modes | 21-Jan-97
| 5596726 | Method and system for buffering transient data using a single
physical buffer | 21-Jan-97
| 5596347 | System and method for computer cursor control | 21-Jan-97
| 5594905 | Exception handler and method for handling interrupts | 14-Jan-97
| 5594898 | Method and system for joining database tables using compact row
mapping structures | 14-Jan-97
| 5594847 | System and method for selecting free form objects associated with
a selection region displayed by a computer | 14-Jan-97
| 5594462 | Calibrating data transmission line spacing on a frame-scanning
display device for optically transmitting data to a Portable programmable
device | 14-Jan-97
| 5592670 | Avoidance of deadlocks in a demand paged video adapter | 07-Jan-97
| 5590347 | Method and system for specifying alternate behavior of a software
system using alternate behavior indicia | 31-Dec-96
| 5590336 | Method and apparatus for performing overlapping service of
multiple IDE peripheral devices | 31-Dec-96
| 5590318 | Method and system for tracking files pending processing | 31-Dec-96
| 5590267 | Method and system for scalable borders that provide an appearance
of depth | 31-Dec-96
| 5588147 | Replication facility | 24-Dec-96
| 5588100 | Method and system for creating .a freeform drawing object | 24-Dec-96
| 5588099 | Method and system for automatically resizing tables | 24-Dec-96
| 5586328 | Module dependency based incremental compiler and method | 17-Dec-96
| 5586318 | Method and system for managing ownership of a released
synchronization mechanism | 17-Dec-96
| 5585838 | Program time guide | 17-Dec-96
| 5583981 | Method and system for managing the size o? edit C?? graphical user
in interface | 10-Dec-96
| 5581760 | Method and system for referring to and binding to Objects using
identifier objects | 03-Dec-96
| 5581736 | Method and system for dynamically sharing RAM between virtual
memory and disk cache | 03-Dec-96
| 5581686 | Method and system for in-place interaction with contained objects | 03-Dec-96
| 5579517 | Common name space for long and short filenames | 26-Nov-96
| 5579466 | Method and system for editing and formatting data in a dialog
window | 26-Nov-96
| 5579223 | Method and system for incorporating modifications made to a
computer program into a translated version of the computer program | 26-Nov-96
| 5577224 | Method and system for caching data | 19-Nov-96
| 5577187 | Method and system for tiling windows based on previous position
and size | 19-Now-96
| 5577173 | System and method of printer banding | 19-Nov-96
| 5574920 | Method for controlling power down of a hard disk drive in a
computer | 12-Nov-96
| 5574907 | Two-pass defragmentation of compressed hard disk data with a
single data rewrite | 12-Nov-96
| 5574840 | Method and system for selecting text utilizing a plurality of text
using switchable minimum granularity of selection | 12-Nov-96
| 5572589 | Disc serialization | 05-Nov-96
| 5566068 | Method and system for locating field breaks within input data | 15-Oct-96
| 5565887 | Method and apparatus for moving a cursor on a computer screen | 15-Oct-96
| 5565886 | Method and system for rapidly transmitting multicolor or gray
scale display data having multiple bits per pixel to a display device | 15-Oct-96
| 5561788 | Method and system for executing programs using memory wrap in a
multi-mode microprocessor | 01-Oct-96
| 5561786 | Computer method and system for allocating and freeing memory
utilizing segmenting and free block lists | 01-Oct-96
| 5561751 | System and method for displaying a color image using vector error
diffusion | 01-Oct-96
| 5559943 | Method and apparatus customizing a dual actuation setting of a
computer input device switch | 24-Sep-96
| 5559884 | Method and system for generating and auditing a. signature for a
computer program | 24-Sep-96
| 5557723 | Method and system for customizing forms in an electronic mail
system | 17-Sep-96
| 5557714 | Method and system for rotating a three-dimensional model about two
orthogonal axes | 17-Sep-96
| 5557440 | Noise-insensitive optoencoding techniques with compensation for
device variations | 17-Sep-96
| 5553215 | Method and system of sharing common formulas in a spreadsheet
program and of adjusting the same to conform with editing operations | 03-Sep-96
| 5552982 | Method and System for processing fields in a document processor | 03-Sep-96
| 5551024 | System for identifying data records in a database using a data
structure with linked parameters in a search range | 27-Aug-96
| 5550972 | Method and apparatus for efficient transfer of data to memory | 27-Aug-96
| 5548759 | System for storing executable cede within a resource data section
of an executable file | 20-Aug-96
| 5548305 | Method and apparatus for displaying color on a computer output
device using dithering techniques | 20-Aug-96
| 5546518 | System and method for composing a display frame of multiple
layered graph sprites | 13-Aug-96
| 5544082 | Method and system for placing a computer in a reduced power State | 06-Aug-96
| 5537628 | Method for handling different code pages In text | 16-Jul-96
| 5537589 | Method and system for efficiently performing database table
aggregation using an aggregation index | 16-Jul-96
| 5535324 | Method and System for dragging and plotting new data onto an
embedded graph | 09-Jul-96
| 5530895 | System and method for computer interface board identification by
serially comparing identification address bits and asserting complementary
logic patterns for each match | 25-Jun-96
| 5530794 | Method and system for handling text that includes p-paragraph
delimiters of differing formats | 25-Jun-96
| 5528742 | Method and system for processing documents with embedded fonts | 18-Jun-96
| 5526523 | Interface between operating system and operating system extension | 11-Jun-96
| 5522068 | Statistic-based reorganization of B-trees yielding an approximate
optimal fill on substantially every page | 28-May-96
| 5519855 | Summary catalogs | 21-May-96
| 5517645 | Method and system for interfacing components via aggregate
components formed by aggregating the components each with an instance of a
comp0nent manager | 14-May-96
| 5517257 | Video control user interface for interactive television systems
and method for controlling display of a video movie | 14-May-96
| 5515536 | Method and system for invoking methods of an object through a
dispatching interface | 07-May-96
| 5512921 | Visual display system having low energy data storage subsystem
with date compression capabilities, and method f0r operating same | 30-Apr-98
| 5511197 | Method and system for network marshalling of interface pointers
for remote procedure calls | 23-Apr-96
| 5510980 | Method and system for selecting and executing arithmetic functions
and the like | 23-Apr-96
| 5510811 | Apparatus and method for controlling cursor movement | 23-Apr-96
| 5506983 | Method and system for transactioning of medifications to a tree
structured file | 09-Apr-96
| 5504889 | Method and system for monitoring file attributes using bitmaps to
determine group membership of files and to determine which files have been
processed | 02-Apr-96
| 5504500 | User programmable orientation of cursor movement direction | 02-Apr-96
| 5499369 | Method and system for connecting objects using alert and running
states | 12-Mar-96
| 5499335 | Method and system for Providing standard resources in different
natural languages | 12-Mar-96
| 5499334 | Method and system for displaying window configuration of inactive
programs | 12-Mar-96
| 5497492 | System and method for loading an operating system through use of a
fire system | 06-Mar-96
| 5495571 | Method and system for performing parametric testing of a
functional programming interface | 27-Feb-96
| 5495566 | Scrolling contents of a window | 27-Feb-96
| 5490274 | Modified buddy system for managing disk space | 06-Feb-96
| 5485617 | Method and system for dynamically generating 0bject connections | 16-Jan-9
| 5485574 | Operating system based performance monitoring 0f programs | 16-Jam-96
| 5485558 | Method and system for displaying color on a computer output device
using dithering techniques | 16-Jan-96
| 5485460 | System and method for running multiple incompatible network
protocol stacks | 16-Jan-96
| 5481667 | Method and system for instructing a user of a computer system how
to perform application program tasks | 02-Jan-96
| 5473691 | System and method !or computer data transmission | 05-Dec-95
| 5473344 | 3-D cursor positioning device | 05-Dec-95
| 5473343 | Method and apparatus for locating a cursor on a computer screen | 05-Dec-95
| 5471564 | System and method for dynamic printer timeout | 28-Nov-95
| 5471563 | System and method for automatic resolution reduction | 28-Nov-95
| 5467472 | Method and system for generating and maintaining property sets
with unique format identifiers | 14-Nov-95
| 5455600 | Method and apparatus for mapping colors in an image through
dithering and diffusion | 03-Oct-95
| 5452406 | Method and system for scalable borders that provide an appearance
Of depth | 19-Sep-95
| 5450536 | Technique for automatically resizing tables | 12-Sep-95
| 5446887 | Optimal reorganization of a B-tree | 29-Aug-95
| 5442793 | Method and system for locating an inherited virtual function
member of a derived class | 15-Aug-95
| 5442751 | Method and apparatus for processing data through a register potion
by portion | 15-Aug-95
| 5437036 | Text checking application programming interface | 25-Jul-95
| 5437013 | Method and system for network communications using raw mode
protocols | 25-Jul-95
| 5437006 | Spreadsheet command/function capability from a dynamic-link
library | 25-Jul-95
| 5432941 | Method and system for dynamically configuring a software System
using configurati0n groups | 11-Jul-95
| 5432936 | Method for implementing pointers to members in a compiler for an
object-oriented programming language | 11-Jul-95
| 5432928 | Updating objects stored in a permanent container while preserving
logical contiguity | 11-Jul-95
| 5432924 | Method and system for selectively applying an appropriate object
ownership model | 11-Jul-95
| 5430878 | Method for revising a program to obtain compatibility with a
computer configuration | 04-Jul-5
| 5426760 | Method and system for storing index information using a base
number of bits | 20-Jun-95
| 5426729 | Method and system for nonuniformly adjusting a predefined shape | 20-Jun-95
| 5418956 | Method and System for avoiding selector loads | 23-May-95
| 5416726 | Method and system for placing a computer in a reduced power state | 16-May-95
| 5414445 | Ergonomic pointing device | 09-May-95
| 5412807 | System and method for text searching using an n-ary search tree | 02-May-95
| 5410705 | Method for generating an object data structure layout for a class
in a compiler for an object-oriented programming language | 25-Apr-95
| 5394518 | Luminance sensitive palette | 28-Feb-95
| 5392427 | System for updating data stored on a flash-erasable, programmable,
read-only memory (FEPROM) based upon predetermined bit value of indicating
pointers | 21-Feb-95
| 5381521 | System and method of rendering curves | 10-Jan-95
| 5381347 | Method and system for displaying images on a display device using
an offscreen video memory | 10-Jan-95
| 5375241 | Method and system for dynamic-link library | 20-Dec-94
| 5371891 | Method for object construction in a compiler for an object-oriented programming language | 06-Dec-94
| 5371885 | High performance file system | 06-Dec-94
| 5371847 | Method and system for specifying the arrangement of windows on a
display | 06-Dec-94
| 5369770 | Standardized protected-mode interrupt manager | 29-Nov-94
| 5367617 | System and method of hybrid forward differencing to render Bezier
splines | 22-Nov-94
| 5363487 | Method and system for dynamic volume tracking in an installable
file System | 08-Nov-g4
| 5363479 | System and method for rendering bezier splines | 08-Nov-94
| 5357605 | Method and System for displaying patterns using a bitmap display | 18-Oct-94
| 5357603 | Method and system for changing, a shape type while maintaining
existing graphic characteristics | 18-Oct-94
| 5341464 | Luminance emphasized color image rendering | 23-Aug-94
| 5339432 | Method and system for providing user control of device driver
configuration | 16-Aug-94
| 5327562 | Method for implementing virtual function tables in a compiler for
an object-oriented programming language | 05-Jul-94
| 5301326 | Method and system for controlling the execution of an application
program | 57-Apr-94
| 5300946 | Method for outputting transparent text | 05-Apr-94
| 5297284 | Method and system for implementing virtual functions and virtual
base classes and setting a this pointer for an object-oriented programming
language | 22-Mar-94
| 5287514 | Method and System for customizing a user interface in a computer
system | 15-Feb-94
| 5287417 | Method and system for recognizing a graphic object's shape, line
style, and fill pattern in a pen environment | 15-Feb-94
| 5281958 | Pointing device with adjustable clamp attachable to a keyboard | 25-Jan-94
| 5274751 | System and method for printing graphic objects | 28-Dec-93
| 5272628 | Method and system for aggregating tables having dissimilar formats | 21-Dec-93
| 5268675 | Computer command and pointing device with multi-axis engagement
assembly | 07-Dec-93
| 5265261 | Method and system for network communications using raw mode
protocols | 23-Nov-93
| 5261101 | Method for calling and returning from subroutine that is invoked
by either a near call or a far call | 09-Nov-93
| 5261051 | Method and system for open file caching in a networked computer
system | 09-Nov-93
| 5257370 | Method and system for optimizing data caching in a disk-based
computer system | 26-0ct-93
| 5255356 | Method for hiding and showing spreadsheet cells | 19-0ct-931
| 5247658 | Method and system for traversing linked list record based upon
write-once predetermined bit value of secondary Pointers | 21-Sep-93
| 5231577 | Method and system for processing formatting information in a
spreadsheet | 27-Jut-93
| 5220675 | Method and system for customizing a an user interface in
integrated environment | 15-Jun-93
| 5218697 | Method and system for networking computers having varying file
architectures | 08-Jun-931
| 5214755 | Document processing method and system | 25-May-92
| 5204960 | Incremental compiler | 20-Apr-93
| 5187468 | Pointing device with adjustable clamp attachable to a keyboard | 16-Feb-93
| 5146580 | Method and system for using expanded memory for operating system
buffers and application buffers | 08-Sep-92
| 5138303 | Method and apparatus for displaying color on a computer output
device using dithering techniques | 11-Aug-92
| 5125077 | Method of formatting data from am use | 23-Jun-92
| 5027273 | Method and operating system for executing programs in a multi-mode
microprocessor | 25-Jun-91
| 5021974 | Method for updating a display bitmap with a character string or
the like | 04-Jun-91
| 4974159 | Method of transferring control in a multitasking computer system | 27-Nov-90
| 4967378 | Method arid system for displaying a monochrome bitmap on a color
display | 30-Oct-90
| 4866602 | Power Supply for a computer peripheral device which positions a
cursor on a computer display | 12-Sep-89
| 4825358 | Method and operating system for executing programs in a multi-mode
microprocessor | 25-Apr-89
| 4779187 | Method and operating system for executing programs in a multi-mode
microprocessor | 18-Oct-88
|
Exhibit I
Shared Source vs. Open Source: Panel Discussion
08/09/2001
Part 1: The Debate
Tim:
Sounds like some of Michael's speech was maybe a
treaty with the free software people. [laughter]
Anyway, there probably are divisions within
Microsoft just as there are divisions within our community. It's kind
of interesting, because the diversity of opinions often leads not to
division but to strength, and I think we're going to demonstrate that
strength as we hear from a number of people who are prominent in our
community and are allied under the banner of the core principles of
open source, but who do have different takes on how it works and
what's important about it.
Anyway, I'd like to invite up the rest of our
panel. Michael and Craig, you may want to come back up and sit
down.
Panelists:
Clay Shirky
Accelerator Group
Shirky.com
Michael Tiemann,
Chief Technical Officer
RedHat
David Stutz
Software architect
Microsoft
Mitchell Baker
Chief
Lizard Wrangler
Mozilla.org
Ronald
Johnston
Partner
Arnold & Porter
Craig Mundie,
Senior Vice President Advanced Strategies
Microsoft
Brian Behlendorf
Founder & CTO
CollabNet
Tim
O'Reilly
Founder & President
O'Reilly
& Associates
|
I have here with us Brian Behlendorf, who's one of
the cofounders of the Apache Project. [applause] I'll just start down
at the far end, then.
Clay Shirky is a partner at an incubator called
the Accelerator Group. He's also a well-known commentator on coming
technologies, and he's recently done some very interesting thinking about some of Microsoft's new technologies, in particular Hailstorm.
That's why he's here to talk to us. [applause]
Dave Stutz is, I believe, now the program manager
for the shared source implementation of the common language run time
and so forth. Is that the appropriate designation?
Dave:
Sure. It'll work.
Tim:
Dave is �
Dave:
� Craig's Mini-Me
.
Tim:
Yeah, I was going to say, I don't know, maybe
something like, if you had the hat [reference to the red hats on
heads all through the room], I would say, "Mini-Me. Do not chew
on your hat." [laughter]
Next in line is Mitchell Baker, who's known as the
Chief Lizard Wrangler at Mozilla.org. Mitchell is also the person who
wrote the Mozilla license,
so she's done a lot of thinking about free software and open source
licenses and the needs of corporations. [applause]
We have with us Ron Johnson, who's an attorney at
Arnold & Porter and the chair of the 22nd Annual Computer and
Internet Law Institute.
And obviously you know Craig, and I already
introduced Brian.
So, Craig, I don't know if you wanted to respond
at all to any of Michael's comments [laughter], or whether you want
to hear from a few other people before we get there.
Craig:
I'll just offer one general thought, which is, you
know, in some sense it's easy to poke fun or think you know what is
the look-in from the outside and to be at Microsoft.
We're a company now of 50,000 people, and among
any community of 50,000 people, particularly fairly smart people,
you're going to have a lot of people who think carefully about a lot
of issues, and feel passionately as you do about a lot of issues. So
I don't think we're embarrassed at all to find that people would come
forward at Microsoft and ask questions or ask whether we do the right
thing or not.
What I can tell you is that there is a
single-purpose focus in the management of the company. The leadership
of the company is not uncertain about what we're doing. We welcome
people asking questions in the company, but ultimately we recognize
our job is to make decisions and provide consistent leadership. And
so if people don't like what the company wants to do, there's no
indentured servitude. You know, they're free to go do something else.
But the company is clear about what it will do. And I can just tell
you that as a member of a management committee of the company, and
while listening to Michael's comments that many of the ways he
characterizes what he thinks may go on inside the company in terms of
a civil war or anything, frankly [it] just doesn't exist. It may be fine
to ruminate about what you think could exist or does exist. I can
tell you quite specifically, there's no civil war at the management
level and, to me, no observable civil war among the rank and file
either. So that's one thought I'd leave with you today.
Tim:
So, Brian, you're obviously someone who has, you
know, come up from the GPL side of the house but from the university
style of license regime. Clearly you have done a lot of thinking
about what licenses you would choose and why. Do you have any
thoughts on that, or any things you'd like to talk to Craig about
with regard to the BSD orientation.... [laughter]
Brian:
Sure. [more laughter] You don't want to call on
anybody else, do you? [laughter]
One of the slides in [Craig Mundie's] presentation
was actually a very useful slide. It showed that there is a
relationship � a set of relationships � between the
public research through universities, corporations, users, and
government. I think what we've seen is that it's not
one-directional like that. What we've seen is that it's actually
bi-directional in all those things � in fact, bi-directional
across universities and consumers and government and business and all
those directions.
And so while Apache, for example, is under a
BSD-style license, it was very important while we were building the
Apache community that we not only have other corporations use it and
adopt it into their commercial products, but also that we communicate
to those companies the need to reinvest back, the need to build
Apache itself as a strong force as they build up the momentum behind
it. And to us, even though the obligation isn't there to share their
code back, the companies that are participating in the Apache
Software Foundation and even more broadly, within the BSD communities,
understand the need to reinvest, to build it back up. And that's one
thing that I think may be missing in some of this debate: the
creation of licenses, the creation of regimes that really are
bi-directional, that really put all the participants at an equal
level.
I totally welcome Microsoft exploring shared
source licenses. I think for proprietary software, I'd much rather
have the code to it than not have the code to it. I think we're going
to see a big difference in the amount of resources that people will
put in to a shared source license regime versus one that is an open
source license regime. So it's all a matter of experimentation. I'm
all for experimenting with different licenses. I think history has
shown that open source is a more efficient way to go in certain
circumstances. At the same time, there are 10 million Microsoft
developers out there who might have a different opinion. I think it's
worth finding out.
Craig:
One thought on that. I agree with you that it is
bi-directional, and in a way, when you look at all the different
licensing regimes, you're correct to point out that there are many
different ways to give back. In a sense, giving the code back
is just one way. You know giving taxes to the government to give back
is essentially another institutionalized way.
Tim:
So how much does Microsoft pay in taxes? [laughter]
Craig:
It's a lot. I don't know the exact number this year,
but it's billions. One of the things that we've been fascinated by,
and I guess you could say it's some benchmark of this, [is that] this
week, as I kind of predicted in May, we actually came out with this
Windows CE source license. I guess we actually
posted it three, maybe four days ago. And the first three
days, ten thousand people downloaded the entire source tree. And we
had had a kit that we had offered to people who just wanted to use it
for commercial purposes and we had sold about four hundred of those
in the last year. I guess only time will tell whether people will
decide that they really want to make an investment or whether they're
just curious. But we were quite happy to see that when we offered it
for non-commercial use � really targeting the academic
environment, primarily � that ten thousand people in the first
three days decided to take it and take a look at it. So we're
enthused with that kind of reaction, and it is, you know, some way of
giving back. You know, we give back financially, we give back in the
standards world, as Michael said, with XML and other things. I mean,
well before XML, we've been a big participant in the process of
standardization, and so I think we will continue to seek ways to
share and give back.
Copyright � 2000-2002 O'Reilly & Associates, Inc. All Rights Reserved.
Exhibit J
Microsoft patents a threat to open source
By Peter Galli
eWEEK
August 28, 2001
Members of the open-source community are becoming increasingly concerned by ongoing moves from Microsoft Corp. to acquire a range of software patents that the company can potentially use down the line to attack and try to restrict the development and distribution of open-source software.
And much of that concern is being directed toward open-source desktop company Ximian Inc.'s Mono Project, an open-source initiative to replace part of Microsoft's .Net product line, including a way to run C# programs and the .Net Common Language Infrastructure on Linux.
Leading the charge is Bruce Perens, Hewlett-Packard Co.'s open-source and Linux strategist who helped to craft the Debian Social Contract, which later became the Open Source Definition.
Perens told eWEEK in an interview on Monday in San Francisco ahead of the LinuxWorld conference that an increasing number of people in the open-source community are very concerned about the Mono Project and by Microsoft's initiative to buy software patents and to patent as much of its own technology as it can.
"If I were in Microsoft's position, I would be looking through all the patents I had been buying that are potentially being infringed by open-source software," Perens said. "They are going to hold onto these patents until they see what happens with the antitrust case against them. Once that is resolved, they will then use them against the open-source industry."
But Doug Miller, the director of competitive strategy for Microsoft's Windows division, told eWEEK he was unaware of any intended move by Microsoft to acquire software patents. "Not to say it isn't happening, but I'm not aware of any such planned attack," Miller said.
"With that being said, we strive to protect our intellectual property, and holding patents is one of the ways we do that. But nothing has changed, we're certainly no more aggressive now about filing patents or other copyright protections than we have been over the past couple of decades," he said.
But Perens isn't buying this, saying that with regard to the Mono Project, Ximian needs to draw up an advance agreement with Microsoft that states the Redmond, Wash., company does not intend to assert its patents on this technology.
"If we don't get that agreement, I'll be happy to see Ximian implement this stuff, but I'm not sure I'll touch it," Perens said. "I'm also not sure I want to let it touch the rest of GNOME [GNU Network Object Model Environment] very much because if GNOME becomes dependent on it, it would have a potential weakness there."
Ximian is an active contributor to the GNOME Project, which has built a desktop environment for the user and a powerful application framework for the software developer. Ximian in fact this week launched two versions of the boxed Ximian Desktop, which includes the GNOME desktop interface.
No Linux app is safe
But Miguel de Icaza, the chief technical officer at Ximian, disagreed with Perens, saying that any application that runs on Linux could be infringing on some hidden and unknown patent owned by Microsoft.
"Microsoft has not historically used its patents in an aggressive way," he said. "They've previously used it to defend themselves. While I suppose they might use it for attack purposes going forward, I don't think they'll go after Mono as we are only in the early stages and are sticking to developing technology from existing concepts. There's nothing new in .Net; it's just a combination of existing technologies."
Nat Friedman, Ximian's vice president of product development, also stressed that Ximian is not co-operating with Microsoft on the Mono Project. "They are not assisting us in any way," he said. "We have talked to them twice - that's the extent of it.
"We believe this technology and infrastructure is too important to be controlled and wholly owned by Microsoft. We believe there has to be a free implementation of it out there," he said.
But while Perens acknowledged that Microsoft has largely not invoked its patent rights to date, he said, "Past performance is not predictive of future behavior. Microsoft's [senior vice president] Craig Mundie has previously said the company intends to enforce all its patents."
An example of a patent held by Microsoft that could be detrimental to open-source initiatives going forward was clearly demonstrated in the password change protocol found in Samba, he said. Microsoft had modified the password change technology and then patented the new protocol of the password change.
"This means you cannot make a compatible implementation without potentially infringing on a Microsoft patent," Perens said. "We went ahead and did it anyway, and Microsoft hasn't enforced that patent, but it doesn't mean they never will. This is a telling case as they've taken what was an open protocol and deliberately put in a patent to close it and then introduced the patented feature in all new systems."
Samba, which develops open-source software that lets a Linux machine share files or manage print jobs like a Windows file server or print server, has included this patented technology. "In the climate of antitrust it would be nice to force them to overplay their hand, and Microsoft overplays their hand consistently," Perens said.
But while Jeremy Allison, a lead developer for Samba, confirmed that Microsoft holds the patent for the password change protocol, he believed this "was done with no malicious intent at all. All big companies patent software for protection. I also think this is probably a defective patent anyway," he said.
Microsoft's Mundie said he wasn't familiar with the Samba example, "but in any case where someone reverse-engineers technology -- and there's certainly lots of this in the Linux world -- there's always the risk they'll infringe on someone's patent. We highly value intellectual property and the laws created to protect this," he said.
But Samba's Allison said the Mono Project is "a very bad idea -- in fact, it's a terrible idea. By doing this they are helping .Net become a standard. � .Net will become important if a majority of the clients use it, but it will not be mandatory if only, say, 50 percent use it, as Web sites will then still have to do Java stuff," Allison said. "By implementing an open-source version of this, they are making it easier for Microsoft to get to that magic monopoly figure.
"And when they've got that on the client, all the servers are in trouble. Look at the way they leveraged their client base to take over services like authentication, e-mail with Exchange, and DNS services by tying Active Directory to DNS. It's a continual case of taking their monopoly on a client system and tying servers to it," he said.
Copyright � 2002 CNET Networks, Inc. All rights reserved. ZDNet is a registered service mark of CNET Networks, Inc. ZDNet Logo is service mark of CNET Networks, Inc. Content originally published in Ziff Davis Media publications is the copyrighted property of Ziff Davis Media. Copyright � 2001 Ziff Davis Media. All rights reserved. Titles of Ziff Davis Media publications are trademarks of Ziff Davis Publishing Holdings Inc.
|