Leviani

Hi,

I tried to post a question in another post but noone seemed to know.
My investigations got me some more informations but still no clue to this issue.

I am trying to access a handwriting recognition engine, which should be build in Windows Vista somewhere.
As it seems, there are many different engines and I can¡¯t seperate them from each other.
Maybe someone could help me out of this jungle of informations.

As it seems working engines are inclduded into :
Office XP/2003 Enterprise Edition (only english)
Tablet XP OS
Vista
and available through the Ttablet PC SDK

But I can¡¯t access all of those engines.
On my XP os I can access Ink files and related attributes and classes. But when I want to recognize anything, I need to install the

Microsoft Windows XP Tablet PC Edition 2005 Recognizer Pack

and the
Microsoft Windows XP Tablet PC Edition Software Development Kit 1.7

Afterwards I can acces the engine via the namespace Microsoft.Ink by adding a reference in my VS project.

But this is only the Tablet Engine. As much as I know now, it is not possible to access the engine, that works in the Office programs.

The next Idea was, that Vista has a "Handwriting Recognition Panel". That engine should be accessible via the .NET Framework 3.0 (seems to be part of the WPF but needs some patches to be accessible).
That Namespace could be found in System.Windows.Ink. But I can¡¯t access the engine as it seems. I can create Strokes out of StyluspointCollections but I can¡¯t analyze them.

I have installed another PC with Vista, .NET 3.0 and VS 2005 to test a different approach to the issue, without using the Recognition pack (at least some engine must be installed to run the Vista Panel).
On thatPC I have also found a namespace working with ink called
MS.internal.Ink
but again no recognnition engine.

And that¡¯s the point where I got lost.
I want to use the engine on a normal PC (no tablet OS) and have only found the engine in the Recognizer Pack.
Is this the Engine used in Office / Tablet PC / Vista
And If I want to use my application on a different PC what must be included in order to use the recognition without an installed Tablet SDK and Recognizer Pack

Regards
Jan


Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Stefan Wick - MSFT

Hi Leviani,

what version of Windows Vista are you using The TabletPC handwriting recognizers are installed with Windows Vista Home Premium (and above)

What language are you trying to recognize

What type of program are you developing (WPF, Winforms, Win32, etc.)

Does the "Advanced Recognition" sample (or any of the other recognition samples) that comes with the Tablet PC / Windows Vista SDK work for you

Thanks,

Stefan Wick






Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Leviani

Hello,
and thank you for the fast answer.

The first PC I am using has XP Pro, VS 2005, .NET 3.0, Tablet SDK, Recognizer Pack and all the minor updates.
At that PC I can access the recognition engine via the installed Recognizer Pack. (Microsoft.Ink)

The second PC has Vista Business with VS 2005, .NET 3.0 and the Vista SDK for VS but no Recognizer Packs installed.
In order to find out the differences between the Tablet SDK and Vista I kept both machines.

I am trying to analyse german / french and english. But my main problem isn¡¯t the language it would be good enough to do recognition for just any language.

The problems I have met so far are that I can find hundreds of examples for the XP Tablet OS and lots of hints for the usage of that SDK (josh einstein explorer, Gavin Gears Blog entries, Frank LaVigne article...). But none points to the one which should be included in Vista and the .NET 3.0 Framework (WPF if I am correct)
The recognition will be used for an application which provides stroke-data from an
anoto pen (http://www.anoto.com/). So I don¡¯t really need an InkCanvas or InkCollector to recieve the writing information.

My "research" showed me, that there are some different "spaces" containing things about ink and recognizers.
System.Windows.Ink (seems to be .NET)
Microsoft.Ink (seems to be Tablet SDK)
MS.Internal.Ink (seems to be Vista)
(and here my confusion starts as I am new to the ink-idea and don¡¯t really know what difference all that namespaces make)

Another Problem occured, when I copied the InkRecognition sample to the Vista PC.
That example works perfect, but when I try to add the Reference to Microsoft.Ink in my app it won¡¯t work. I can¡¯t find or add that reference. Maybe because the Tablet SDK isn¡¯t installed.

That¡¯s why I am searching for a separation of those different approaches to Ink and the different (maybe) existing recognition engines.

Regards
Jan




Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Stefan Wick - MSFT

OK, let's sort this out one step at a time.

It looks you want to do ink recognition in WPF. There is a sample in the Windows SDK that shows how to this:

http://msdn2.microsoft.com/en-us/library/aa972172.aspx

Does this one work for you If not, what is the error/behavior you are seeing

Thanks,

Stefan Wick






Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Leviani

Ok.
The example doesn¡¯t work.
When I try to compile there are a lot of errors concerning the InkAnalyzer Namespace.
The suggestion is that some Assembly or using directives are missing. (translated from the german error)
In the References the IAWinFX has a yellow mark.
As it seems the Windows SDK install didn¡¯t went that well. I am going to reinstall it.

By the way, I am not quite sure, if I want to use the WPF version, because I don¡¯t really know how much different versions exist (see the title of this post).
But I wanted to avoid the Tablet SDK for an application only running on normal PCs.
And as a lot of customers will switch to Vista sooner or later, so it would be great to use the WPF and the already installed engine instead of delivering the new engine in additional .msm files.
My problem at the moment is to sort out which Ink files under what namespace belong to which SDK/OS and how many different engines are there.

Thanks again
Jan

----Edit----

I have reinstalled the SDK and now I can compile it.
But When drawing a single stroke I get the error :

Assembly Not Found
This sample application requires the following assembly:
IALoader, Version 1.7.6223.0, Culture=neutral,
PublicKeyToken=31bf385ad364e35

Either install the assembly in the GAC, or reference it locally.





Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Stefan Wick - MSFT

IALoader.dll is located in %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Bin.

Please add a reference to it in the sample project (or install it in the GAC via gacutil utility). And then run again.

Thanks,

Stefan Wick






Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Leviani

Thank you,
with that reference it works.

But I still have the issue to differ between those Namespaces and usage of Ink / Recognition.
How many different engines / Ink-classes are there
The Canvas Example that you pointed me to uses the System.Ink, while the "InkRecognition" example copied from my XP machine with the Tablet SDK uses the Microsoft.Ink.
Unfortunately I don¡¯t remember where but in addtion to that I found the MS.Internal.Ink.

Thanks
Jan




Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Stefan Wick - MSFT

There is only one set of handwriting recognition engines on your system. However, there are several APIs to access a recognition engine.

The reasons for having different APIs are twofold:

(a) historic reasons - there is the 'classic' RecognizerContext-style API that been around since 2002 and the newer InkAnalyzer-style API that we introduced in 2006 which have additional capabilities - such as ink parsing prior to the actual recognition.

(b) developer convenience - we offer different API to best serve the developer's needs in their specific development environment. We have COM API for developers writing native code. We have managed APIs for Winforms developers (Microsoft.Ink.*) and managed APIs for WPF developers (System.Windows.Ink.*)

Here is the complete list of different API flavors with pointers to MSDN. All APIs are supported on both XP and Vista. Let me know if you have more questions about any of these.

1) RecognizerContext COM API

http://msdn2.microsoft.com/en-us/library/ms821570.aspx

2) RecognizerContext Winforms API

http://msdn2.microsoft.com/en-us/library/ms828542.aspx

3) InkAnalyzer COM API

http://msdn2.microsoft.com/en-us/library/ms697412.aspx

4) InkAnalyzer Winforms API

http://msdn2.microsoft.com/en-us/library/microsoft.ink.inkanalyzer.aspx

5) InkAnalyzer WPF API

http://msdn2.microsoft.com/en-us/library/system.windows.ink.inkanalyzer.aspx

Thanks,

Stefan Wick






Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Leviani

Thank you very much,

this provides a lot of help.
So the thing that is interesting for me is the InkAnalyzer WPF API via system.windows.ink.
And when I want to use a recognition engine on any used Ink-Objects, I need to install either the Recognizer Pack under XP or use Vista (or the Windows Vista SDK), which both have the same engine

One last question, where does the MS.internal.Ink come from (seems to have something to do with InkCanvas Objects)

Thanks
Jan





Re: Notebook, Tablet PC, and UMPC Development How many Handwriting Recognition Engines ?

Stefan Wick - MSFT

The XP and Vista are effectively the same from an application interface perspective. The Vista implementation, however, has better accuracy, advanced performance, stability, etc.

MS.Internal.Ink is an internal namespace. You should not be using it in any way.

Thanks,

Stefan Wick