## 2 Literature Review
### Ontology Instantiation: Populating Knowledge Graphs
The popularity and growth of APIs over the past few years was mainly due to the existence of open platforms,standardized cloud information access points, and third-party applications. However, the current limitations imposed by the strict privacy policies that apply to companies such as Facebook, Twitter, and Instagram in terms of data exposure, prevent the access to sensitive users' information and increase the security caused by the social engineering attacks [50]. Web scraping is one of the possible solutions to the APIs problem in data access mentioned above [51]. It refers to the practice of automatically extracting content from webpages and other digital files. In fact, it is old technology prior to APIs, more complicated in terms of usability but very flexible and powerful. One of the practical disadvantages of web scraping solutions is that they are more difficult to learn and apply than API-based tools. Web scraping involves examining and understanding the document object model (DOM) structure from pages. The DOM elements containing the desired data must be inserted into the chosen tool's functions and the output captured in a file. It is not only a more complex workflow than APIs typically require, but it also entails a custom-made solution for every website or social media platform [52] and is more susceptible to change. In recent years, the use of web scraping techniques has increased due to the lack of API implementation and the terms of service restrictions of many social media sites. Libraries such as Facebook Scraper ([[https://pypi.org/project/facebook-scraper/](https://pypi.org/project/facebook-scraper/)]([https://pypi.org/project/facebook-scraper/](https://pypi.org/project/facebook-scraper/)) (accessed on 12 August 2022)) and Twitter Scraper ([[https://pypi.org/project/twitter-scraper/](https://pypi.org/project/twitter-scraper/)]([https://pypi.org/project/twitter-scraper/](https://pypi.org/project/twitter-scraper/)) (accessed on 12 August 2022)) are very popular and often used as SNS scraping solutions [53]. After data acquisition, the next steps of a typical OP system are the knowledge extraction process (i.e., semantic annotation, NLP, and semantic extraction), followed by the population process (i.e., redundancy elimination, consistency checking, and ontology instantiation) and, finally, the storage stage (usually in a TripleStore) [13; 14; 15; 54; 55]. Semantic annotation is the process of adding metadata about concepts, entities, and relationships over unstructured documents and data. Semantic annotations are usually used by machines for context understanding. Semantically tagged documents are easier to find, interpret, combine, and reuse [13]. NLP tools allow finding linguistic annotations on unstructured texts and documents, including sentence limits and tokens, parts of speech (PoS), named entities, numerical and time values, dependency and circumscription analysis, coreference, sentiment, and relationships. The NLP process also allows obtaining semantic elements to incorporate them into semantic structures such as ontologies [56]. There are a wide variety of applications and tools dedicated to performing NLP tasks such as SpaCY ([[https://spacy.io/](https://spacy.io/)]([https://spacy.io/](https://spacy.io/)) (accessed on 12 August 2022)), Stanford CoreNLP ([[https://stanfordnlp.github.io/CoreNLP/](https://stanfordnlp.github.io/CoreNLP/)]([https://stanfordnlp.github.io/CoreNLP/](https://stanfordnlp.github.io/CoreNLP/)) (accessed on 12 August 2022)), NLTK ([[https://www.nltk.org/](https://www.nltk.org/)]([https://www.nltk.org/](https://www.nltk.org/)) (accessed on 12 August 2022)), and Textrazor ([[https://www.textrazor.com/](https://www.textrazor.com/)]([https://www.textrazor.com/](https://www.textrazor.com/)) (accessed on 12 August 2022)) [57].