Difference between revisions of "Solution Compatibility Roadmap"

From wiki.gpii
Jump to: navigation, search
(Created page with "== What makes a compatible solution? == In order to be compatible with the GPII Auto Personalisation from Preferences a solution must: * be know...")
 
 
(35 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
== What makes a compatible solution? ==
 
== What makes a compatible solution? ==
  
In order to be compatible with the [[GPII_Core_Infrastructure|GPII Auto Personalisation from Preferences]] a solution must:
+
In order to be compatible with the [[GPII_Core_Infrastructure|GPII Auto Personalisation from Preferences]] (APfP) a solution must:
  
* be known to the GPII as a solution for specific user preferences
+
*be known to the GPII as a solution for specific user preferences
* have known settings and how they map to preferences described as common terms
+
*have known settings and how they map to preferences described as common terms
* have a known way to be launched and closed
+
*have a known way to be launched and closed
  
 
This is achieved by providing a few configurations files to the GPII that declare these details. The GPII is then able match user preferences (possibly including context) and launch the solution with optimal settings for the user when they identify themselves.
 
This is achieved by providing a few configurations files to the GPII that declare these details. The GPII is then able match user preferences (possibly including context) and launch the solution with optimal settings for the user when they identify themselves.
 +
 +
== Roadmap ==
  
 
{| class="wikitable"
 
{| class="wikitable"
|+ Compatible Solution Roadmap
+
|-
! Solution
+
! Solution (link to DSpace)
 +
! Jira
 
! Status
 
! Status
 
! Lead
 
! Lead
Line 20: Line 23:
 
! Notes
 
! Notes
 
|-
 
|-
| [[OATTS (Open Access Tool Tray System)]]
+
| [[OATTS_(Open_Access_Tool_Tray_System)|OATTS (Open Access Tool Tray System)]]
 +
| [http://issues.gpii.net/browse/TT-9 TT-9]
 
| 2015-3-1
 
| 2015-3-1
| Alfredo  
+
| Alfredo
| ✓
+
| style="text-align: center" | ✓<br/>
 +
|
 
|  
 
|  
|
 
|
 
 
|  
 
|  
 +
| Web application + Chrome plugin<br/>
 
|-
 
|-
| [[CCCC (Controlable Crowd Caption Correction) Tool]]
+
| [[CCCC_(Controlable_Crowd_Caption_Correction)_Tool|CCCC (Controlable Crowd Caption Correction) Tool]]
 +
| [http://issues.gpii.net/browse/TT-8 TT-8]
 
| 2015-3-1
 
| 2015-3-1
| Slim
+
| Alfredo
 +
| style="text-align: center" | ✓<br/>
 +
|
 +
|
 +
|
 +
| Web application<br/>
 +
|-
 +
| [[JAWS|JAWS]] ([http://www.freedomscientific.com/Products/Blindness/JAWS Freedom Scientific])
 +
| [http://issues.gpii.net/browse/TT-5 TT-5]
 
|  
 
|  
 +
2015-6-26
 +
 +
Waiting for instructions to handle complex settings
 +
 +
Pull request done
 +
 +
| Wayne
 
|  
 
|  
|
+
| &nbsp; &nbsp; &nbsp; &nbsp;<span style="text-align: center">✓</span>
|
 
 
|  
 
|  
 +
| <span style="text-align: center">&nbsp; &nbsp; ✓</span>
 +
| Screen reader
 
|-
 
|-
| [[JAWS]]
+
| [[ReadWriteGold|Read&Write Gold]] ([http://www.texthelp.com/UK/Our-products/Readwrite TextHelp])
| 2015-3-1
+
| [http://issues.gpii.net/browse/TT-7 TT-7]
| Wayne
+
| Waiting for OAuth
 +
| Slim
 +
|
 +
|  
 
|  
 
|  
 
|  
 
|  
|
+
| In C4A, add more settings
|
 
| Settings files are in INI format
 
 
|-
 
|-
| [[GAHRT (GPII Annotated Hand Raising Tool)]]
+
| [[GAHRT_(GPII_Annotated_Hand_Raising_Tool)|GAHRT (GPII Annotated Hand Raising Tool)]]
 +
| [http://issues.gpii.net/browse/TT-10 TT-10]
 
|  
 
|  
|
+
| Alfredo
 +
| style="text-align: center" | ✓<br/>
 
|  
 
|  
 
|  
 
|  
|
 
|
 
 
|  
 
|  
 +
| Web application<br/>
 
|-
 
|-
| [[ReadWriteGold]]
+
| MAGic ([http://www.freedomscientific.com/Products/LowVision/MAGic Freedom Scientific])
 +
| [http://issues.gpii.net/browse/TT-11 TT-11]
 
|  
 
|  
|
+
2015-6-26
 +
 
 +
Pull request done
 +
 
 +
| Wayne / Jianyi
 
|  
 
|  
 +
| &nbsp; &nbsp; &nbsp;&nbsp;<span style="text-align: center">✓</span>
 
|  
 
|  
|
+
| &nbsp; &nbsp; <span style="text-align: center">✓</span>
|
+
| Screen enlarger that works with JAWS. Need DSpace entry
| In C4A, add more settings
 
 
|-
 
|-
| MAGic
+
| WindowEyes ([http://www.gwmicro.com/Window-Eyes/ GW Micro])
 +
| TT-12
 
|  
 
|  
|
+
2015-6-26
 +
 
 +
Pull request done
 +
 
 +
| Wayne
 
|  
 
|  
 +
| &nbsp; &nbsp; &nbsp;&nbsp;<span style="text-align: center">✓&nbsp;</span>
 
|  
 
|  
|
+
| &nbsp; &nbsp;&nbsp;<span style="text-align: center">✓</span>
|
+
| Screen reader (currently bundled with MS Office)(owned now by AI Squared)
| Screen enlarger that works with JAWS
 
 
|-
 
|-
| WindowEyes
+
| ZoomText ([http://www.aisquared.com/zoomtext Ai Squared])
 +
| TT-13
 
|  
 
|  
|
+
2015-10-20
 +
 
 +
Working on ZoomText API
 +
 
 +
| Wayne
 
|  
 
|  
 +
| &nbsp; &nbsp; &nbsp;&nbsp;<span style="text-align: center">✓</span>
 
|  
 
|  
|
+
| &nbsp; &nbsp; &nbsp;<span style="text-align: center">✓</span>
|
+
|  
| Screen reader (currently bundled with MS Office)(owned now by AI Squared)
+
Screen reader/enlarger from AI Squared
 +
 
 +
Working on using ZoomText API instead of directly editing the settings.&nbsp;
 +
 
 
|-
 
|-
| ZoomText
+
| Audio eye
 +
| [https://www.audioeye.com https://www.audioeye.com]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| Screen reader modifications and tools for websites. CSUN
 +
|-
 +
| WordQ, SpeakQ, ... ([http://www.goqsoftware.com/wordQspeakQ.php goQ Software])
 +
| [http://www.goqsoftware.com/ goQ Software]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| Reading and writing tools
 +
|-
 +
| Kurzweil 3000
 +
| TT-15
 +
|
 +
2015-10-20
 +
 
 +
Pull request done
 +
 
 +
| Wayne
 +
| <br/>
 +
| &nbsp; &nbsp;&nbsp;<span style="text-align: center">✓</span>
 +
| <br/>
 +
| <span style="text-align: center">&nbsp; &nbsp;✓</span><br/>
 +
|
 +
Text reader
 +
 
 +
User is required to create a Kurzweil account to use the software. Login with username and password is required when launching Kurzweil 3000.
 +
 
 +
|-
 +
| ...
 +
|
 +
|
 +
|
 +
|
 +
|
 
|  
 
|  
 
 
|  
 
|  
 
|  
 
|  
|
 
|
 
| Screen reader/enlarger from AI Squared
 
 
|}
 
|}
  
Line 96: Line 177:
  
 
It is vital to manage the large number of possible settings, especially as some have different names for the identical concept and others with the same name are actually different concepts. In addition the range of values allowed may or may not vary between common terms. The Preference Term Database (PTD) is the GPII's tool where all solutions settings are registered to provide a manageable database of terms. All settings for solutions are added to the PTD
 
It is vital to manage the large number of possible settings, especially as some have different names for the identical concept and others with the same name are actually different concepts. In addition the range of values allowed may or may not vary between common terms. The Preference Term Database (PTD) is the GPII's tool where all solutions settings are registered to provide a manageable database of terms. All settings for solutions are added to the PTD
 +
 +
== Solution declaration ==
 +
 +
A solution's operation is described to the GPII using JSON declarative 'code' entered into a file which holds all the solutions for a specific platform (eg Windows, Android). This describes how to launch / kill the solution and specific settings and the transforms that map to them from common preference terms.
  
 
== Steps for making a solution GPII compatible ==
 
== Steps for making a solution GPII compatible ==
  
For each solution to be be made compatible the following steps will be performed (work is being lead by the [[impl Tiger Team|Tiger Team]])
+
For each solution to be be made compatible the following steps will be performed (work is being lead by the [[Imp_Tiger_Team|Tiger Team]])
 +
 
 +
=== Workflow ===
 +
 
 +
#'''Select a solution''' from above Roadmap - Let the Tiger Team know you are working on it
 +
#'''Create a tracking Jira''' to discuss issues etc. Use the [http://issues.gpii.net/browse/TT Tiger Team project] and AutoPersonalisationCompat component. See this explanation of [http://lists.gpii.net/pipermail/architecture/2014-June/002365.html Jira workflow]
 +
#'''Fork and pull''' the [https://github.com/GPII/universal GPII/universal] repo
 +
#'''Create a feature branch''' to work on. Use Jira number in the branch name
 +
#'''Work''' through the details below
 +
#'''Discuss and track''' on the [[Imp_Tiger_Team#Communications|Jira, list or IRC]] as required. Use "@User" to notify someone
 +
#'''Track status''' in the above roadmap
 +
#'''Make a pull request''' and update Jira status to ''Pull Request''
 +
#'''Wait for review by the Architecture team''' and work through any fixes
 +
#'''Close Jira and update Roadmap'''
 +
 
 +
=== Work detail ===
  
 
#'''Identify key contact person(s)''' and contact them.
 
#'''Identify key contact person(s)''' and contact them.
 
##Permissions - ownership - mgmt etc
 
##Permissions - ownership - mgmt etc
##Technical (launch - settings access - meaning of settings)
+
##Technical - launch, settings access, meaning of settings
#'''Redesign the way a product handles settings''' (optional)
+
##Let them know about the GPII, DSpace, universal listing etc.
##Saves preferences to better match the GPII
+
#'''Register and align the preferences/settings''' in the [https://terms.raisingthefloor.org/ Preference Terms Definitions Registry (PTD)]
##Uses settings -- to allow live use of externally changed settings
+
##Developer might do but MUCH MUCH easier for us to do we have familiarity with the PTD contents
#'''Create a translation/un-packing tool''' (as required)
+
##Developer should participate because they know what their terms mean
##to convert binary and other compressed settings files into GPII inferrable/adjustable/transformable form.
+
##See details below
#'''Register and align the preferences/settings''' in the product with the Preference Terms Definitions Registry (PTD)
+
#'''Modify the way a product handles settings''' (optional)
## Developer might do -- but we should offer since MUCH MUCH easier for us to do because we know what is in Registry and what they are called
+
##Define/Save preferences to better match the GPII
## Developer should participate because they know what their term mean
+
##Prefer dynamic settings refresh - to allow live use of externally changed settings
#'''Launch and Setting handlers'''
+
#'''Decide how to read / write settings'''
## Create/adapt/select launch and settings handlers
+
##Use an existing settings handler - eg ini, JSON.
## Register solution - add to a installedSolutions file
+
##Create new generic settings handler or write solution specific code
## Update installed solutions file
+
##Create a transcoding/un-packing tool for binary and other compressed formats.
## Can we do “live” settings change for context etc?
+
#'''Create a solution entry'''
# '''Create a test user file'''
+
##'''Add Solution description file''' in [https://github.com/GPII/universal/tree/master/testData/solutions/solutionsDescription testData/solutions/solutionsDescription]
## Formal Testing?
+
##'''lifecycle declaration and Setting transforms''' in appropriate platform file in [https://github.com/GPII/universal/tree/master/testData/solutions testData/solutions]
 +
#'''Register solution''' but adding to [https://github.com/GPII/universal/blob/master/testData/deviceReporter/installedSolutions.json testData/deviceReporter/installedSolutions.json] file
 +
#'''Perform Testing'''
 +
##'''Create a test user profile file''' to exercise settings when user logs in. [https://github.com/GPII/universal/tree/master/testData/preferences testData/preferences/<solution>N]
 +
##'''Create Tests''' FIXME - [https://github.com/GPII/universal/tree/master/tests tests]
 
#'''Document'''
 
#'''Document'''
 
##Solution specific notes - in DSpace
 
##Solution specific notes - in DSpace
 
##Generic documentation for others
 
##Generic documentation for others
  
 +
=== Processing preference terms in the PTD ===
 +
 +
The [https://terms.raisingthefloor.org PTD] tool is used to keep a list of common preference terms and their alias as used in solutions. Here's how to process each of a solutions settings to ensure they are captured in the PTD.
 +
 +
#Get a lists of the settings and their parameters valuespace (possible values)
 +
#find their counterpart in the Preference Terms Dictionary (eg use the filter)
 +
#IF found (with SAME definitions and SAME valuespace)
 +
##Register them as an alias -- and note the common preference term
 +
#IF NOT found (AND it is a term that might be used by other solutions)
 +
##Create a common preference term
 +
##Register the term as an alias
 +
#IF NOT found and very low or no possible use to other apps as one of their settings (with same definition and value space
 +
##Then just enter as a new term using their format
  
== <span style="color: rgb(0, 0, 255);">Helpful Links</span><br/> ==
+
== <span style="color: rgb(0, 0, 255)">Helpful Links</span> ==
  
# [[GPII_Core_Infrastructure]] - When a user logs in
+
#[https://github.com/GPII/universal GPII/universal] on GitHub
# [[Building_A_Simple_Solution]] Example
+
#[http://issues.gpii.net/browse/TT TigerTeam project in Jira]
# [https://github.com/sgithens/universal/blob/authoring-solutions-tutorial/documentation/AuthoringSolutionsTutorial.md Authoring Solutions Tutorial] details instructions for a solution entry
+
#[[GPII_Core_Infrastructure|GPII Core Infrastructure]] - How the GPII Auto Personalisation form Preferences works when a user logs in
# [[Architecture_-_Available_transformation_functions]] - Tutorial on Value transformation
+
#[[Building_A_Simple_Solution|Building A Simple Solution]] Example simple solution
# [http://wiki.fluidproject.org/display/docs/Model+Transformation http://wiki.fluidproject.org/display/docs/Model+Transformation] - Fluid Infusion Framework (Transformation)
+
#[https://github.com/sgithens/universal/blob/authoring-solutions-tutorial/documentation/AuthoringSolutionsTutorial.md Authoring Solutions Tutorial] detailed instructions for a solution entry
 +
#[[Architecture_-_Available_transformation_functions|Architecture - Available transformation functions]] - Tutorial on Value transformation
 +
#[http://wiki.fluidproject.org/display/docs/Model+Transformation http://wiki.fluidproject.org/display/docs/Model+Transformation] - Fluid Infusion Framework (Transformation)
 +
#[https://www.atlassian.com/git/ https://www.atlassian.com/git/] - Advanced git tutorial
 +
[[Category:Vendors and Implementers]]

Latest revision as of 17:28, 27 October 2015

What makes a compatible solution?

In order to be compatible with the GPII Auto Personalisation from Preferences (APfP) a solution must:

  • be known to the GPII as a solution for specific user preferences
  • have known settings and how they map to preferences described as common terms
  • have a known way to be launched and closed

This is achieved by providing a few configurations files to the GPII that declare these details. The GPII is then able match user preferences (possibly including context) and launch the solution with optimal settings for the user when they identify themselves.

Roadmap

Solution (link to DSpace) Jira Status Lead PTD Updated Solution file Registered Test User Notes
OATTS (Open Access Tool Tray System) TT-9 2015-3-1 Alfredo
Web application + Chrome plugin
CCCC (Controlable Crowd Caption Correction) Tool TT-8 2015-3-1 Alfredo
Web application
JAWS (Freedom Scientific) TT-5

2015-6-26

Waiting for instructions to handle complex settings

Pull request done

Wayne             ✓ Screen reader
Read&Write Gold (TextHelp) TT-7 Waiting for OAuth Slim In C4A, add more settings
GAHRT (GPII Annotated Hand Raising Tool) TT-10 Alfredo
Web application
MAGic (Freedom Scientific) TT-11

2015-6-26

Pull request done

Wayne / Jianyi            Screen enlarger that works with JAWS. Need DSpace entry
WindowEyes (GW Micro) TT-12

2015-6-26

Pull request done

Wayne       ✓       Screen reader (currently bundled with MS Office)(owned now by AI Squared)
ZoomText (Ai Squared) TT-13

2015-10-20

Working on ZoomText API

Wayne             

Screen reader/enlarger from AI Squared

Working on using ZoomText API instead of directly editing the settings. 

Audio eye https://www.audioeye.com Screen reader modifications and tools for websites. CSUN
WordQ, SpeakQ, ... (goQ Software) goQ Software Reading and writing tools
Kurzweil 3000 TT-15

2015-10-20

Pull request done

Wayne
    
   ✓

Text reader

User is required to create a Kurzweil account to use the software. Login with username and password is required when launching Kurzweil 3000.

...

Common preference terms

It is vital to manage the large number of possible settings, especially as some have different names for the identical concept and others with the same name are actually different concepts. In addition the range of values allowed may or may not vary between common terms. The Preference Term Database (PTD) is the GPII's tool where all solutions settings are registered to provide a manageable database of terms. All settings for solutions are added to the PTD

Solution declaration

A solution's operation is described to the GPII using JSON declarative 'code' entered into a file which holds all the solutions for a specific platform (eg Windows, Android). This describes how to launch / kill the solution and specific settings and the transforms that map to them from common preference terms.

Steps for making a solution GPII compatible

For each solution to be be made compatible the following steps will be performed (work is being lead by the Tiger Team)

Workflow

  1. Select a solution from above Roadmap - Let the Tiger Team know you are working on it
  2. Create a tracking Jira to discuss issues etc. Use the Tiger Team project and AutoPersonalisationCompat component. See this explanation of Jira workflow
  3. Fork and pull the GPII/universal repo
  4. Create a feature branch to work on. Use Jira number in the branch name
  5. Work through the details below
  6. Discuss and track on the Jira, list or IRC as required. Use "@User" to notify someone
  7. Track status in the above roadmap
  8. Make a pull request and update Jira status to Pull Request
  9. Wait for review by the Architecture team and work through any fixes
  10. Close Jira and update Roadmap

Work detail

  1. Identify key contact person(s) and contact them.
    1. Permissions - ownership - mgmt etc
    2. Technical - launch, settings access, meaning of settings
    3. Let them know about the GPII, DSpace, universal listing etc.
  2. Register and align the preferences/settings in the Preference Terms Definitions Registry (PTD)
    1. Developer might do but MUCH MUCH easier for us to do we have familiarity with the PTD contents
    2. Developer should participate because they know what their terms mean
    3. See details below
  3. Modify the way a product handles settings (optional)
    1. Define/Save preferences to better match the GPII
    2. Prefer dynamic settings refresh - to allow live use of externally changed settings
  4. Decide how to read / write settings
    1. Use an existing settings handler - eg ini, JSON.
    2. Create new generic settings handler or write solution specific code
    3. Create a transcoding/un-packing tool for binary and other compressed formats.
  5. Create a solution entry
    1. Add Solution description file in testData/solutions/solutionsDescription
    2. lifecycle declaration and Setting transforms in appropriate platform file in testData/solutions
  6. Register solution but adding to testData/deviceReporter/installedSolutions.json file
  7. Perform Testing
    1. Create a test user profile file to exercise settings when user logs in. testData/preferences/<solution>N
    2. Create Tests FIXME - tests
  8. Document
    1. Solution specific notes - in DSpace
    2. Generic documentation for others

Processing preference terms in the PTD

The PTD tool is used to keep a list of common preference terms and their alias as used in solutions. Here's how to process each of a solutions settings to ensure they are captured in the PTD.

  1. Get a lists of the settings and their parameters valuespace (possible values)
  2. find their counterpart in the Preference Terms Dictionary (eg use the filter)
  3. IF found (with SAME definitions and SAME valuespace)
    1. Register them as an alias -- and note the common preference term
  4. IF NOT found (AND it is a term that might be used by other solutions)
    1. Create a common preference term
    2. Register the term as an alias
  5. IF NOT found and very low or no possible use to other apps as one of their settings (with same definition and value space
    1. Then just enter as a new term using their format

Helpful Links

  1. GPII/universal on GitHub
  2. TigerTeam project in Jira
  3. GPII Core Infrastructure - How the GPII Auto Personalisation form Preferences works when a user logs in
  4. Building A Simple Solution Example simple solution
  5. Authoring Solutions Tutorial detailed instructions for a solution entry
  6. Architecture - Available transformation functions - Tutorial on Value transformation
  7. http://wiki.fluidproject.org/display/docs/Model+Transformation - Fluid Infusion Framework (Transformation)
  8. https://www.atlassian.com/git/ - Advanced git tutorial