vodibe / icon-745751

Academic project involving Knowledge Engineering methods for analysis of custom ratings of Italian school websites. Language of docs: :it:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Metodi di Ingegneria della Conoscenza applicati alle homepage delle scuole superiori italiane

Idea del progetto

L’idea di fondo è l’applicazione di alcuni metodi di Ingegneria della Conoscenza su un dominio di interesse, l’usabilità di una pagina web. Si va prima a circoscrivere un ambito di riferimento, che nel nostro caso, è l’insieme delle Homepage delle scuole superiori pubbliche italiane.

Aggiornamento dataset ds3_gt: 11/2023

Gruppo di lavoro

Documentazione e Risultati

Vedere docs/report-745751.pdf. In ogni sezione si rimanda ai percorsi dei vari output.

Download

  1. Download Python, SWI-Prolog, Protégé.
  2. Clonare la repo.
    git clone https://github.com/vodibe/icon-745751.git
  3. Posizionarsi nella cartella.
    cd path/to/icon-745751
  4. Creare e abilitare ambiente virtuale Python.
    python -m venv venv
    
    venv\Scripts\Activate # Windows
    source venv/bin/activate # Linux
  5. Installare pacchetto del progetto nell'ambiente virtuale.
    pip install -e .
  6. Installare dipendenze.
    pip install -r requirements.txt
  7. Installare i Plugins di Protégé:
    1. Aprire Protégé.

    2. File > Check for plugins... > Snap SPARQL Query > Install

    3. Riavviare Protégé.

    4. File > Preferences... > Plugins > Plugin registry

    5. Sostituire con

      https://raw.githubusercontent.com/Complexible/pellet/master/protege/plugin/update.properties

    6. OK

    7. File > Check for plugins... > Pellet Reasoner > Install

    8. Riavviare Protégé.

    9. File > Preferences... > Plugins > Plugin registry > Reset to default registry location.

    10. OK

Esecuzione

Questo repository contiene già tutti i risultati e i file di output. Se si vuole esplorare le varie sezioni trattate nel progetto, seguire questi passi.

Se si vuole creare e visualizzare un NDOM di un sito web o di un file HTML...

  1. cd agent/ndom
  2. (Facoltativo) Modificare NaiveDOM.py
    if __name__ == "__main__":
       # sito web -> NDOM
       myNDOM = NaiveDOM("https://www.liceofermicanosa.edu.it/")
       # sorgente locale -> NDOM
       # myNDOM = NaiveDOM(location="mysource.html", from_file=True)
    
       # leggiamo le features estratte
       print(myNDOM.get_features())
       # visualizziamo
       myNDOM.plot()
  3. python NaiveDOM.py
  4. Output:
    Building NDOM for https://www.liceofermicanosa.edu.it/
    Reading HTML...
    Cleaning HTML...
    Parsing HTML <body> tag...
    Populating features...
    {'page_width': 1587, 'page_height': 4145, 'NDOM_height': 7, ...}
    
    ndom1

Se si vuole costruire dei modelli di apprendimento per l'emulazione del GT...

  1. Aprire la cartella del progetto con un qualsiasi IDE che supporti la visualizzazione di notebook .ipynb , ad es. VS Code.
    cd path/to/icon-745751/
    code .
  2. pip install ipykernel
  3. Aprire agent/models/nb_supervised_learning.ipynb.
  4. Eseguire in ordine tutte le celle di codice.

Se si vuole consultare la KB per eseguire i Job...

  1. cd agent/kb
  2. (Facoltativo) Modificare kb_creator.py
    ...
    if __name__ == "__main__":
       ...
    
       # Specificare i Job da eseguire
       run_job1()
    
       run_job2()
    
       run_job3()
    
       run_job4(geofacts_created=True)
    
       run_job5(geofacts_created=True)
    
       run_job6()
  3. python kb_creator.py
  4. Percorso risultati: agent/kb/jobs/

Se si vuole apprendere i parametri della Rete Bayesiana, visualizzarli, ed eseguire delle query...

  1. cd agent/pgm
  2. (Facoltativo) Modificare bn_creator.py
    ...
    BN_QUERIES_DEFAULT = [
    {
       # Specificare una query in questo formato
       "query_desc": "P(page_template | metric=4)",
       "variables": ["page_template"],
       "evidence": {
             "metric": 4,
       },
       ...
    },
    ...
  3. python bn_creator.py
  4. Percorso risultati: agent/pgm/bif/

Se si vuole esplorare l'ontologia, aggiungere individui o sottoporre query DL/SPARQL...

  1. Aprire Protègè.
  2. File > Open > agent/ontology/ambitoscuola_v1.owl
  3. Reasoner > Pellet > Start reasoner protege

About

Academic project involving Knowledge Engineering methods for analysis of custom ratings of Italian school websites. Language of docs: :it:


Languages

Language:Jupyter Notebook 72.9%Language:Python 14.7%Language:Prolog 12.4%