Many of AxAp's capabilities are based on Internet
Aside from providing improved access to web pages,
it may use various cloud computing
For example, AxAp might ask Google
identify or extract information from an image or
provide route planning information.
Web sites are set up to support interactive use,
often making unspoken assumptions about the user.
For example, they may "hide" text inside images or video content.
both for blind users and for programs such as AxAp.
Fortunately, most sites follow HTML standards and conventions,
at least to the point that common web browsers can handle.
So, as long as AxAp can successfully interact with a site,
it should be able to present the user with the site's content,
provide requested transformations, and enable user interaction.
In many cases, screen scraping
(etc) will allow AxAp
to harvest structural and stylistic information.
Harvesting that is based on HTML standards and conventions
can be specified in a generic, robust, and reliable manner.
However, site-specific encodings may cause the scraping software
to be "brittle" (requiring changes when the site is modified).
Many sites (especially large ones) provide web services
by means of a defined API
Although each service tends to have its own API,
the interface (and thus, the accessing code)
can be expected to remain stable over time.
If the user wants AxAp to have certain information ready upon request,
she can ask AxAp to use selected resources on her behalf.
This might occur "in the background" during an interactive session
or while the user is otherwise engaged (e.g., away from the computer).
However, AxAp will always be acting on behalf of the user.
So, the user must provide any required authorization data
(e.g., user name, password) to the local
Also, any usage charges (etc) will be the user's responsibility.
This approach ensures that the AxAp Project
doesn't have to get involved with authorizations, privacy, etc. (Whew!)
Also, any limits or charges a site might impose, based on the amount of access,
will apply to individual users (rather than the entire AxAp community).
Google provides a lot
of web service APIs.
Some are independent; others are part of the Google Cloud Platform
could be very handy for identifying images,
finding related web sites, etc.
If the image is (or can be put) online, a search can be initiated as follows:
So, this may not be a great option for creating a blind-accessible access tool.
Many of the Google Maps APIs
allow a large number of free requests per day.
For details, see the Pricing and Plans
Here is a selected sampling of the available APIs:
OCR (Drive, Docs)
can convert PDF and photo files to text
It accepts GIF
and multipage PDF
documents as input
and produces styled output (in Google Docs
Google Docs can then be used to output the document in a range of formats
In summary, we can begin with an image and end up with structured, styled text.
Both the input and the output can be in any of several formats.
We "just" need to route versions through several external services.
offer a variety of ways to encode this in an efficient manner,
including assorted ways of using of pipelines, agents, etc.
Unfortunately, achieving good, fail-soft performance
without breaking usage limits and other criteria is still tricky.
So, I'm delighted that José Valim announced GenStage
"a new Elixir behaviour for exchanging events
with back-pressure between Elixir processes".
My current notion is to create a GenStage instance
that handles specified web interactions
(e.g., routing a document version through a specified server).
These instances can then be pipelined together
to achieve specific data flows.
The Google Cloud Vision API
enables developers to understand the content of an image
by encapsulating powerful machine learning models in an easy to use REST API.
It quickly classifies images into thousands of categories
(e.g., "sailboat", "lion", "Eiffel Tower"),
detects individual objects and faces within images,
and finds and reads printed words contained within images.
The Google Cloud Platform
offers a number of interesting services.
Sadly, I haven't found any indication that the general public
can use them (like most Google Maps APIs) for free in limited amounts.
provides free access
to searchable, structured geographic data.
So, it could be used for creating customized maps, route planning, etc.
This wiki page is maintained by Rich Morin
an independent consultant specializing in software design, development, and documentation.
Please feel free to email
comments, inquiries, suggestions, etc!