decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Semantics | 132 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Semantics
Authored by: Anonymous on Thursday, May 17 2012 @ 11:41 PM EDT
How much thought do you suppose went into the wording of the patent? From what
I know about patents, the goal is to make them as broad as possible by using
ambiguous words and phrases. That practice can come in useful if the patent
ever gets litigated (as we are now seeing).
The idea of patenting a "symbolic reference" is absurd.

[ Reply to This | Parent | # ]

  • Semantics - Authored by: Anonymous on Friday, May 18 2012 @ 12:48 AM EDT
    • Semantics - Authored by: Anonymous on Friday, May 18 2012 @ 12:12 PM EDT
    • Index units - Authored by: Anonymous on Friday, May 18 2012 @ 04:00 PM EDT
Numeric memory location
Authored by: Anonymous on Friday, May 18 2012 @ 12:54 AM EDT
Oh, wise "over educated" computer scientist, please tell me more of
the false dichotomy of which you speak.

For, is it not true that BOTH Oracle's and Google's claims can be true at once?
I put it to you that one does not exclude the other.

Indeed, Oracle would like "numeric reference" to mean only one thing,
but by the very definition it should include all references that are numeric in
nature.

Wise sage, please illuminate my erroneous assumption and bring us peace by
dividing the one into two separate concepts -- The possibility of conjunction is
too much for my small self educated mind to bear.

[ Reply to This | Parent | # ]

Numeric memory location
Authored by: Anonymous on Friday, May 18 2012 @ 02:55 AM EDT
It isn't.

The reason is that the patent wouldn't have been issued for resolving numeric
references since every compiler does that anyway and has done since since
compilers were invented.

That's what Google failed to get across, Oracles patent is narrowly worded so
they could GET the patent issued in the first place - the slightest step out
side those bounds, no violation.


[ Reply to This | Parent | # ]

Patent claims must limit scope
Authored by: csawtell on Friday, May 18 2012 @ 03:08 AM EDT

The court may have to look beyond its poor definitions to resolve this.

Since the claim language limits the claim to "symbolic", and we know that the alternative is "numeric", we must consider that the claim limitation actually precludes some "non-symbolic" references.

Being that process on modern computers are inevitably sufficiently sandboxed to preclude writing to "real" hardware memory addresses (unless you are working at the OS or kernel level), all "numeric" memory values are actually symbolic in one sense, in that they are re-mapped to physical memory locations at some other level of abstraction in the system. Hence Oracle can, in a reasonable sense, claim that Android's numeric references are "symbolic."

So if you apply "symbolic" to include numeric indexes or numeric registers, since these aren't the "actual" hardware memory locations, then you have in fact argued that the term "symbolic" should be defined such that it provides no limitation on the scope of the claim. Any value could be considered a symbolic value.

If we instead use Googles argument, that numeric indexes are non-symbolic in that they do not require a step to "resolve" the symbol to a numeric value, then we have a distinction that actually limits the claim, providing a difference between "symbolic" references and those that are non- symbolic (numeric). Since this is the interpretation that legitimizes the claim limitation, it should be the proper one.

---

My ideas are my own - if you agree with me, does that make you a thief?

[ Reply to This | Parent | # ]

Numeric memory location
Authored by: Chromatix on Friday, May 18 2012 @ 06:58 AM EDT

Both Oracle and Google seem to have established that what is involved is, in fact, indirect references to values, which before dexopt are symbolic and after dexopt are not. Where they differ is whether:

1) An indirect reference to a symbolic reference is sufficient to consider the symbolic reference itself to be "inside" the instruction.

2) An indirect reference is itself a form of symbolic reference.

Google, and most of the rest of the tech community, are of the opinion that neither is true, at least in the context given.

The first point is arguable, but Google presented a pretty compelling argument that is easy for lay people to understand - the data representing the symbol that has to be searched for is in a completely different location (in a table in one of several non-executable data sections) to the instruction referencing it (which, obviously, is in an executable section).

The second point is easy to disprove by appropriately defining "symbolic reference" as "a reference which has to be resolved by searching, rather than by (a series of) simple lookups". There are a number of different methods of searching, some more efficient than others, but it should be pretty clear that chasing a pointer a small, fixed number of times is not a search.

So, to requote an example I gave earlier, suppose you have a reference to a verse in the Bible, which you want to look up in your electronic copy. You need to search in the list of book names to resolve the name of the book (a symbolic reference) into a direct reference to the correct book (consisting of a list of chapters, each of which is a list of strings that are verses). After that you can simply index to the chapter and then to the verse.

You could define a data structure containing the name of the book and the chapter and verse numbers. A reference to this structure would be an indirect symbolic reference (the book lookup), with two-level post-indexing (the chapter and verse lookups).

You could also add a fourth field to that data structure which contains the index of the book (eg. for Genesis this would be zero indicating the first book, Exodus would be index 1, Relevations would have the highest index indicating the last book), obtained by searching the list of book names. A reference to that structure, assuming it had already been resolved, would now be a triple-indexed indirect reference, with nothing symbolic about it - the fact that the symbol is still present is irrelevant, since it is no longer used. Indeed you could delete the symbol name and, if you do need it later, use the book index on the list of book names.

[ Reply to This | Parent | # ]

Some good discussion, but missing an important point
Authored by: Gringo_ on Friday, May 18 2012 @ 09:17 AM EDT

Obviously to we programmers, a "symbolic reference" is not an index - they are two very different things. However, what a "symbolic reference" means to us doesn't apply in the instant case, because what meanings to apply to these words was already resolved by the parties involved. Now they need to prove or disprove their case using the definitions they all agreed to, not what we think these words means.

From Oracle's argument...

A field index in a Dalvik bytecode instruction meets the Court’s definition of “symbolic reference.” The Court construed the term “symbolic reference” as “a reference that identifies data by a name other than the numeric memory location of the data..."

So without actually going to the document where the agreed definitions are, we can take Oracle at its word here as to the definition that was agreed upon. A symbolic reference is a reference that identifies data by a name. Now they didn't define "name", so that must take on its ordinary meaning. They also didn't define "field index" so index must also take on its ordinary meaning. Clearly a name is not an index, and there is no way the conventional view could possibly equate a name with an index. A rose is not a petunia. Oracle has gone well beyond arguing a rose is a petunia and is saying a rose is a bicycle.

[ Reply to This | Parent | # ]

Numeric memory location is where the data is
Authored by: Anonymous on Friday, May 18 2012 @ 03:55 PM EDT

I think the defining characteristic of the "numeric memory location" is that it is sufficient to get the data. If the JVM's JITC's convention is to keep the address of the current Object (called "this" in Java) in a register, then a "numeric memory location" for this.xyz may well be an offset from the address in that register.

By contrast, a symbolic reference is something that won't get you to the data without looking up a name like "xyz" in some table somewhere.

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )