Instant Monitoring System Combating Human Rights Abuses Through NLP

Published
Aug 24, 2021
Reading Time
Rate this post
(13 votes)
Instant Monitoring System Combating Human Rights Abuses Through NLP

ACF

ID81233
keyfield_631f4d7797230
labelSummary
nameblog_summary
prefixacf
typewysiwyg
value<p><span style="font-weight: 400;">A complete pipeline to identify and monitor <a href="https://omdena.com/projects/ai-human-rights/" target="_blank" rel="noopener"><strong>human rights abuses through NLP</strong></a> models. In this two-month </span><span style="font-weight: 400;">challenge</span><span style="font-weight: 400;">, a group of collaborators with <a href="https://www.linkedin.com/company/human-rights-first/" target="_blank" rel="nofollow noopener">Human Rights First</a> prepared annotated social media posts datasets, solved related classification problems, and built a dashboard Streamlit app deployed on cloud AWS to identify, visualize and summarize the human rights abuses happening related to war crime based on the severity score and location.</span></p>
parent52446
wrapperArray ( [width] => [class] => [id] => )
tabsall
toolbarbasic
_nameblog_summary
_valid1

Module Settings

custom_identifierSummary
acf_namefield_631f4d7797230
is_author_acf_fieldoff
post_object_acf_namenone
author_field_typeauthor_post
linked_user_acf_namenone
type_taxonomy_acf_namenone
acf_tagspan
show_labeloff
label_seperator:
visibilityon
empty_value_optionhide_module
use_iconoff
icon_color#7EBEC5
use_circleoff
circle_color#7EBEC5
use_circle_borderoff
circle_border_color#7EBEC5
use_icon_font_sizeoff
icon_image_placementleft
image_mobile_stackinginitial
return_formatarray
image_link_urloff
image_link_url_acf_namenone
checkbox_stylearray
checkbox_radio_returnlabel
checkbox_radio_value_typeoff
checkbox_radio_linkoff
link_buttonoff
email_subjectnone
email_body_afternone
add_css_classoff
add_css_loop_layoutoff
add_css_class_selectorbody
link_new_taboff
link_name_acfoff
link_name_acf_namenone
url_link_iconoff
image_sizefull
true_false_conditionoff
true_false_condition_css_selector.et_pb_button
true_false_text_trueTrue
true_false_text_falseFalse
is_audiooff
is_videooff
video_loopon
video_autoplayon
is_oembed_videooff
defer_videooff
defer_video_iconI||divi||400
video_icon_font_sizeoff
pretify_textoff
pretify_seperator,
number_decimal.
show_value_if_zerooff
text_imageoff
is_options_pageoff
is_repeater_loop_layoutoff
linked_post_stylecustom
link_post_seperator,
link_to_post_objecton
loop_layoutnone
columns4
columns_tablet2
columns_mobile1
repeater_dyn_btn_acfnone
text_before_positionsame_line
label_positionsame_line
vertical_alignmentmiddle
admin_labelSummary
module_classsummary
_builder_version4.16
_module_presetdefault
title_css_font_size14px
title_css_letter_spacing0px
title_css_line_height1em
acf_label_css_font_size14px
acf_label_css_letter_spacing0px
acf_label_css_line_height1em
label_css_text_color#333333
label_css_font_size20px
label_css_letter_spacing0px
label_css_line_height23.5px
text_before_css_font_size14px
text_before_css_letter_spacing0px
text_before_css_line_height1em
seperator_font_size14px
seperator_letter_spacing0px
seperator_line_height1em
relational_field_item_font_size14px
relational_field_item_letter_spacing0px
relational_field_item_line_height1em
background_enable_coloroff
use_background_color_gradientoff
background_color_gradient_repeatoff
background_color_gradient_typelinear
background_color_gradient_direction180deg
background_color_gradient_direction_radialcenter
background_color_gradient_stops#2b87da 0%|#29c4a9 100%
background_color_gradient_unit%
background_color_gradient_overlays_imageoff
background_color_gradient_start#2b87da
background_color_gradient_start_position0%
background_color_gradient_end#29c4a9
background_color_gradient_end_position100%
background_enable_imageon
parallaxoff
parallax_methodon
background_sizecover
background_image_widthauto
background_image_heightauto
background_positioncenter
background_horizontal_offset0
background_vertical_offset0
background_repeatno-repeat
background_blendnormal
background_enable_video_mp4on
background_enable_video_webmon
allow_player_pauseoff
background_video_pause_outside_viewporton
background_enable_pattern_styleoff
background_pattern_stylepolka-dots
background_pattern_colorrgba(0,0,0,0.2)
background_pattern_sizeinitial
background_pattern_widthauto
background_pattern_heightauto
background_pattern_repeat_origintop_left
background_pattern_horizontal_offset0
background_pattern_vertical_offset0
background_pattern_repeatrepeat
background_pattern_blend_modenormal
background_enable_mask_styleoff
background_mask_stylelayer-blob
background_mask_color#ffffff
background_mask_aspect_ratiolandscape
background_mask_sizestretch
background_mask_widthauto
background_mask_heightauto
background_mask_positioncenter
background_mask_horizontal_offset0
background_mask_vertical_offset0
background_mask_blend_modenormal
custom_buttonoff
button_text_size20
button_bg_use_color_gradientoff
button_bg_color_gradient_repeatoff
button_bg_color_gradient_typelinear
button_bg_color_gradient_direction180deg
button_bg_color_gradient_direction_radialcenter
button_bg_color_gradient_stops#2b87da 0%|#29c4a9 100%
button_bg_color_gradient_unit%
button_bg_color_gradient_overlays_imageoff
button_bg_color_gradient_start#2b87da
button_bg_color_gradient_start_position0%
button_bg_color_gradient_end#29c4a9
button_bg_color_gradient_end_position100%
button_bg_enable_imageon
button_bg_parallaxoff
button_bg_parallax_methodon
button_bg_sizecover
button_bg_image_widthauto
button_bg_image_heightauto
button_bg_positioncenter
button_bg_horizontal_offset0
button_bg_vertical_offset0
button_bg_repeatno-repeat
button_bg_blendnormal
button_bg_enable_video_mp4on
button_bg_enable_video_webmon
button_bg_allow_player_pauseoff
button_bg_video_pause_outside_viewporton
button_use_iconon
button_icon_placementright
button_on_hoveron
positioningnone
position_origin_atop_left
position_origin_ftop_left
position_origin_rtop_left
width660px
width_tablet90%
width_phone90%
width_last_editedon|phone
max_widthnone
module_alignmentcenter
min_heightauto
heightauto
max_heightnone
custom_margin60px||60px||true|false
custom_margin_tablet50px||50px||true|false
custom_margin_phone50px||50px||true|false
custom_margin_last_editedon|phone
custom_padding24px|21px|24px|21px|true|true
filter_hue_rotate0deg
filter_saturate100%
filter_brightness100%
filter_contrast100%
filter_invert0%
filter_sepia0%
filter_opacity100%
filter_blur0px
mix_blend_modenormal
animation_stylenone
animation_directioncenter
animation_duration1000ms
animation_delay0ms
animation_intensity_slide50%
animation_intensity_zoom50%
animation_intensity_flip50%
animation_intensity_fold50%
animation_intensity_roll50%
animation_starting_opacity0%
animation_speed_curveease-in-out
animation_repeatonce
hover_transition_duration300ms
hover_transition_delay0ms
hover_transition_speed_curveease
link_option_url_new_windowoff
sticky_positionnone
sticky_offset_top0px
sticky_offset_bottom0px
sticky_limit_topnone
sticky_limit_bottomnone
sticky_offset_surroundingon
sticky_transitionon
motion_trigger_startmiddle
hover_enabled0
label_css_font_size_tablet18px
label_css_font_size_phone16px
label_css_font_size_last_editedon|desktop
label_css_line_height_tablet23.5px
label_css_line_height_phone23.5px
label_css_line_height_last_editedon|phone
title_css_text_shadow_stylenone
title_css_text_shadow_horizontal_length0em
title_css_text_shadow_vertical_length0em
title_css_text_shadow_blur_strength0em
title_css_text_shadow_colorrgba(0,0,0,0.4)
acf_label_css_text_shadow_stylenone
acf_label_css_text_shadow_horizontal_length0em
acf_label_css_text_shadow_vertical_length0em
acf_label_css_text_shadow_blur_strength0em
acf_label_css_text_shadow_colorrgba(0,0,0,0.4)
label_css_text_shadow_stylenone
label_css_text_shadow_horizontal_length0em
label_css_text_shadow_vertical_length0em
label_css_text_shadow_blur_strength0em
label_css_text_shadow_colorrgba(0,0,0,0.4)
text_before_css_text_shadow_stylenone
text_before_css_text_shadow_horizontal_length0em
text_before_css_text_shadow_vertical_length0em
text_before_css_text_shadow_blur_strength0em
text_before_css_text_shadow_colorrgba(0,0,0,0.4)
seperator_text_shadow_stylenone
seperator_text_shadow_horizontal_length0em
seperator_text_shadow_vertical_length0em
seperator_text_shadow_blur_strength0em
seperator_text_shadow_colorrgba(0,0,0,0.4)
relational_field_item_text_shadow_stylenone
relational_field_item_text_shadow_horizontal_length0em
relational_field_item_text_shadow_vertical_length0em
relational_field_item_text_shadow_blur_strength0em
relational_field_item_text_shadow_colorrgba(0,0,0,0.4)
border_radiion|6px|6px|6px|6px
border_width_all2px
border_color_all#2c39b1
button_text_shadow_stylenone
button_text_shadow_horizontal_length0em
button_text_shadow_vertical_length0em
button_text_shadow_blur_strength0em
button_text_shadow_colorrgba(0,0,0,0.4)
box_shadow_stylepreset4
box_shadow_horizontal7px
box_shadow_vertical7px
box_shadow_blur0px
box_shadow_spread0px
box_shadow_color#e0e2ff
box_shadow_positionouter
box_shadow_style_buttonnone
box_shadow_color_buttonrgba(0,0,0,0.3)
box_shadow_position_buttonouter
text_shadow_stylenone
text_shadow_horizontal_length0em
text_shadow_vertical_length0em
text_shadow_blur_strength0em
text_shadow_colorrgba(0,0,0,0.4)
disabledoff
lockedoff
global_colors_info{}

A complete pipeline to identify and monitor human rights abuses through NLP models. In this two-month challenge, a group of collaborators with Human Rights First prepared annotated social media posts datasets, solved related classification problems, and built a dashboard Streamlit app deployed on cloud AWS to identify, visualize and summarize the human rights abuses happening related to war crime based on the severity score and location.

Execution time: 0.0019 seconds

Execution time: 0.0003 seconds

Authors: Maniv Sehgar, Rhey Ann, Andres, Owusu Sarpong, Yih-Dar Shieh, Sa Phyo Thu Htet 

the framework process flow for Omdena - Human Rights through NLP - Source: Omdena

The framework process flow for Omdena – Human Right First project

Figure 1 describes the framework process flow for Omdena – Human Right First project. The steps contain data collection, data labeling, classification modeling, deployment, and dashboard, and they are briefly explained in the following sections.

Data collection: Social media

We collected datasets using API and scraping text data from different social media platforms: Twitter and Reddit. These datasets would ideally be used to tackle many diverse problems related to human rights abuses, for example, war crime detection and war crime ranking based on the severity score on subcategories of war crimes. 

In order to make the process of data extraction easier by identifying the keywords for extraction, a set of vocabulary is developed. Figure 2 shows the keywords (adjective, verb, etc.) are scraped from the United Nations website using BeautifulSoup method. To widen the vocabulary, a pre-trained NLP model (glove) is used to find the vocabulary with similar words or synonyms of the keywords and save it into CSV format.

Combating Human Rights through NLP - Source: Omdena

Figure 2: Vocabulary Collection

Reddit

Methods used for data collection from Reddit social media platforms are shown in Figure 3. The first method is using Pushshift API to perform the data extraction. The advantage of this API is it can extract more than 1,000 thread/post text data, however, it requires a greater time of about 1-2 hours to complete. Therefore, another API method is used which is PRAW API. The limitation of this method is it only limits 1000 threads/posts. The advantage is it only takes 2-3 minutes for extraction. The credentials provided by HRF such as app name, id and secret key are used to collect the Reddit data. The data is extracted from 5 different pages called world news, news, war crimes, war, war crime. Next, specific keywords (for example, weapons, civilians) are used to extract data from particular war crime topics. Then the data is ready for data labeling. 

Combating Human Rights through NLP - Source: Omdena

Figure 3: Reddit Data Extraction

Twitter

Methods used for data collection from Twitter social media platforms are shown in Figure 4. The first method is the Tweepy API to perform the data extraction. The disadvantage of this API is it only allows us to get a limited number of tweets and you can’t exceed your quota which is very low. Therefore, an alternative solution is used that does not interface with the API called Twint. The Twint works more as scraping and the ultimate advantage of it is it doesn’t interact with API, hence there are practically no limitations to the data we obtain. The data is collected by setting up a few main restrictions such as the data range, the language, and the keyword used to extract the data. Then the data is ready for data labeling. 

Combating Human Rights through NLP - Source: Omdena

Figure 4: Twitter Data Extraction

Data labeling

We planned a generic approach to label datasets and used it to label war crime data for Twitter and Reddit. Labeling the datasets as shown in the life cycle (Figure 1) requires an appropriate labeling tool. To this end, we explored different tools such as HumanFirst and Labelbox, etc., but eventually selected Labelbox as it provides to label subcategories.

The second step in the labeling life cycle is to prepare a set of guidelines. These guidelines are problem-specific and include the definition of the problem with examples, the exact labels to assign, etc. with the ultimate goal of achieving consistency of labels from different collaborators. The steps of labeling include multiclass and multilabel labeling as shown in Figure 5.

Using NLP to combat human rights - Source: Omdena

Figure 5: Labeling Flow

Here are the labels used for Reddit and Twitter data classification. We studied different sub-labels that are suitable to fall under the war crime category and the label definitions have been verified by Human Right First (host company) before we start to label.

Multiclass war crime

Table 1: Label Definitions – Multiclass

TypeDefinition
War crimeThe text contains contexts related to war crime information.
Non-war crimeThe text does not contain contexts related to war crime information.
Under war crimeThe text does not fall under any of the categories of a sublabel war crime but the context is related to other war crime information

 

Multilabel war crime

Table 2: Label Definitions – Multilabel

TypeDefinition
Involvement of Children in Armed ConflictThis applies whenever children under the age of 15 are involved in armed conflicts, that is, used as soldiers, armed and/or actively participating in the armed conflict.
Property DestructionDestruction of property in an unjustified way, which includes civil, religious or cultural buildings and properties when said destruction is not justified by military necessity.
Intentionally directing attacks against the civilian populationLaunching an attack in the knowledge that such attack will cause incidental loss of civilian life, injury to civilians or damage to civilian objects, including medical or religious personnel, as well as any person protected by international law.
MurderKilling civilians or surrendered combatants
Mutilation, cruel treatment, and tortureSubjecting people to any type of cruelty, mistreatment, or unjustified harm, including torture, slavery, degrading treatment, mutilation of dead bodies, and collective punishments.
PerfidyKilling or wounding an adversary after promising to act in good faith with the intention of breaking that promise once the unsuspecting enemy is exposed. This category also includes using flags, insignias or emblems to make the enemy believe they can trust them, and using that trust to attack, wound or kill.
Pillaging/LootingSeizing property is not justified by military necessity. This includes stealing from the dead, injured or shipwrecked.
Sexual violenceRape, sexual slavery, forced pregnancy or any other form of sexual violence, including forced sterilization.
Taking of hostagesSeizure or detention of a person (the hostage), combined with threatening to kill, to injure or to continue to detain the hostage, in order to compel a third party to do or to abstain from doing any act as an explicit or implicit condition for the release of the hostage.
Weaponising CiviliansUsing human shields, seizing basic resources such as food, water, or other supplies from the civil population in order to coerce the adversary and/or placing civilians in certain territories to avoid the adversary attacking them.
Rights SuspensionSuspending population rights, especially with regards to due process. This includes unlawful deportations, declaring abolished or suspended the rights of those civilians in the adversary party, or sentencing without due judicial guarantees.

Summary of datasets

In this section, we summarize the datasets. The outcome of the labeling distribution is shown in Figure 6.

Figure 6: Labeled Distribution of Twitter and Reddit Datasets

Classification Modeling

The war crime classification is treated as two classification problems:

  • Binary classification (war crime, non-war crime)
    • The under war crime category is merged with the war crime category to provide a more portion of the distribution to the war crime category.
  • Multilabel classification (war crime: Involvement of Children in Armed Conflict, Property Destruction, Intentionally directing attacks against the civilian population, Murder, Mutilation, cruel treatment and torture, Perfidy, Pillaging/Looting, Sexual violence, Taking of hostages, Weaponising Civilians, Rights Suspension)
Social media modeling using NLP - Source: Omdena

Figure 7:  Reddit Modeling

The original labeled dataset is imbalanced, therefore, we prepared two datasets from that: the original overall dataset (unbalanced) and an undersampled but more balanced dataset. We built several classification models for these two datasets separately as shown in Figure 7.

Based on Figure 8, on the undersampled dataset, for binary models, the bert-large-uncased model provides the best f1 score, followed by the distil-large-uncased model. The voting classifier (ensemble learning) provides a decent f1 score. For multi-label models as shown in table 2, the bert-large-uncased model provides the best f1 score.  Based on Figure 9, we found a roberta-base based binary model achieving the best F1-score on the overall dataset (Reddit). Another bert model (bert-large-uncased) was a very close second. Several traditional machine learning algorithms (Naive Bayes, Random Forest, Support Vector Machine) provide a good F1 score, however, these models were trained using an earlier version of the Reddit dataset which contained fewer data and were much unbalanced, therefore the models are overfitting. The passive-aggressive classifier (an online-learning algorithm) and the distil-bert-large-uncased model provide decent F1 scores. Finally, for multilabel, the bert-large-uncased model provides the best F1 score.

Figure 8: Reddit Undersample Dataset Modeling

Figure 9: Reddit Overall Dataset Modeling

Figure 10:  Twitter Modeling

Figure 10 shows the binary and multilabel models trained on the Twitter dataset. Figure 11 shows their scores. For binary models, the Multinomial Naïve Bayes model provides the best f1 score, followed by the bert-large-uncased and XGBoost models. The Support Vector Machine model provides a decent f1 score. For multilabel, the bert-large-uncased model provides the best f1 score and the XGBoost model provides a decent f1 score.

Figure 11: Twitter Dataset Modeling

Summary of the model classification

The limitations of the models are summarized in Figure 12. Based on the models for Reddit and Twitter, for binary classification, the limitation is the models are over-fitting due to the class imbalance although it gave better accuracy. Furthermore, the war-crime examples seem to share quite similar texts, therefore lack diversity. This is another potential reason for which our models have decent performances, despite the dataset being small. The future scope for binary models is to find more efficient ways to clean the texts. The limitation for multilabel models is the models are over-fitting due to class imbalance. There were less than 100 tweets for some categories. Undersampling dropped the accuracy significantly but removed the over-fitting. The future scope for multilabel modeling is since there are 11 classes, it is very important for the classes to be balanced when doing a classification. Maybe adding some tweets manually for those imbalanced classes. In general, the limitation of modeling is it requires more training data for better accuracy, and more test data is required for a more reliable evaluation. Further fine-tuning the models for optimal performance and hyperparameter tuning of the large models require much more time and effort as each trial takes about 30 minutes. Here are future scopes for building war crime classifiers:

  • Deeper model interpretation for better understanding model’s predictions
  • Studying and avoiding model biases due to some countries occurring a lot of times in war-crime posts

Figure 12: Summary of Model Limitation and Future Scope

Model interpretation

We take one step further to better understand which words (more precisely, tokens) in a text contribute to a war crime prediction from our model. For this, we use the Python library Captum, an open-source and extensible library for model interpretability built on PyTorch. Figure 13 shows a few results given by Captum on our model. We observe the following fact:

  • Some expected words that contribute to war crime prediction: torture, war, massacre, genocide, kill, rape, shoot, weapon, bomb
  • Some neutral words like civilian or government, in some texts, contribute to war crime prediction. For example:
    • hughhefner nato targeting Libya civilians infra structure clearly specifically forbid
    •  bush adviser defends massacring civilians
    •  torture year British government know

The potential reason: such words occur quite often in the positive (war crime) examples in the collected dataset, while there might not be enough negative examples with such words to help the model recognize them as neutral.

  • Some country names contribute to war crime prediction, which is a very undesirable situation because this leads to some form of bias. Examples:
    •  sign petition investigate prosecute Iraq torture scandal
    •  judge rebuke Irish Nobel laureate call Israel state Brandon sun a ~
    •  Israeli shelling kill Gazan wound <number> year old girl wb a ~

The reason for this is similar to the case of neutral words above. However, the consequence is much more severe, and we need to avoid such bias to occur.

The above observations suggest that we need to improve the data collection to avoid bias, and one of the options could be including more negative examples which contain certain words (neutral words or country names, etc.). However, we need to find such negative examples among the examples that could be extracted by using the same set of keywords for our overall data collection. Otherwise, the negative examples would come from a different distribution, and this won’t help the model to learn such words used in negative examples that are similar to our positive examples.

Figure 13: Model interpretation

Deployment of the models

Deployment is the next crucial step after building the models. It’s at this stage that we bring the model alive to fulfill its purposes for the clients and all other stakeholders. So, we integrate the model into an environment that receives social media messages (Reddit or Twitter posts) and predicts whether it’s a war crime or nonwar crime. In the case of war crime, it also determines its subcategories such as murder, property destruction, intentionally attacking civilians, etc.

We use FastAPI to deploy the NLP models on HRF’s AWS platform. FastAPI is a modern web framework for building APIs which is fast to implement. In addition, it comes with an interactive API interface – simple to navigate and intuitive to operate with. For AWS, we use S3, PostgresQL, and EC2.

Figure 14: Steps of the deployment phase

The diagram above illustrates the first 3 steps for the deployment phase.

  • In Step 1, the NLP models (chosen as the final) were saved separately as a single application (i.e., pickle file). Like wrapping up a product into a nice package box.
  • Then in Step 2, we bring the model out of the box so that anyone can interact with it. This is where the FastAPI comes in. Firstly, we tested hosting the interactive API interface on our local machine which could be accessed with this local url http://127.0.0.1:8000/docs Secondly, we tried out various messages on the interface for model prediction. Example:
    • The model predicted “demonstration is ongoing in Pakistan for free and fair election” as nonwar crime
    • The model predicted “civilians are being attacked and killed in Gaza” as a war crime
  • We moved to Step 3 once things were working fine on our local machine. Here, we simply upload all the files from local to the EC2 environment. In addition, we installed all the necessary requirements such as python packages. Now, the API interface could be accessed using the EC2 URL.

The final Dashboard MVP

The final Dashboard MVP

The final Dashboard MVP

The final Dashboard MVP

Conclusion

In conclusion, the envisioned goals for this project were successfully achieved, with labeled datasets generated for war crime data and an MVP with backend models and front-end interfaces deployed to Cloud AWS, displaying the visualization using Streamlit dashboard. This work could be further extended and furnished on possible areas of future exploration, including:

  • Collect more data with higher quality datasets for Reddit and Twitter. Explore other open-source data. 
  • Explore methods to identify the trustworthiness of the data.

Finally, we acknowledge all the collaborators for their hard work, our client Human Right First for their close cooperation and feedback, and Omdena for making this project possible!

ACF

ID58157
keyfield_623341deec7d0
labelPhoto
namephoto
prefixacf
typeimage
valueArray ( [ID] => 65797 [id] => 65797 [title] => cropped-favicon.png [filename] => cropped-favicon.png [filesize] => 121729 [url] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [link] => https://omdena.com/cropped-favicon-png/ [alt] => [author] => 19 [description] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [caption] => [name] => cropped-favicon-png [status] => inherit [uploaded_to] => 75110 [date] => 2022-05-06 06:09:26 [modified] => 2022-07-31 03:20:24 [menu_order] => 0 [mime_type] => image/png [type] => image [subtype] => png [icon] => https://omdena.com/wp-includes/images/media/default.png [width] => 512 [height] => 512 [sizes] => Array ( [thumbnail] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon-150x150.png [thumbnail-width] => 96 [thumbnail-height] => 96 [medium] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon-300x300.png [medium-width] => 300 [medium-height] => 300 [medium_large] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [medium_large-width] => 512 [medium_large-height] => 512 [large] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [large-width] => 512 [large-height] => 512 [1536x1536] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [1536x1536-width] => 512 [1536x1536-height] => 512 [2048x2048] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [2048x2048-width] => 512 [2048x2048-height] => 512 [et-pb-post-main-image] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon-400x250.png [et-pb-post-main-image-width] => 400 [et-pb-post-main-image-height] => 250 [et-pb-post-main-image-fullwidth] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [et-pb-post-main-image-fullwidth-width] => 512 [et-pb-post-main-image-fullwidth-height] => 512 [et-pb-portfolio-image] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon-400x284.png [et-pb-portfolio-image-width] => 400 [et-pb-portfolio-image-height] => 284 [et-pb-portfolio-module-image] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon-510x382.png [et-pb-portfolio-module-image-width] => 510 [et-pb-portfolio-module-image-height] => 382 [et-pb-portfolio-image-single] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [et-pb-portfolio-image-single-width] => 512 [et-pb-portfolio-image-single-height] => 512 [et-pb-gallery-module-image-portrait] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon-400x512.png [et-pb-gallery-module-image-portrait-width] => 400 [et-pb-gallery-module-image-portrait-height] => 512 [et-pb-post-main-image-fullwidth-large] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [et-pb-post-main-image-fullwidth-large-width] => 512 [et-pb-post-main-image-fullwidth-large-height] => 512 [et-pb-image--responsive--desktop] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [et-pb-image--responsive--desktop-width] => 512 [et-pb-image--responsive--desktop-height] => 512 [et-pb-image--responsive--tablet] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon.png [et-pb-image--responsive--tablet-width] => 512 [et-pb-image--responsive--tablet-height] => 512 [et-pb-image--responsive--phone] => https://omdena.com/wp-content/uploads/2022/05/cropped-favicon-480x480.png [et-pb-image--responsive--phone-width] => 270 [et-pb-image--responsive--phone-height] => 270 ))
menu_order1
parent58155
wrapperArray ( [width] => [class] => [id] => )
return_formatarray
preview_sizethumbnail
libraryall
_namephoto
_valid1

Module Settings

custom_identifierImage
acf_namefield_623341deec7d0
is_author_acf_fieldoff
post_object_acf_namenone
author_field_typeauthor_post
linked_user_acf_namenone
type_taxonomy_acf_namenone
acf_tagdiv
show_labeloff
label_seperator:
visibilityon
empty_value_optionhide_module
use_iconoff
icon_color#7EBEC5
use_circleoff
circle_color#7EBEC5
use_circle_borderoff
circle_border_color#7EBEC5
use_icon_font_sizeoff
icon_image_placementleft
image_mobile_stackingcolumn
return_formatarray
image_link_urloff
image_link_url_acf_namenone
checkbox_stylearray
checkbox_radio_returnlabel
checkbox_radio_value_typeoff
checkbox_radio_linkoff
link_buttonoff
email_subjectnone
email_body_afternone
add_css_classoff
add_css_loop_layoutoff
add_css_class_selectorbody
link_new_tabon
link_name_acfoff
link_name_acf_namenone
url_link_iconoff
image_sizefull
true_false_conditionoff
true_false_condition_css_selector.et_pb_button
true_false_text_trueTrue
true_false_text_falseFalse
is_audiooff
is_videooff
video_loopon
video_autoplayon
is_oembed_videooff
defer_videooff
defer_video_iconI||divi||400
video_icon_font_sizeoff
pretify_textoff
pretify_seperator,
number_decimal.
show_value_if_zerooff
text_imageoff
is_options_pageoff
is_repeater_loop_layoutoff
linked_post_stylecustom
link_post_seperator,
link_to_post_objecton
loop_layoutnone
columns4
columns_tablet2
columns_mobile1
repeater_dyn_btn_acfnone
button_alignmentcenter
text_before_positionsame_line
label_positionsame_line
vertical_alignmentmiddle
image_max_width_last_editedon|phone
admin_labelPhoto
_builder_version4.16
_module_presetdefault
title_css_font_size14px
title_css_letter_spacing0px
title_css_line_height1em
acf_label_css_font_size14px
acf_label_css_letter_spacing0px
acf_label_css_line_height1em
label_css_letter_spacing0px
text_before_css_font_size14px
text_before_css_letter_spacing0px
text_before_css_line_height1em
seperator_font_size14px
seperator_letter_spacing0px
seperator_line_height1em
relational_field_item_font_size14px
relational_field_item_letter_spacing0px
relational_field_item_line_height1em
background_enable_coloron
use_background_color_gradientoff
background_color_gradient_repeatoff
background_color_gradient_typelinear
background_color_gradient_direction180deg
background_color_gradient_direction_radialcenter
background_color_gradient_stops#2b87da 0%|#29c4a9 100%
background_color_gradient_unit%
background_color_gradient_overlays_imageoff
background_color_gradient_start#2b87da
background_color_gradient_start_position0%
background_color_gradient_end#29c4a9
background_color_gradient_end_position100%
background_enable_imageon
parallaxoff
parallax_methodon
background_sizecover
background_image_widthauto
background_image_heightauto
background_positioncenter
background_horizontal_offset0
background_vertical_offset0
background_repeatno-repeat
background_blendnormal
background_enable_video_mp4on
background_enable_video_webmon
allow_player_pauseoff
background_video_pause_outside_viewporton
background_enable_pattern_styleoff
background_pattern_stylepolka-dots
background_pattern_colorrgba(0,0,0,0.2)
background_pattern_sizeinitial
background_pattern_widthauto
background_pattern_heightauto
background_pattern_repeat_origintop_left
background_pattern_horizontal_offset0
background_pattern_vertical_offset0
background_pattern_repeatrepeat
background_pattern_blend_modenormal
background_enable_mask_styleoff
background_mask_stylelayer-blob
background_mask_color#ffffff
background_mask_aspect_ratiolandscape
background_mask_sizestretch
background_mask_widthauto
background_mask_heightauto
background_mask_positioncenter
background_mask_horizontal_offset0
background_mask_vertical_offset0
background_mask_blend_modenormal
custom_buttonoff
button_text_size20
button_bg_use_color_gradientoff
button_bg_color_gradient_repeatoff
button_bg_color_gradient_typelinear
button_bg_color_gradient_direction180deg
button_bg_color_gradient_direction_radialcenter
button_bg_color_gradient_stops#2b87da 0%|#29c4a9 100%
button_bg_color_gradient_unit%
button_bg_color_gradient_overlays_imageoff
button_bg_color_gradient_start#2b87da
button_bg_color_gradient_start_position0%
button_bg_color_gradient_end#29c4a9
button_bg_color_gradient_end_position100%
button_bg_enable_imageon
button_bg_parallaxoff
button_bg_parallax_methodon
button_bg_sizecover
button_bg_image_widthauto
button_bg_image_heightauto
button_bg_positioncenter
button_bg_horizontal_offset0
button_bg_vertical_offset0
button_bg_repeatno-repeat
button_bg_blendnormal
button_bg_enable_video_mp4on
button_bg_enable_video_webmon
button_bg_allow_player_pauseoff
button_bg_video_pause_outside_viewporton
button_use_iconon
button_icon_placementright
button_on_hoveron
positioningnone
position_origin_atop_left
position_origin_ftop_left
position_origin_rtop_left
width100%
max_widthnone
max_width_tablet25%
max_width_phone25%
max_width_last_editedon|tablet
module_alignmentcenter
min_heightauto
heightauto
max_heightnone
custom_margin_tablet||0px||false|false
custom_margin_phone||0px||false|false
custom_margin_last_editedon|phone
filter_hue_rotate0deg
filter_saturate100%
filter_brightness100%
filter_contrast100%
filter_invert0%
filter_sepia0%
filter_opacity100%
filter_blur0px
mix_blend_modenormal
animation_stylenone
animation_directioncenter
animation_duration1000ms
animation_delay0ms
animation_intensity_slide50%
animation_intensity_zoom50%
animation_intensity_flip50%
animation_intensity_fold50%
animation_intensity_roll50%
animation_starting_opacity0%
animation_speed_curveease-in-out
animation_repeatonce
hover_transition_duration300ms
hover_transition_delay0ms
hover_transition_speed_curveease
link_option_url_new_windowoff
sticky_positionnone
sticky_offset_top0px
sticky_offset_bottom0px
sticky_limit_topnone
sticky_limit_bottomnone
sticky_offset_surroundingon
sticky_transitionon
motion_trigger_startmiddle
hover_enabled0
title_css_text_shadow_stylenone
title_css_text_shadow_horizontal_length0em
title_css_text_shadow_vertical_length0em
title_css_text_shadow_blur_strength0em
title_css_text_shadow_colorrgba(0,0,0,0.4)
acf_label_css_text_shadow_stylenone
acf_label_css_text_shadow_horizontal_length0em
acf_label_css_text_shadow_vertical_length0em
acf_label_css_text_shadow_blur_strength0em
acf_label_css_text_shadow_colorrgba(0,0,0,0.4)
label_css_text_shadow_stylenone
label_css_text_shadow_horizontal_length0em
label_css_text_shadow_vertical_length0em
label_css_text_shadow_blur_strength0em
label_css_text_shadow_colorrgba(0,0,0,0.4)
text_before_css_text_shadow_stylenone
text_before_css_text_shadow_horizontal_length0em
text_before_css_text_shadow_vertical_length0em
text_before_css_text_shadow_blur_strength0em
text_before_css_text_shadow_colorrgba(0,0,0,0.4)
seperator_text_shadow_stylenone
seperator_text_shadow_horizontal_length0em
seperator_text_shadow_vertical_length0em
seperator_text_shadow_blur_strength0em
seperator_text_shadow_colorrgba(0,0,0,0.4)
relational_field_item_text_shadow_stylenone
relational_field_item_text_shadow_horizontal_length0em
relational_field_item_text_shadow_vertical_length0em
relational_field_item_text_shadow_blur_strength0em
relational_field_item_text_shadow_colorrgba(0,0,0,0.4)
border_radiion|100%|100%|100%|100%
border_radii_tableton||||
border_radii_phoneon|100%|100%|100%|100%
border_radii_last_editedon|phone
button_text_shadow_stylenone
button_text_shadow_horizontal_length0em
button_text_shadow_vertical_length0em
button_text_shadow_blur_strength0em
button_text_shadow_colorrgba(0,0,0,0.4)
box_shadow_stylenone
box_shadow_colorrgba(0,0,0,0.3)
box_shadow_positionouter
box_shadow_style_buttonnone
box_shadow_color_buttonrgba(0,0,0,0.3)
box_shadow_position_buttonouter
text_shadow_stylenone
text_shadow_horizontal_length0em
text_shadow_vertical_length0em
text_shadow_blur_strength0em
text_shadow_colorrgba(0,0,0,0.4)
disabledoff
global_colors_info{}

Execution time: 0.0094 seconds

ACF

ID58156
keyfield_623341caec7cf
labelName
nameblog_author_name
prefixacf
typetext
valueOmdena
parent58155
wrapperArray ( [width] => [class] => [id] => )
_nameblog_author_name
_valid1

Module Settings

custom_identifierACF Item
acf_namefield_623341caec7cf
is_author_acf_fieldoff
post_object_acf_namenone
author_field_typeauthor_post
linked_user_acf_namenone
type_taxonomy_acf_namenone
acf_tagp
show_labeloff
label_seperator:
visibilityon
empty_value_optionhide_module
use_iconoff
icon_color#7EBEC5
use_circleoff
circle_color#7EBEC5
use_circle_borderoff
circle_border_color#7EBEC5
use_icon_font_sizeoff
icon_image_placementleft
image_mobile_stackinginitial
return_formatarray
image_link_urloff
image_link_url_acf_namenone
checkbox_stylearray
checkbox_radio_returnlabel
checkbox_radio_value_typeoff
checkbox_radio_linkoff
link_buttonoff
email_subjectnone
email_body_afternone
add_css_classoff
add_css_loop_layoutoff
add_css_class_selectorbody
link_new_tabon
link_name_acfoff
link_name_acf_namenone
url_link_iconoff
image_sizefull
true_false_conditionoff
true_false_condition_css_selector.et_pb_button
true_false_text_trueTrue
true_false_text_falseFalse
is_audiooff
is_videooff
video_loopon
video_autoplayon
is_oembed_videooff
defer_videooff
defer_video_iconI||divi||400
video_icon_font_sizeoff
pretify_textoff
pretify_seperator,
number_decimal.
show_value_if_zerooff
text_imageoff
is_options_pageoff
is_repeater_loop_layoutoff
linked_post_stylecustom
link_post_seperator,
link_to_post_objecton
loop_layoutnone
columns4
columns_tablet2
columns_mobile1
repeater_dyn_btn_acfnone
text_before_positionsame_line
label_positionsame_line
vertical_alignmentmiddle
admin_labelName
_builder_version4.21.0
_module_presetdefault
title_css_text_alignleft
title_css_font_size14px
title_css_letter_spacing0px
title_css_line_height1em
acf_label_css_text_alignleft
acf_label_css_font_size14px
acf_label_css_letter_spacing0px
acf_label_css_line_height1em
label_css_fontRoboto|700|||||||
label_css_text_alignleft
label_css_letter_spacing0px
text_before_css_font_size14px
text_before_css_letter_spacing0px
text_before_css_line_height1em
seperator_font_size14px
seperator_letter_spacing0px
seperator_line_height1em
relational_field_item_font_size14px
relational_field_item_letter_spacing0px
relational_field_item_line_height1em
background_enable_coloron
use_background_color_gradientoff
background_color_gradient_repeatoff
background_color_gradient_typelinear
background_color_gradient_direction180deg
background_color_gradient_direction_radialcenter
background_color_gradient_stops#2b87da 0%|#29c4a9 100%
background_color_gradient_unit%
background_color_gradient_overlays_imageoff
background_color_gradient_start#2b87da
background_color_gradient_start_position0%
background_color_gradient_end#29c4a9
background_color_gradient_end_position100%
background_enable_imageon
parallaxoff
parallax_methodon
background_sizecover
background_image_widthauto
background_image_heightauto
background_positioncenter
background_horizontal_offset0
background_vertical_offset0
background_repeatno-repeat
background_blendnormal
background_enable_video_mp4on
background_enable_video_webmon
allow_player_pauseoff
background_video_pause_outside_viewporton
background_enable_pattern_styleoff
background_pattern_stylepolka-dots
background_pattern_colorrgba(0,0,0,0.2)
background_pattern_sizeinitial
background_pattern_widthauto
background_pattern_heightauto
background_pattern_repeat_origintop_left
background_pattern_horizontal_offset0
background_pattern_vertical_offset0
background_pattern_repeatrepeat
background_pattern_blend_modenormal
background_enable_mask_styleoff
background_mask_stylelayer-blob
background_mask_color#ffffff
background_mask_aspect_ratiolandscape
background_mask_sizestretch
background_mask_widthauto
background_mask_heightauto
background_mask_positioncenter
background_mask_horizontal_offset0
background_mask_vertical_offset0
background_mask_blend_modenormal
custom_buttonoff
button_text_size20
button_bg_use_color_gradientoff
button_bg_color_gradient_repeatoff
button_bg_color_gradient_typelinear
button_bg_color_gradient_direction180deg
button_bg_color_gradient_direction_radialcenter
button_bg_color_gradient_stops#2b87da 0%|#29c4a9 100%
button_bg_color_gradient_unit%
button_bg_color_gradient_overlays_imageoff
button_bg_color_gradient_start#2b87da
button_bg_color_gradient_start_position0%
button_bg_color_gradient_end#29c4a9
button_bg_color_gradient_end_position100%
button_bg_enable_imageon
button_bg_parallaxoff
button_bg_parallax_methodon
button_bg_sizecover
button_bg_image_widthauto
button_bg_image_heightauto
button_bg_positioncenter
button_bg_horizontal_offset0
button_bg_vertical_offset0
button_bg_repeatno-repeat
button_bg_blendnormal
button_bg_enable_video_mp4on
button_bg_enable_video_webmon
button_bg_allow_player_pauseoff
button_bg_video_pause_outside_viewporton
button_use_iconon
button_icon_placementright
button_on_hoveron
positioningnone
position_origin_atop_left
position_origin_ftop_left
position_origin_rtop_left
text_orientationleft
widthauto
max_widthnone
module_alignmentleft
min_heightauto
heightauto
max_heightnone
custom_margin_tablet||10px||false|false
custom_margin_phone||10px||false|false
custom_margin_last_editedon|tablet
custom_padding5px||||false|false
filter_hue_rotate0deg
filter_saturate100%
filter_brightness100%
filter_contrast100%
filter_invert0%
filter_sepia0%
filter_opacity100%
filter_blur0px
mix_blend_modenormal
animation_stylenone
animation_directioncenter
animation_duration1000ms
animation_delay0ms
animation_intensity_slide50%
animation_intensity_zoom50%
animation_intensity_flip50%
animation_intensity_fold50%
animation_intensity_roll50%
animation_starting_opacity0%
animation_speed_curveease-in-out
animation_repeatonce
hover_transition_duration300ms
hover_transition_delay0ms
hover_transition_speed_curveease
link_option_url_new_windowoff
sticky_positionnone
sticky_offset_top0px
sticky_offset_bottom0px
sticky_limit_topnone
sticky_limit_bottomnone
sticky_offset_surroundingon
sticky_transitionon
motion_trigger_startmiddle
hover_enabled0
title_css_text_align_tabletcenter
title_css_text_align_phonecenter
title_css_text_align_last_editedon|phone
acf_label_css_text_align_tabletcenter
acf_label_css_text_align_phonecenter
acf_label_css_text_align_last_editedon|phone
label_css_text_align_tabletcenter
label_css_text_align_phonecenter
label_css_text_align_last_editedon|desktop
text_orientation_tabletcenter
text_orientation_phonecenter
text_orientation_last_editedon|phone
module_alignment_tabletcenter
module_alignment_phonecenter
module_alignment_last_editedon|desktop
title_css_text_shadow_stylenone
title_css_text_shadow_horizontal_length0em
title_css_text_shadow_vertical_length0em
title_css_text_shadow_blur_strength0em
title_css_text_shadow_colorrgba(0,0,0,0.4)
acf_label_css_text_shadow_stylenone
acf_label_css_text_shadow_horizontal_length0em
acf_label_css_text_shadow_vertical_length0em
acf_label_css_text_shadow_blur_strength0em
acf_label_css_text_shadow_colorrgba(0,0,0,0.4)
label_css_text_shadow_stylenone
label_css_text_shadow_horizontal_length0em
label_css_text_shadow_vertical_length0em
label_css_text_shadow_blur_strength0em
label_css_text_shadow_colorrgba(0,0,0,0.4)
text_before_css_text_shadow_stylenone
text_before_css_text_shadow_horizontal_length0em
text_before_css_text_shadow_vertical_length0em
text_before_css_text_shadow_blur_strength0em
text_before_css_text_shadow_colorrgba(0,0,0,0.4)
seperator_text_shadow_stylenone
seperator_text_shadow_horizontal_length0em
seperator_text_shadow_vertical_length0em
seperator_text_shadow_blur_strength0em
seperator_text_shadow_colorrgba(0,0,0,0.4)
relational_field_item_text_shadow_stylenone
relational_field_item_text_shadow_horizontal_length0em
relational_field_item_text_shadow_vertical_length0em
relational_field_item_text_shadow_blur_strength0em
relational_field_item_text_shadow_colorrgba(0,0,0,0.4)
button_text_shadow_stylenone
button_text_shadow_horizontal_length0em
button_text_shadow_vertical_length0em
button_text_shadow_blur_strength0em
button_text_shadow_colorrgba(0,0,0,0.4)
box_shadow_stylenone
box_shadow_colorrgba(0,0,0,0.3)
box_shadow_positionouter
box_shadow_style_buttonnone
box_shadow_color_buttonrgba(0,0,0,0.3)
box_shadow_position_buttonouter
text_shadow_stylenone
text_shadow_horizontal_length0em
text_shadow_vertical_length0em
text_shadow_blur_strength0em
text_shadow_colorrgba(0,0,0,0.4)
disabledoff
global_colors_info{}

Omdena

Execution time: 0.0011 seconds

Execution time: 0.0005 seconds

Execution time: 0.0005 seconds

Vetted Senior AI Talent

Work with our top 2% hidden gems, vetted through over 300 real-world projects.

Top Talent

Leave a comment.
0 Comments
Submit a Comment

Your email address will not be published. Required fields are marked *