lukevanin / OCRAI

Optical Character Recognition Artificial Intelligence iOS app for Udacity nanodegree

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use structured data for fields

lukevanin opened this issue · comments

After scanning data is stored as key value pairs. It would be beneficial to store certain kinds of data, such as addresses, in specialised data structures.

Structured data
Addresses consist of multiple components, and can be used to derive additional data, such as geographical coordinates. The current key-value storage schema prevents this.

Unstructured data
Unstructured data, such as names and untagged text, should may be stored as key value pairs. The data may be tagged to indicate its intent. E.g. name (first and last if possible), organisation, department, salutation.

Semi-sructured data
Semi-structured data, such as phone numbers, URLs, email addresses, and social media names, may also be stored as plain text. These values may be labelled (e.g. home, work, fax, etc) to indicate their role. It would be beneficial to provide UI functions specific to the type of data. e.g. Call a phone number, send a message to a phone number or email address, or open a web page. All of these can be shared. This kind of data should be validated for conformance to accepted protocols. When the user edits information it should be checked for conformance. If the data does not conform, it should be saved and a warning shown.

  • Tags for phone numbers: home, work, fax
  • Tags for email: home, work
  • URLs are not tagged, although they can be labelled: Blog, web site, home page, news, twitter, Facebook.
  • Social media names should be associated with recognised social media providers (Twitter, Facebook). It should be possible to derive a profile URL from the name. The user should be allowed to convert an unrecognised social media name into a URL. Social media accounts may be a specialised form of URL (i.e. the account name is converted to a URL, which is labelled automatically to indicate a social media account).