Difference between revisions of "Solution Compatibility Roadmap"

From wiki.gpii
Jump to: navigation, search
m (Roadmap)
 
(14 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
In order to be compatible with the [[GPII_Core_Infrastructure|GPII Auto Personalisation from Preferences]] (APfP) 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.
Line 12: Line 12:
  
 
{| class="wikitable"
 
{| class="wikitable"
|+ Compatible Solution Roadmap
+
|-
 
! Solution (link to DSpace)
 
! Solution (link to DSpace)
 
! Jira
 
! Jira
Line 23: 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]
 
| [http://issues.gpii.net/browse/TT-9 TT-9]
 
| 2015-3-1
 
| 2015-3-1
| Alfredo  
+
| Alfredo
| style="text-align: center" | ✓
+
| 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]
 
| [http://issues.gpii.net/browse/TT-8 TT-8]
 
| 2015-3-1
 
| 2015-3-1
| Alfredo  
+
| Alfredo
 +
| style="text-align: center" | ✓<br/>
 
|  
 
|  
 
|  
 
|  
|
 
|
 
 
|  
 
|  
 +
| Web application<br/>
 
|-
 
|-
| [[JAWS]]
+
| [[JAWS|JAWS]] ([http://www.freedomscientific.com/Products/Blindness/JAWS Freedom Scientific])
 
| [http://issues.gpii.net/browse/TT-5 TT-5]
 
| [http://issues.gpii.net/browse/TT-5 TT-5]
| 2015-3-1
 
| Wayne
 
 
|  
 
|  
 +
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
| Settings files are in INI format
 
 
|-
 
|-
| [[ReadWriteGold]]
+
| [[ReadWriteGold|Read&Write Gold]] ([http://www.texthelp.com/UK/Our-products/Readwrite TextHelp])
 
| [http://issues.gpii.net/browse/TT-7 TT-7]
 
| [http://issues.gpii.net/browse/TT-7 TT-7]
 
| Waiting for OAuth
 
| Waiting for OAuth
 
| Slim
 
| Slim
 
 
|  
 
|  
 
|  
 
|  
|
+
|
| In C4A, add more settings  
+
|  
 +
| In C4A, add more settings
 
|-
 
|-
| [[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]
 
| [http://issues.gpii.net/browse/TT-10 TT-10]
|
 
| Alfredo 
 
 
|  
 
|  
 +
| Alfredo
 +
| style="text-align: center" | ✓<br/>
 
|  
 
|  
|
 
|
 
 
|  
 
|  
 +
|
 +
| Web application<br/>
 
|-
 
|-
| MAGic
+
| MAGic ([http://www.freedomscientific.com/Products/LowVision/MAGic Freedom Scientific])
| http://issues.gpii.net/browse/TT-11
+
| [http://issues.gpii.net/browse/TT-11 TT-11]
|
+
|  
 +
2015-6-26
 +
 
 +
Pull request done
 +
 
 
| Wayne / Jianyi
 
| 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
| Screen enlarger that works with JAWS. Need DSpace entry  
 
 
|-
 
|-
| WindowEyes
+
| 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 reader (currently bundled with MS Office)(owned now by AI Squared)  
 
 
|-
 
|-
| ZoomText
+
| 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/enlarger from AI Squared  
+
Screen reader/enlarger from AI Squared
 +
 
 +
Working on using ZoomText API instead of directly editing the settings.&nbsp;
 +
 
 
|-
 
|-
 
| Audio eye
 
| Audio eye
| https://www.audioeye.com
+
| [https://www.audioeye.com https://www.audioeye.com]
|
+
|
 +
|
 +
|
 +
|  
 
|  
 
|  
|
 
 
|  
 
|  
|
 
|
 
 
| Screen reader modifications and tools for websites. CSUN
 
| Screen reader modifications and tools for websites. CSUN
 
|-
 
|-
| Quillsoft WordQ etc
+
| WordQ, SpeakQ, ... ([http://www.goqsoftware.com/wordQspeakQ.php goQ Software])
| http://www.goqsoftware.com/
+
| [http://www.goqsoftware.com/ goQ Software]
|
+
|
 +
|  
 
|  
 
|  
|
 
 
|  
 
|  
|
+
|  
|
+
|  
| Reading a writing tools
+
| 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.
 +
 
 
|-
 
|-
 
| ...
 
| ...
 
|  
 
|  
 
 
|  
 
|  
|
 
 
|  
 
|  
|
+
|  
|
+
|  
|
+
|  
 +
|
 +
|
 
|}
 
|}
  
Line 144: Line 184:
 
== 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 [[imp 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 ===
 
=== 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]
+
#'''Select a solution''' from above Roadmap - Let the Tiger Team know you are working on it
# '''Fork and pull''' the [https://github.com/GPII/universal GPII/universal] repo
+
#'''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]
# '''Create a feature branch''' to work on. Use Jira number in the branch name
+
#'''Fork and pull''' the [https://github.com/GPII/universal GPII/universal] repo
# '''Work''' through the details below
+
#'''Create a feature branch''' to work on. Use Jira number in the branch name
# '''Discuss and track''' on the [[Imp_Tiger_Team#Communications|Jira, list or IRC]] as required. Use "@User" to notify someone
+
#'''Work''' through the details below
# '''Track status''' in the above roadmap
+
#'''Discuss and track''' on the [[Imp_Tiger_Team#Communications|Jira, list or IRC]] as required. Use "@User" to notify someone
# '''Make a pull request''' and update Jira status to ''Pull Request''
+
#'''Track status''' in the above roadmap
# '''Wait for review by the Architecture team''' and work through any fixes
+
#'''Make a pull request''' and update Jira status to ''Pull Request''
# '''Close Jira and update Roadmap'''
+
#'''Wait for review by the Architecture team''' and work through any fixes
 +
#'''Close Jira and update Roadmap'''
  
 
=== Work detail ===
 
=== 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
Line 164: Line 206:
 
##Let them know about the GPII, DSpace, universal listing etc.
 
##Let them know about the GPII, DSpace, universal listing etc.
 
#'''Register and align the preferences/settings''' in the [https://terms.raisingthefloor.org/ Preference Terms Definitions Registry (PTD)]
 
#'''Register and align the preferences/settings''' in the [https://terms.raisingthefloor.org/ Preference Terms Definitions Registry (PTD)]
## Developer might do but MUCH MUCH easier for us to do we have familiarity with the PTD contents
+
##Developer might do but MUCH MUCH easier for us to do we have familiarity with the PTD contents
## Developer should participate because they know what their terms mean
+
##Developer should participate because they know what their terms mean
## See details below
+
##See details below
 
#'''Modify the way a product handles settings''' (optional)
 
#'''Modify the way a product handles settings''' (optional)
 
##Define/Save preferences to better match the GPII
 
##Define/Save preferences to better match the GPII
 
##Prefer dynamic settings refresh - to allow live use of externally changed settings
 
##Prefer dynamic settings refresh - to allow live use of externally changed settings
 
#'''Decide how to read / write settings'''
 
#'''Decide how to read / write settings'''
## Use an existing settings handler - eg ini, JSON.
+
##Use an existing settings handler - eg ini, JSON.
## Create new generic settings handler or write solution specific code
+
##Create new generic settings handler or write solution specific code
## Create a transcoding/un-packing tool for binary and other compressed formats.
+
##Create a transcoding/un-packing tool for binary and other compressed formats.
 
#'''Create a solution entry'''
 
#'''Create a solution entry'''
 
##'''Add Solution description file''' in [https://github.com/GPII/universal/tree/master/testData/solutions/solutionsDescription testData/solutions/solutionsDescription]
 
##'''Add Solution description file''' in [https://github.com/GPII/universal/tree/master/testData/solutions/solutionsDescription testData/solutions/solutionsDescription]
 
##'''lifecycle declaration and Setting transforms''' in appropriate platform file in [https://github.com/GPII/universal/tree/master/testData/solutions testData/solutions]
 
##'''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
+
#'''Register solution''' but adding to [https://github.com/GPII/universal/blob/master/testData/deviceReporter/installedSolutions.json testData/deviceReporter/installedSolutions.json] file
# '''Perform Testing'''
+
#'''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 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]
 
##'''Create Tests''' FIXME - [https://github.com/GPII/universal/tree/master/tests tests]
 
#'''Document'''
 
#'''Document'''
Line 189: Line 231:
 
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.
 
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)
+
#Get a lists of the settings and their parameters valuespace (possible values)
# find their counterpart in the Preference Terms Dictionary (eg use the filter)
+
#find their counterpart in the Preference Terms Dictionary (eg use the filter)
# IF found (with SAME definitions and SAME valuespace)
+
#IF found (with SAME definitions and SAME valuespace)
## Register them as an alias -- and note the common preference term
+
##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)
+
#IF NOT found (AND it is a term that might be used by other solutions)
## Create a common preference term
+
##Create a common preference term
 
##Register the term as an alias
 
##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
 
#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
+
##Then just enter as a new term using their format
 
 
== <span style="color: rgb(0, 0, 255);">Helpful Links</span> ==
 
 
 
# [https://github.com/GPII/universal GPII/universal] on GitHub
 
# [http://issues.gpii.net/browse/TT TigerTeam project in Jira]
 
# [[GPII Core Infrastructure]] - How the GPII Auto Personalisation form Preferences works when a user logs in
 
# [[Building A Simple Solution]] Example simple solution
 
# [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]] - Tutorial on Value transformation
 
# [http://wiki.fluidproject.org/display/docs/Model+Transformation http://wiki.fluidproject.org/display/docs/Model+Transformation] - Fluid Infusion Framework (Transformation)
 
  
 +
== <span style="color: rgb(0, 0, 255)">Helpful Links</span> ==
  
 +
#[https://github.com/GPII/universal GPII/universal] on GitHub
 +
#[http://issues.gpii.net/browse/TT TigerTeam project in Jira]
 +
#[[GPII_Core_Infrastructure|GPII Core Infrastructure]] - How the GPII Auto Personalisation form Preferences works when a user logs in
 +
#[[Building_A_Simple_Solution|Building A Simple Solution]] Example simple solution
 +
#[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]]
 
[[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