[dsdl-discuss] Patent (was Re: Re: New XML Drafts of Part 3 and Part 7)

From: Rick Jelliffe <ricko@allette.com.au>
Date: Tue Apr 20 2004 - 16:43:46 UTC

MURATA Makoto wrote:

> Thanks for the Part 3 draft. As I requested before, please
> mention the patent issue. This is required by ISO/IEC directives, Part 1.

What form does the reference or material have to take? Can someone
track down the URL for what I have to do please?

Here is my research on the patents.

PATENT
-------

Prof Anthony Finkestein, etc. at University College London have a
UK patent
GB2351165 "Monitoring and maintaining the consistency of documents" [0]

Their company SystemWire now markets a product based on it, XLinkIt.

"Consistency" here is very specific: it refers to when several different
document have data relating to the same object (perhaps in different
forms) and you want to assert that the different data agrees: if the
General Journal says that the widget cost $1000 today, when this is
posted to the General Ledger, the value should be the same, to take a
financial example. Consistency checks take the general form "For every W
in X there must be a Y in Z"

The patent was applied for before Schematron was developed, but not
granted and publicized until after. We have had friendly relations over
the years (they even paid for me to fly to Toronto for a conference)
and they agreed at the time that this was a case of independent
invention, when I showed them that Schematron was based on articles
I had written previously (such as "Using XSLT as a Validation
Language") and was a response to issues I found in writing my 1997 book
on patterns in documents.

So their scope is much broader than validation and includes user
interfaces and handling updates to documents.

I am currently corresponding with them again. We had agreed in email
correspondence in early 2000 that Schematron does not violate
their patent.

Their patent is couched in terms of
<consistency>
   <source> some XPointer to some data </source>
   <destination> some other XPointer to some data </destination>
   <constraint> some constraint in their expression language
     in terms of sources and destinations
   </constraint>
</consistency>
but later (p 56, 57) it mentions that other kinds of rules
are possible, in particular rules using variables and comparisons
of "rules based on comparisons of one or more pieces of data
within structured documents" (which seems to mean comparisons
against constants). At first glimpse, this does not look good
for Schematron.

WHAT THE INVENTORS HAVE SAID
----------------------------

In articles written by their team, they acknowledge Schematron:
see [1] "Most significantly, Schematron does not provide link
generation" The clearest expression of the difference is in [2]
at page 25

"Our work has some analogies with Schematron...an XML structure
validator which employs XSL and XPath to traverse documents and
check constraints. Schematron was built as an alternative to
traditional, grammar based systems for document validation.
The focus of our work is clearly different as we are interested
in relationships between distributed documents. Checking constraints
between multiple documents can be acheived in Schematron using
the XPath document function, which would however hardcode the
names of documents. Our strict distinction between rule sets and
document sets, and the transparency of our rules with respect to
underlying storage, allows the same set of rules to be applied
to multiple sets of documents. Schematron also does not generate
hyperlinks, one of the important components of our approach."

Please note that "hyperlink" above means specifically XLinks,
between XML views of different kinds of data. The above comment
is not strictly correct, by the way, it is possible to generate
the URLs for the document function dynamically.

WHAT THE INVENTORS HAVE IMPLEMENTED
-----------------------------------

XLinkit has an expression language, CliX [3]:
" Some similarities exist between CLiX and [Schematron], since both
languages are assertion languages, and both are path based.
Historically, CLiX had been developed slightly before Schematron, but
was the result of research at University College London, and hence had
not been as widely distributed as the Schematron community effrot. CLiX
differs from Schematron in its degree of expressiveness: first order
logic is more expressive than boolean logic, and many constraints where
Schematron requires scripting can be handled natively in CLiX."

Actually, I believe that CliX has changed form under the
influence of Schematron, as far as its syntax. But CliX is very nice,
and it is the only other path-based assertion language that is
substantially more powerful than Schematron. (There have been several
other independent re-inventions of Schematron: some, such as the
Portuguese XCSL, have had features not in Schematron 1.5, so we borrowed
them with the developer's blessing, others such as the Beijing IBM
language were subsets.)

For other material on XLinkit, see [4]. SystemWire are active in
FpML[5][6]. An interesting paper on repair is at [7].

PRIOR ART
---------
In considering this patent, we need to be get rid of silly
interpretations: I am concerned that people will panic.
Patents are always expressed more generally than they actually
are. Let us look at some prior art.

ISO DTDs allow specification of constraints on values: enumerations
of attribute values, for example. So just because a schema
language allows value constraints does not mean it falls foul
of the patent.

W3C XML Schemas allow key/keyref constraints, specified in external
schema documents whose location may not come from information
in the document itself. So just because a schema or set of rules
imposes static, identity or uniqueness constraints on data
values within a document does not mean it falls foul of this patent.

My article "Using XSL as a Validation Language", which was published
in the International SGML User's Group Journal as well as the Web,
already had stated how to use XSLT for validation. As far as this
is concerned, the difference between using XSLT and using
Schematron's default binding is just syntax. So just because
a language uses paths or rules/templates does no mean it falls
foul of this patent. Their patent was applied for
18.06.1999 but my article was published on the web[8] in
January 1999 (six months before) and published in the July
Interchange. This article included sample code which generated
(in text) the ID or node number in question: generating a
link from this would be trivial and obvious.

Furthermore, the idea of having hyperlinks between
validation results and schema components was one of the
reasons for adopting XML Syntax. There are many references
to this. Consequently, this further limits the scope to
links between multiple instance documents, not links between
an instance document (and its computed or hardcoded
ancilliar documents/schemas?) and a schema.

POINTS
-------

So, as I see it:

  1) An essential aspect of their patent is the generation of links.
   It is not a necessary part of Schematron to generate links.
   It is an issue for implementors or writers of schemas, if it
   is an issue at all.

  2) Schematron both as a framework and in any possible language
   binding is not affected by the patent at all because the validation
   function is not specified as returning links. That is an
   implementation issue.

  3) The non-normative annex with the Simple Validation Report Language
   does point to things. However, these pointers are always to
   structures, never to data per se. Furthermore, these links relate
   to the wording of the assertion, rather than locating two values
   that should be consistent (except for the context.)

  4) RELAX NG and all schema languages are just as susceptible to
   this patent as Schematron is: there is no definition of "rules"
   given that limits them to logical expressions rather than grammar
   productions. For example, a rule whereby one attribute with certain
   data values requires some subelements which have attributes with
   certain values nominally is caught by this patent. Except, as I
   mention, they are not caught at all.

  5) The patent does not affect the two major implementation techniques
  for default Schematron: translation to XSLT and visiting every non-text
  node in a tree to see if it matches a context.

There are also some minor quibbles: is a Schematron schema a "set" of
rules?

EXAMPLE
-------

A user who has a schema which:
   1) checks the consistency of one document against other
    documents (because of W3C XML Schemas, the patent cannot
    apply generally to value constraints within a document), and
   2) that consistency relates to data values not structure, and
   3) uses the document function with generated DTDs if there are
    multiple documents, and
   4) uses the subject attribute on the assertions to provide the
    link, and
   5) uses the role attribute on asserts and subjects, to provide
    the source and destination of a consistency link, and
   6) then runs on an implementation that generates XML with hyperlinks
    linking both constraints that succeed and constraints that fail
*may* be violating their patent.

Let us look at a constraint that Schematron would typically be used
for: that number of columns in a table is not more than the cols
attribute. Is this kind of constraint a "consistency" constraint?
No, because it is concerned with structure, is within the same
document, and is instance of extended value-to-structure validation
my article specifically mentions.

Cheers
Rick Jelliffe

[0]
http://gb.espacenet.com/search97cgi/s97is.dll?Action=View&ViewTemplate=e/gb/en/viewer.hts&collection=dips&SearchType=1&VdkVgwKey=GB2351165A

[1] http://www.cs.ucl.ac.uk/staff/c.nentwich/publications/RN/ht2001.html
[2]
http://www.cs.ucl.ac.uk/staff/c.nentwich/publications/journal/xlinkit.html
[3] http://www.clixml.org/clix/1.0/
[4] http://www.cs.ucl.ac.uk/staff/c.nentwich/publications/RN/flexible.html
[5] http://www.fpml.org/spec/index.asp
[6] http://www.systemwire.com/FpML/validator/
[7] http://www.systemwire.com/whitepapers/repairactions.pdf
[8] http://xml.ascc.net/xml/en/utf-8/XSLvalidation.html

--
DSDL members discussion list
To unsubscribe, please send a message with the
command  "unsubscribe" to dsdl-discuss-request@dsdl.org
(mailto:dsdl-discuss-request@dsdl.org?Subject=unsubscribe)
Received on Tue Apr 20 18:43:56 2004

This archive was generated by hypermail 2.1.8 : Fri Dec 03 2004 - 14:00:28 UTC