/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * IPTC Metadata Descriptions taken from the IPTC Photo Metadata (July 2010) 
 * standard. These parts Copyright 2010 International Press Telecommunications 
 * Council.
 */
package org.apache.tika.metadata;

/**
 * IPTC photo metadata schema.
 * 
 * A collection of
 * {@link Property property definition} constants for the photo metadata
 * properties defined in the IPTC standard.
 * 
 * @since Apache Tika 1.1
 * @see <a href="http://www.iptc.org/std/photometadata/specification/IPTC-PhotoMetadata-201007_1.pdf">IPTC Photo Metadata</a>
 */
public interface IPTC {

   String NAMESPACE_URI_IPTC_CORE = "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/";
   String NAMESPACE_URI_IPTC_EXT = "http://iptc.org/std/Iptc4xmpExt/2008-02-29/";
   String NAMESPACE_URI_PLUS = "http://ns.useplus.org/ldf/xmp/1.0/";

   String PREFIX_IPTC_CORE = "Iptc4xmpCore";
   String PREFIX_IPTC_EXT = "Iptc4xmpExt";
   String PREFIX_PLUS = "plus";

   /**
    * Name of the city the content is focussing on -- either the place shown
    * in visual media or referenced by text or audio media. This element is at
    * the third level of a top-down geographical hierarchy.
    * <p>
    * This is a detail of a location with blurred semantics as it does not
    * clearly indicate whether it is the location in the image or the location
    * the photo was taken - which can be different. Two more concise properties
    * are available in IPTC Extension with Location Created and Location Shown
    * in the Image.
    * <p>
    * Maps to this IIM property: 2:90 City
    * 
    * @see Photoshop#CITY
    */
   Property CITY = Photoshop.CITY;

   /**
    * Full name of the country the content is focussing on -- either the
    * country shown in visual media or referenced in text or audio media. This
    * element is at the top/first level of a top- down geographical hierarchy.
    * The full name should be expressed as a verbal name and not as a code, a
    * code should go to the element "CountryCode"
    * <p>
    * This is a detail of a location with blurred semantics as it does not
    * clearly indicate whether it is the location in the image or the location
    * the photo was taken - which can be different. Two more concise properties
    * are available in IPTC Extension with Location Created and Location Shown
    * in the Image.
    * <p>
    * Maps to this IIM property: 2:101 Country/Primary Location Name
    * 
    * @see Photoshop#COUNTRY
    */
   Property COUNTRY = Photoshop.COUNTRY;

   /**
    * Code of the country the content is focussing on -- either the country
    * shown in visual media or referenced in text or audio media. This element
    * is at the top/first level of a top-down geographical hierarchy. The code
    * should be taken from ISO 3166 two or three letter code. The full name of
    * a country should go to the "Country" element.
    * <p>
    * This is a detail of a location with blurred semantics as it does not
    * clearly indicate whether it is the location in the image or the location
    * the photo was taken - which can be different. Two more concise properties
    * are available in IPTC Extension with Location Created and Location Shown
    * in the Image.
    * <p>
    * Maps to this IIM property: 2:100 Country/Primary Location Code
    */
   Property COUNTRY_CODE = Property.internalText(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CountryCode");

   /**
    * A textual description, including captions, of the item's content,
    * particularly used where the object is not text.
    * <p>
    * Note: the XMP property (dc:description) which stores the value of this
    * IPTC Core property is of type Lang Alt. Hence any software agent dealing
    * with this property must abide to the processing rules for
    * Lang Alt value type as specified by the XMP specifications.
    * <p>
    * Maps to this IIM property: 2:120 Caption/Abstract
    * 
    * @see DublinCore#DESCRIPTION
    */
   Property DESCRIPTION = DublinCore.DESCRIPTION;

   /**
    * A brief synopsis of the caption. Headline is not the same as Title.
    * <p>
    * Maps to this IIM property: 2:105 Headline
    * 
    * @see Photoshop#HEADLINE
    */
   Property HEADLINE = Photoshop.HEADLINE;

   /**
    * Describes the nature, intellectual, artistic or journalistic
    * characteristic of a item, not specifically its content.
    * <p>
    * The IPTC recognizes that the corresponding IPTC Genre NewsCodes needs
    * photo specific extension to be better usable with this field (as of the
    * release of this standard in the year 2008).
    * <p>
    * Maps to this IIM property: 2:04 Object Attribute Reference
    */
   Property INTELLECTUAL_GENRE = Property.internalText(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "IntellectualGenre");

   /**
    * Keywords to express the subject of the content. Keywords may be free
    * text and don't have to be taken from a controlled vocabulary. Codes from
    * the controlled vocabulary IPTC Subject NewsCodes must go to the
    * "Subject Code" field.
    * <p>
    * Single values of this field should not be restricted to single words
    * but must allow for phrases as well.
    * <p>
    * Maps to this IIM property: 2:25 Keywords
    * 
    * @see DublinCore#SUBJECT
    */
   Property KEYWORDS = DublinCore.SUBJECT;

   /**
    * Name of the subregion of a country -- either called province or state or
    * anything else -- the content is focussing on -- either the subregion
    * shown in visual media or referenced by text or audio media. This element
    * is at the second level of a top-down geographical hierarchy.
    * <p>
    * This is a detail of a location with blurred semantics as it does not
    * clearly indicate whether it is the location in the image or the location
    * the photo was taken - which can be different. Two more concise properties
    * are available in IPTC Extension with Location Created and Location Shown
    * in the Image.
    * <p>
    * Maps to this IIM property: 2:95 Province/State
    * 
    * @see Photoshop#STATE
    */
   Property PROVINCE_OR_STATE = Photoshop.STATE;

   /**
    * Describes the scene of a news content. Specifies one or more terms
    * from the IPTC "Scene-NewsCodes". Each Scene is represented as a string of
    * 6 digits in an unordered list.
    * <p>
    * Note: Only Scene values from this IPTC taxonomy should be used here. More
    * about the IPTC Scene-NewsCodes at www.newscodes.org.
    */
   Property SCENE_CODE = Property.internalTextBag(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "Scene");

   /**
    * Specifies one or more Subjects from the IPTC Subject-NewsCodes taxonomy
    * to categorise the content. Each Subject is represented as a string of 8
    * digits in an unordered list.
    * <p>
    * Note: Only Subjects from a controlled vocabulary should be used here,
    * free text has to be put into the Keyword element. More about
    * IPTC Subject-NewsCodes at www.newscodes.org.
    */
   Property SUBJECT_CODE = Property.internalTextBag(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "SubjectCode");

   /**
    * Name of a sublocation the content is focussing on -- either the
    * location shown in visual media or referenced by text or audio media. This
    * location name could either be the name of a sublocation to a city or the
    * name of a well known location or (natural) monument outside a city. In
    * the sense of a sublocation to a city this element is at the fourth level
    * of a top-down geographical hierarchy.
    * <p>
    * This is a detail of a location with blurred semantics as it does not
    * clearly indicate whether it is the location in the image or the location
    * the photo was taken - which can be different. Two more concise properties
    * are available in IPTC Extension with Location Created and Location Shown
    * in the Image.
    * <p>
    * Maps to this IIM property: 2:92 Sublocation
    */
   Property SUBLOCATION = Property.internalText(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "Location");

   /**
    * Designates the date and optionally the time the intellectual content was
    * created rather than the date of the creation of the physical
    * representation.
    * <p>
    * If a software system requires explicit time values and no time is given
    * by the Date Created property the software system should default the time
    * to 00:00:00. If the software system does not require an explicit time
    * value the time part should be left empty as it is.
    * <p>
    * Note 1: Any content of the IIM dataset 2:60, Time Created, should be
    * merged to this element.
    * Note 2: Implementers are encouraged to provide
    * the creation date and time from the EXIF data of a digital
    * camera to the user for entering this date for the first time.
    * <p>
    * Maps to this IIM property: 2:55 Date Created
    * 
    * @see Photoshop#DATE_CREATED
    */
   Property DATE_CREATED = Photoshop.DATE_CREATED;

   /**
    * Identifier or the name of the person involved in writing, editing or
    * correcting the description of the content.
    * <p>
    * Maps to this IIM property: 2:122 Writer/Editor
    * 
    * @see Photoshop#CAPTION_WRITER
    */
   Property DESCRIPTION_WRITER = Photoshop.CAPTION_WRITER;

   /**
    * Any of a number of instructions from the provider or creator to the
    * receiver of the item.
    * <p>
    * Maps to this IIM property: 2:40 Special Instruction
    * 
    * @see Photoshop#INSTRUCTIONS
    */
   Property INSTRUCTIONS = Photoshop.INSTRUCTIONS;

   /**
    * Number or identifier for the purpose of improved workflow handling. This
    * is a user created identifier related to the job for which the item is
    * supplied.
    * <p>
    * Note: As this identifier references a job of the receiver's workflow it
    * must first be issued by the receiver, then transmitted to the creator or
    * provider of the news object and finally added by the creator
    * to this field.
    * <p>
    * Maps to this IIM property: 2:103 Original Transmission Reference
    * 
    * @see Photoshop#TRANSMISSION_REFERENCE
    */
   Property JOB_ID = Photoshop.TRANSMISSION_REFERENCE;

   /**
    * A shorthand reference for the item. Title provides a short human readable
    * name which can be a text and/or numeric reference. It is not the same as
    * Headline.
    * <p>
    * Many use the Title field to store the filename of the image, though the
    * field may be used in many ways. Formal identifiers are provided by the
    * Digital Image Id, or the Registry Entry property of the IPTC Extension.
    * <p>
    * Note 1: This element aligns with the use of Dublin Core's "Title"
    * element.
    * Note 2: the XMP property (dc:title) which stores the value of
    * this IPTC Core property is of type Lang Alt. Hence any software agent
    * dealing with this property must abide to the processing rules for Lang
    * Alt value type as specified by the XMP specifications.
    * <p>
    * Maps to this IIM property: 2:05 Object Name
    * 
    * @see DublinCore#TITLE
    */
   Property TITLE = DublinCore.TITLE;

   /**
    * Contains any necessary copyright notice for claiming the intellectual
    * property for this item and should identify the current owner of the
    * copyright for the item. Other entities like the creator of the item may
    * be added in the corresponding field. Notes on usage rights should be
    * provided in "Rights usage terms".
    * <p>
    * Copyright ownership can be expressed in a more controlled way using the
    * PLUS fields "Copyright Owner", "Copyright Owner ID",
    * "Copyright Owner Name" of the IPTC Extension. It is the user's
    * responsibility to keep the values of the four fields in sync.
    * <p>
    * Note: the XMP property (dc:rights) which stores the value of this IPTC
    * Core property is of type Lang Alt. Hence any software agent dealing with
    * this property must abide to the processing rules for Lang Alt
    * value type as specified by the XMP specifications.
    * <p>
    * Maps to this IIM property: 2:116 Copyright Notice
    * 
    * @see DublinCore#RIGHTS
    */
   Property COPYRIGHT_NOTICE = DublinCore.RIGHTS;

   /**
    * Contains the name of the person who created the content of this item, a
    * photographer for photos, a graphic artist for graphics, or a writer for
    * textual news, but in cases where the photographer should not be
    * identified the name of a company or organisation may be appropriate.
    * <p>
    * The creator can be expressed in a more controlled way using the
    * "Image Creator" of PLUS in the IPTC Extension additionally. It is the
    * user's responsibility to keep the values of the IPTC Core and the PLUS
    * fields in sync.
    * <p>
    * Maps to this IIM property: 2:80 By-line
    * 
    * @see DublinCore#CREATOR
    */
   Property CREATOR = DublinCore.CREATOR;

   /**
    * The creator's contact information provides all necessary information to
    * get in contact with the creator of this item and comprises a set of
    * sub-properties for proper addressing.
    * <p>
    * The IPTC Extension Licensor fields should be used instead of these
    * Creator's Contact Info fields if you are using IPTC Extension fields. If
    * the creator is also the licensor his or her contact information should be
    * provided in the Licensor fields.
    * <p>
    * Note 1 to user interface implementers: All sub-properties of "Creator's
    * contact information" should be shown as group on the form.
    * Note 2: the
    * CreatorContactInfo sub-properties' naming aligns with the vCard
    * specification RFC 2426.
    */
   Property CREATORS_CONTACT_INFO = Property.internalText(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CreatorContactInfo");

   /**
    * Contains the job title of the person who created the content of this
    * item. As this is sort of a qualifier the Creator element has to be filled
    * in as mandatory prerequisite for using Creator's Jobtitle.
    * <p>
    * Maps to this IIM property: 2:85 By-line Title
    * 
    * @see Photoshop#AUTHORS_POSITION
    */
   Property CREATORS_JOB_TITLE = Photoshop.AUTHORS_POSITION;

   /**
    * The credit to person(s) and/or organisation(s) required by the supplier
    * of the item to be used when published. This is a free-text field.
    * <p>
    * Note 1: For more formal identifications of the creator or the owner of
    * the copyrights of this image other rights properties may be used.
    * Note 2:
    * This property was named "Credit" by the IIM metadata, then it was renamed
    * to "Provider" in IPTC Core 1.0. In IPTC Core 1.1. it has been renamed to
    * "Credit Line" as the field is used for this purpose by many users.
    * <p>
    * Maps to this IIM property: 2:110 Credit
    * 
    * @see Photoshop#CREDIT
    */
   Property CREDIT_LINE = Photoshop.CREDIT;

   /**
    * The licensing parameters of the item expressed in free-text.
    * <p>
    * The PLUS fields of the IPTC Extension can be used in parallel to express
    * the licensed usage in more controlled terms.
    */
   Property RIGHTS_USAGE_TERMS = XMPRights.USAGE_TERMS;

   /**
    * Identifies the original owner of the copyright for the intellectual
    * content of the item. This could be an agency, a member of an agency or an
    * individual. Source could be different from Creator and from the entities
    * in the CopyrightNotice.
    * <p>
    * The original owner can never change. For that reason the content of this
    * property should never be changed or deleted after the information is
    * entered following the news object's initial creation.
    * <p>
    * Maps to this IIM property: 2:115 Source
    * 
    * @see Photoshop#SOURCE
    */
   Property SOURCE = Photoshop.SOURCE;

   /**
    * The contact information address part. Comprises an optional company name
    * and all required information to locate the building or postbox to which
    * mail should be sent. To that end, the address is a multiline field.
    * <p>
    * Note 1: to user interface implementers: This field should be part of a
    * "Contact information" group on the form.
    * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426.
    */
   Property CONTACT_INFO_ADDRESS = Property.internalTextBag(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CiAdrExtadr");

   /**
    * The contact information city part.
    * <p>
    * Note 1: to user interface implementers: This field should be part of a
    * "Contact information" group on the form.
    * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426.
    */
   Property CONTACT_INFO_CITY = Property.internalText(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CiAdrCity");

   /**
    * The contact information country part.
    * <p>
    * Note 1: to user interface implementers: This field should be part of a
    * "Contact information" group on the form.
    * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426.
    */
   Property CONTACT_INFO_COUNTRY = Property.internalText(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CiAdrCtry");

   /**
    * The contact information email address part.
    * <p>
    * Multiple email addresses can be given. May have to be separated by a
    * comma in the user interface.
    * <p>
    * Note 1: to user interface implementers: This field should be part of a
    * "Contact information" group on the form.
    * Note 2 to user interface
    * implementers: provide sufficient space to fill in multiple e-mail
    * addresses.
    * Note 3: the ContactInfo naming aligns with the vCard
    * specification RFC 2426.
    */
   Property CONTACT_INFO_EMAIL = Property.internalTextBag(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CiEmailWork");

   /**
    * The contact information phone number part.
    * <p>
    * Multiple numbers can be given. May have to be separated by a
    * comma in the user interface.
    * <p>
    * Note 1: to user interface implementers: This field should be part of a
    * "Contact information" group on the form.
    * Note 2 to user interface
    * implementers: provide sufficient space to fill in multiple international
    * numbers.
    * Note 3: the ContactInfo naming aligns with the vCard
    * specification RFC 2426.
    */
   Property CONTACT_INFO_PHONE = Property.internalTextBag(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CiTelWork");

   /**
    * The contact information part denoting the local postal code.
    * <p>
    * Note 1: to user interface implementers: This field should be part of a
    * "Contact information" group on the form.
    * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426.
    */
   Property CONTACT_INFO_POSTAL_CODE = Property.internalText(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CiAdrPcode");

   /**
    * The contact information part denoting regional information such as state or province.
    * <p>
    * Note 1: to user interface implementers: This field should be part of a
    * "Contact information" group on the form.
    * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426.
    */
   Property CONTACT_INFO_STATE_PROVINCE = Property.internalText(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CiAdrRegion");

   /**
    * The contact information web address part. Multiple addresses can be given, separated by a comma.
    * <p>
    * Note 1: to user interface implementers: This field should be part of a
    * "Contact information" group on the form.
    * Note 2 to user interface
    * implementers: provide sufficient space to fill in multiple URLs.
    * Note 3: the ContactInfo naming aligns with the vCard
    * specification RFC 2426.
    */
   Property CONTACT_INFO_WEB_URL = Property.internalTextBag(
         PREFIX_IPTC_CORE + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CiUrlWork");

   /**
    * As this metadata element pertains to distribution management, it was not
    * adopted. However, this data is still synchronised with the XMP property
    * [photoshop:Urgency], and hence, available for future use, but outside the
    * IPTC Core.
    *
    * @deprecated
    */
   Property URGENCY = Photoshop.URGENCY;

   /**
    * As this metadata element was earmarked as deprecated already for IIM 4.1,
    * it was not adopted. However, this data is still synchronised with the XMP
    * property [photoshop:Category], and hence available for future use - but
    * outside the IPTC Core. For migrating from Category codes to Subject Codes
    * please read the Guideline for mapping Category Codes to Subject NewsCodes
    * section below.
    *
    * @deprecated
    */
   Property CATEGORY = Photoshop.CATEGORY;

   /**
    * As this metadata element was earmarked as deprecated already for IIM 4.1,
    * it was not adopted. However, this data is still synchronised with the XMP
    * property [photoshop:SupplementalCategories], and hence available for
    * future use - but outside the IPTC Core.
    *
    * @deprecated
    */
   Property SUPPLEMENTAL_CATEGORIES = Photoshop.SUPPLEMENTAL_CATEGORIES;

   /**
    * Information about the ethnicity and other facets of the model(s) in a
    * model-released image.
    * <p>
    * Use the Model Age field for the age of model(s).
    */
   Property ADDITIONAL_MODEL_INFO = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "AddlModelInfo");

   /**
    * A set of metadata about artwork or an object in the item
    */
   Property ARTWORK_OR_OBJECT = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ArtworkOrObject");

   /**
    * A set of metadata about artwork or an object in the item
    */
   Property ORGANISATION_CODE = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "OrganisationInImageCode");

   /**
    * A term to describe the content of the image by a value from a Controlled
    * Vocabulary.
    * <p>
    * This property is part of the Photo Metadata 2008 specifications, but
    * should not released to the public on the standard Adobe Custom Panels for
    * IPTC metadata or other user interfaces unless agreed by the IPTC.
    */
   Property CONTROLLED_VOCABULARY_TERM = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CVterm");

   /**
    * A location the content of the item is about. For photos that is a
    * location shown in the image.
    * <p>
    * If the location the image was taken in is different from this location
    * the property Location Created should be used too.
    */
   Property LOCATION_SHOWN = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationShown");

   /**
    * Age of the human model(s) at the time this image was taken in a model
    * released image.
    * <p>
    * The user should be aware of any legal implications of providing ages for
    * young models. Ages below 18 years should not be included.
    */
   Property MODEL_AGE = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ModelAge");

   /**
    * Name of the organisation or company which is featured in the content.
    * <p>
    * May be supplemented by values from a controlled vocabulary in the
    * Organisation Code field.
    */
   Property ORGANISATION_NAME = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "OrganisationInImageName");

   /**
    * Name of a person the content of the item is about. For photos that is a
    * person shown in the image.
    */
   Property PERSON = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "PersonInImage");

   /**
    * Globally unique identifier for the item. It is created and applied by the
    * creator of the item at the time of its creation . This value shall not be
    * changed after that time.
    * <p>
    * The identifier will probably be generated by the technical means of an
    * imaging device or software and should be applied to the digital image
    * file as early as possible in its life cycle. This identifier does not
    * identify any pictured content, particularly in case of a scan of non-
    * digital images, only this digital representation.
    * <p>
    * Any algorithm to create this identifier has to comply with the technical
    * requirements to create a globally unique id. Any device creating digital
    * images - e.g. still image cameras, video cameras, scanners - should
    * create such an identifer right at the time of the creation of the digital
    * data and add the id to the set of metadata without compromising
    * performance. It is recommended that this image identifier allows
    * identifying the device by which the image data and the GUID were created.
    * IPTC's basic requirements for unique ids are:
    * - It must be globally unique. Algorithms for this purpose exist.
    * - It should identify the camera body.
    * - It should identify each individual photo from this camera body.
    * - It should identify the date and time of the creation of the picture.
    * - It should be secured against tampering.
    * This field should be implemented in a way to prove it has not been changed since its value has
    * been applied. If the identifier has been created by the imaging device
    * its type and brand can be found in the Exif/technical metadata.
    */
   Property DIGITAL_IMAGE_GUID = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "DigImageGUID");

   /**
    * The type of the source digital file.
    * <p>
    * The IPTC recommends not to implement this property any longer.
    *
    * @deprecated
    */
   Property DIGITAL_SOURCE_FILE_TYPE = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "DigitalSourcefileType");

   /**
    * The type of the source of this digital image
    */
   Property DIGITAL_SOURCE_TYPE = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "DigitalSourceType");

   /**
    * Names or describes the specific event the content relates to.
    * <p>
    * Examples are: a press conference, dedication ceremony, etc. If this is a
    * sub-event of a larger event both can be provided by the field: e.g. XXXIX
    * Olympic Summer Games (Beijing): opening ceremony. Unplanned events could
    * be named by this property too.
    */
   Property EVENT = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "Event");

   /**
    * Both a Registry Item Id and a Registry Organisation Id to record any
    * registration of this item with a registry.
    * <p>
    * Typically an id from a registry is negotiated and applied after the
    * creation of the digital image.
    * <p>
    * Any user interface implementation must show both sub-properties - Item Id
    * and Organisation Id - as corresponding values. Further an input to both
    * fields should be made mandatory.
    */
   Property IMAGE_REGISTRY_ENTRY = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "RegistryId");

   /**
    * Identifies the most recent supplier of the item, who is not necessarily
    * its owner or creator.
    * <p>
    * For identifying the supplier either a well known and/or registered
    * company name or a URL of the company's web site may be used. This
    * property succeeds the Provider property of IPTC Core 1.0 by its semantics
    * as that Provider was renamed to Credit Line.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property IMAGE_SUPPLIER = Property.internalText(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageSupplier");

   /**
    * Identifies the most recent supplier of the item, who is not necessarily
    * its owner or creator.
    * <p>
    * For identifying the supplier either a well known and/or registered
    * company name or a URL of the company's web site may be used. This
    * property succeeds the Provider property of IPTC Core 1.0 by its semantics
    * as that Provider was renamed to Credit Line.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property IMAGE_SUPPLIER_ID = Property.composite(
           Property.internalText(
                   PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageSupplierID"),
           new Property[] { Property.internalText(IPTC.IMAGE_SUPPLIER_ID_WRONG_CASE) });
   
   /** @deprecated use {@link IPTC#IMAGE_SUPPLIER_ID} */
   public static final String IMAGE_SUPPLIER_ID_WRONG_CASE = 
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageSupplierId";

   /**
    * Identifies the most recent supplier of the item, who is not necessarily
    * its owner or creator.
    * <p>
    * For identifying the supplier either a well known and/or registered
    * company name or a URL of the company's web site may be used. This
    * property succeeds the Provider property of IPTC Core 1.0 by its semantics
    * as that Provider was renamed to Credit Line.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property IMAGE_SUPPLIER_NAME = Property.internalText(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageSupplierName");

   /**
    * Optional identifier assigned by the Image Supplier to the image.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property IMAGE_SUPPLIER_IMAGE_ID = Property.internalText(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageSupplierImageID");

   /**
    * The date and optionally time when any of the IPTC photo metadata fields
    * has been last edited
    * <p>
    * The public use of this property is deprecated by IPTC Extension version
    * 1.1. It may only still be used by a private user interface for a use
    * scoped to a company. If used this field should be a timestamp of the
    * latest change applied to any of the fields.
    * <p>
    * The value of this property should never be set by software. XMP-aware
    * software should reflect any changes to metadata by the xmp:MetadataDate
    * property of the XMP Basic scheme.
    */
   Property IPTC_LAST_EDITED = Property.internalDate(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "IptcLastEdited");

   /**
    * The location the content of the item was created.
    * <p>
    * If the location in the image is different from the location the photo was
    * taken the IPTC Extension property Location Shown in the Image should be
    * used.
    */
   Property LOCATION_CREATED = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationCreated");

   /**
    * The maximum available height in pixels of the original photo from which
    * this photo has been derived by downsizing.
    */
   Property MAX_AVAIL_HEIGHT = Property.internalInteger(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "MaxAvailHeight");

   /**
    * The maximum available width in pixels of the original photo from which
    * this photo has been derived by downsizing.
    */
   Property MAX_AVAIL_WIDTH = Property.internalInteger(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "MaxAvailWidth");

   /**
    * The version number of the PLUS standards in place at the time of the
    * transaction.
    * <p>
    * This property was included into the IPTC Extension schema from PLUS
    * version 1.2 as all other PLUS properties. To reflect this the value of
    * "PLUS Version" should be set to the string "1.2.0"
    */
   Property PLUS_VERSION = Property.internalText(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "Version");

   /**
    * Owner or owners of the copyright in the licensed image.
    * <p>
    * Serves to identify the rights holder/s for the image. The Copyright
    * Owner, Image Creator and Licensor may be the same or different entities.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property COPYRIGHT_OWNER = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CopyrightOwner");

   /**
    * The ID of the owner or owners of the copyright in the licensed image.
    * <p>
    * Serves to identify the rights holder/s for the image. The Copyright
    * Owner, Image Creator and Licensor may be the same or different entities.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property COPYRIGHT_OWNER_ID = Property.composite(
           Property.internalTextBag(
                   PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CopyrightOwnerID"),
           new Property[] { Property.internalTextBag(IPTC.COPYRIGHT_OWNER_ID_WRONG_CASE) });
   
   /** @deprecated use {@link IPTC#COPYRIGHT_OWNER_ID} */
   public static final String COPYRIGHT_OWNER_ID_WRONG_CASE = 
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CopyrightOwnerId";

   /**
    * The name of the owner or owners of the copyright in the licensed image.
    * <p>
    * Serves to identify the rights holder/s for the image. The Copyright
    * Owner, Image Creator and Licensor may be the same or different entities.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property COPYRIGHT_OWNER_NAME = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "CopyrightOwnerName");

   /**
    * Creator or creators of the image.
    * <p>
    * The creator can be additionally expressed in free-text using the IPTC
    * Core Creator field. In many countries, the Image Creator must be
    * attributed in association with any use of the image. The Image Creator,
    * Copyright Owner, Image Supplier and Licensor may be the same or different
    * entities.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property IMAGE_CREATOR = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageCreator");

   /**
    * The ID of the creator or creators of the image.
    * <p>
    * The creator can be additionally expressed in free-text using the IPTC
    * Core Creator field. In many countries, the Image Creator must be
    * attributed in association with any use of the image. The Image Creator,
    * Copyright Owner, Image Supplier and Licensor may be the same or different
    * entities.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property IMAGE_CREATOR_ID = Property.composite(
           Property.internalTextBag(
                   PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageCreatorID"),
           new Property[] { Property.internalTextBag(IPTC.IMAGE_CREATOR_ID_WRONG_CASE) });
   
   /** @deprecated use {@link IPTC#IMAGE_CREATOR_ID} */
   public static final String IMAGE_CREATOR_ID_WRONG_CASE = 
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageCreatorId";

   /**
    * The name of the creator or creators of the image.
    * <p>
    * The creator can be additionally expressed in free-text using the IPTC
    * Core Creator field. In many countries, the Image Creator must be
    * attributed in association with any use of the image. The Image Creator,
    * Copyright Owner, Image Supplier and Licensor may be the same or different
    * entities.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property IMAGE_CREATOR_NAME = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ImageCreatorName");

   /**
    * A person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "Licensor");

   /**
    * The ID of the person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_ID = Property.composite(
           Property.internalTextBag(
                   PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorID"),
           new Property[] { Property.internalTextBag(IPTC.LICENSOR_ID_WRONG_CASE) });
   
   /** @deprecated use {@link IPTC#LICENSOR_ID} */
   public static final String LICENSOR_ID_WRONG_CASE = 
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorId";

   /**
    * The name of the person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_NAME = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorName");

   /**
    * The city of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_CITY = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorCity");

   /**
    * The country of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_COUNTRY = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorCountry");

   /**
    * The email of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_EMAIL = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorEmail");

   /**
    * The extended address of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_EXTENDED_ADDRESS = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorExtendedAddress");

   /**
    * The postal code of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_POSTAL_CODE = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorPostalCode");

   /**
    * The region of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_REGION = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorRegion");

   /**
    * The street address of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_STREET_ADDRESS = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorStreetAddress");

   /**
    * The phone number of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_TELEPHONE_1 = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorTelephone1");

   /**
    * The phone number of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_TELEPHONE_2 = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorTelephone2");

   /**
    * The URL of a person or company that should be contacted to obtain a licence for
    * using the item or who has licensed the item.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property LICENSOR_URL = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LicensorURL");

   /**
    * Age of the youngest model pictured in the image, at the time that the
    * image was made.
    * <p>
    * This age should not be displayed to the public on open web portals and
    * the like. But it may be used by image repositories in a
    * B2B enviroment.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property MINOR_MODEL_AGE_DISCLOSURE = Property.internalText(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "MinorModelAgeDisclosure");

   /**
    * Optional identifier associated with each Model Release.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property MODEL_RELEASE_ID = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ModelReleaseID");

   /**
    * Summarizes the availability and scope of model releases authorizing usage
    * of the likenesses of persons appearing in the photograph.
    * <p>
    * It is recommended to apply the PLUS controlled value Unlimited Model
    * Releases (MR- UMR) very carefully and to check the wording of the model
    * release thoroughly before applying it.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property MODEL_RELEASE_STATUS = Property.internalText(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "ModelReleaseStatus");

   /**
    * Optional identifier associated with each Property Release.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property PROPERTY_RELEASE_ID = Property.internalTextBag(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "PropertyReleaseID");

   /**
    * Summarises the availability and scope of property releases authorizing
    * usage of the properties appearing in the photograph.
    * <p>
    * It is recommended to apply the value PR-UPR very carefully and to check
    * the wording of the property release thoroughly before applying it.
    * <p>
    * This is a PLUS version 1.2 property included in the IPTC Extension
    * schema.
    */
   Property PROPERTY_RELEASE_STATUS = Property.internalText(
         PREFIX_PLUS + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "PropertyReleaseStatus");

   /**
    * Contains any necessary copyright notice for claiming the intellectual
    * property for artwork or an object in the image and should identify the
    * current owner of the copyright of this work with associated intellectual
    * property rights.
    */
   Property ARTWORK_OR_OBJECT_DETAIL_COPYRIGHT_NOTICE = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "AOCopyrightNotice");

   /**
    * Contains the name of the artist who has created artwork or an object in the image.
    */
   Property ARTWORK_OR_OBJECT_DETAIL_CREATOR = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "AOCreator");

   /**
    * Designates the date and optionally the time the artwork or object in the
    * image was created. This relates to artwork or objects with associated
    * intellectual property rights.
    */
   Property ARTWORK_OR_OBJECT_DETAIL_DATE_CREATED = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "AODateCreated");

   /**
    * The organisation or body holding and registering the artwork or object in
    * the image for inventory purposes.
    */
   Property ARTWORK_OR_OBJECT_DETAIL_SOURCE = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "AOSource");

   /**
    * The inventory number issued by the organisation or body holding and
    * registering the artwork or object in the image.
    */
   Property ARTWORK_OR_OBJECT_DETAIL_SOURCE_INVENTORY_NUMBER = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "AOSourceInvNo");

   /**
    * A reference for the artwork or object in the image.
    */
   Property ARTWORK_OR_OBJECT_DETAIL_TITLE = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "AOTitle");

   /**
    * Name of the city of a location. This element is at the fourth level of a
    * top-down geographical hierarchy.
    */
   Property LOCATION_SHOWN_CITY = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationShownCity");

   /**
    * The ISO code of a country of a location. This element is at the second
    * level of a top-down geographical hierarchy.
    * <p>
    * Note 1: an implementer would have to derive from the length of the value
    * string whether this is the country code from the two or three letter
    * scheme as no explicit indication can be provided.
    */
   Property LOCATION_SHOWN_COUNTRY_CODE = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationShownCountryCode");

   /**
    * The name of a country of a location. This element is at the second level
    * of a top-down geographical hierarchy.
    */
   Property LOCATION_SHOWN_COUNTRY_NAME = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationShownCountryName");

   /**
    * The name of a subregion of a country - a province or state - of a
    * location. This element is at the third level of a top-down geographical
    * hierarchy.
    */
   Property LOCATION_SHOWN_PROVINCE_OR_STATE = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationShownProvinceState");

   /**
    * Name of a sublocation. This sublocation name could either be the name of
    * a sublocation to a city or the name of a well known location or (natural)
    * monument outside a city. In the sense of a sublocation to a city this
    * element is at the fifth level of a top-down geographical hierarchy.
    */
   Property LOCATION_SHOWN_SUBLOCATION = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationShownSublocation");

   /**
    * The name of a world region of a location. This element is at the first
    * (topI) level of a top- down geographical hierarchy.
    */
   Property LOCATION_SHOWN_WORLD_REGION = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationShownWorldRegion");

   /**
    * Name of the city of a location. This element is at the fourth level of a
    * top-down geographical hierarchy.
    */
   Property LOCATION_CREATED_CITY = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedCity");

   /**
    * The ISO code of a country of a location. This element is at the second
    * level of a top-down geographical hierarchy.
    * <p>
    * Note 1: an implementer would have to derive from the length of the value
    * string whether this is the country code from the two or three letter
    * scheme as no explicit indication can be provided.
    */
   Property LOCATION_CREATED_COUNTRY_CODE = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedCountryCode");

   /**
    * The name of a country of a location. This element is at the second level
    * of a top-down geographical hierarchy.
    */
   Property LOCATION_CREATED_COUNTRY_NAME = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedCountryName");

   /**
    * The name of a subregion of a country - a province or state - of a
    * location. This element is at the third level of a top-down geographical
    * hierarchy.
    */
   Property LOCATION_CREATED_PROVINCE_OR_STATE = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedProvinceState");

   /**
    * Name of a sublocation. This sublocation name could either be the name of
    * a sublocation to a city or the name of a well known location or (natural)
    * monument outside a city. In the sense of a sublocation to a city this
    * element is at the fifth level of a top-down geographical hierarchy.
    */
   Property LOCATION_CREATED_SUBLOCATION = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedSublocation");

   /**
    * The name of a world region of a location. This element is at the first
    * (topI) level of a top- down geographical hierarchy.
    */
   Property LOCATION_CREATED_WORLD_REGION = Property.internalText(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedWorldRegion");

   /**
    * A unique identifier created by a registry and applied by the creator of
    * the item. This value shall not be changed after being applied. This
    * identifier is linked to a corresponding Registry Organisation Identifier.
    */
   Property REGISTRY_ENTRY_CREATED_ITEM_ID = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "RegItemId");

   /**
    * An identifier for the registry which issued the corresponding Registry Image Id.
    */
   Property REGISTRY_ENTRY_CREATED_ORGANISATION_ID = Property.internalTextBag(
         PREFIX_IPTC_EXT + TikaCoreProperties.NAMESPACE_PREFIX_DELIMITER + "RegOrgId");


   Property[] PROPERTY_GROUP_IPTC_CORE = new Property[] {
         CITY,
         COUNTRY,
         COUNTRY_CODE,
         DESCRIPTION,
         HEADLINE,
         INTELLECTUAL_GENRE,
         KEYWORDS,
         PROVINCE_OR_STATE,
         SCENE_CODE,
         SUBJECT_CODE,
         SUBLOCATION,
         DATE_CREATED,
         DESCRIPTION_WRITER,
         INSTRUCTIONS,
         JOB_ID,
         TITLE,
         COPYRIGHT_NOTICE,
         CREATOR,
         CREATORS_JOB_TITLE,
         CREDIT_LINE,
         RIGHTS_USAGE_TERMS,
         SOURCE,
         CONTACT_INFO_ADDRESS,
         CONTACT_INFO_CITY,
         CONTACT_INFO_COUNTRY,
         CONTACT_INFO_EMAIL,
         CONTACT_INFO_PHONE,
         CONTACT_INFO_POSTAL_CODE,
         CONTACT_INFO_STATE_PROVINCE,
         CONTACT_INFO_WEB_URL
   };

   Property[] PROPERTY_GROUP_IPTC_EXT = new Property[] {
         ADDITIONAL_MODEL_INFO,
         ORGANISATION_CODE,
         CONTROLLED_VOCABULARY_TERM,
         MODEL_AGE,
         ORGANISATION_NAME,
         PERSON,
         DIGITAL_IMAGE_GUID,
         DIGITAL_SOURCE_TYPE,
         EVENT,
         IMAGE_SUPPLIER_ID,
         IMAGE_SUPPLIER_NAME,
         IMAGE_SUPPLIER_IMAGE_ID,
         IPTC_LAST_EDITED,
         MAX_AVAIL_HEIGHT,
         MAX_AVAIL_WIDTH,
         PLUS_VERSION,
         COPYRIGHT_OWNER_ID,
         COPYRIGHT_OWNER_NAME,
         IMAGE_CREATOR_ID,
         IMAGE_CREATOR_NAME,
         LICENSOR_ID,
         LICENSOR_NAME,
         LICENSOR_CITY,
         LICENSOR_COUNTRY,
         LICENSOR_EMAIL,
         LICENSOR_EXTENDED_ADDRESS,
         LICENSOR_POSTAL_CODE,
         LICENSOR_REGION,
         LICENSOR_STREET_ADDRESS,
         LICENSOR_TELEPHONE_1,
         LICENSOR_TELEPHONE_2,
         LICENSOR_URL,
         MINOR_MODEL_AGE_DISCLOSURE,
         MODEL_RELEASE_ID,
         MODEL_RELEASE_STATUS,
         PROPERTY_RELEASE_ID,
         PROPERTY_RELEASE_STATUS,
         ARTWORK_OR_OBJECT_DETAIL_COPYRIGHT_NOTICE,
         ARTWORK_OR_OBJECT_DETAIL_CREATOR,
         ARTWORK_OR_OBJECT_DETAIL_DATE_CREATED,
         ARTWORK_OR_OBJECT_DETAIL_SOURCE,
         ARTWORK_OR_OBJECT_DETAIL_SOURCE_INVENTORY_NUMBER,
         ARTWORK_OR_OBJECT_DETAIL_TITLE,
         LOCATION_SHOWN_CITY,
         LOCATION_SHOWN_COUNTRY_CODE,
         LOCATION_SHOWN_COUNTRY_NAME,
         LOCATION_SHOWN_PROVINCE_OR_STATE,
         LOCATION_SHOWN_SUBLOCATION,
         LOCATION_SHOWN_WORLD_REGION,
         LOCATION_CREATED_CITY,
         LOCATION_CREATED_COUNTRY_CODE,
         LOCATION_CREATED_COUNTRY_NAME,
         LOCATION_CREATED_PROVINCE_OR_STATE,
         LOCATION_CREATED_SUBLOCATION,
         LOCATION_CREATED_WORLD_REGION,
         REGISTRY_ENTRY_CREATED_ITEM_ID,
         REGISTRY_ENTRY_CREATED_ORGANISATION_ID
   };
}