# MOCKY - Il mockup di RESTORE

## Endpoint SPARQL

SPARQL (SPARQL Protocol and RDF Query Language) è un linguaggio di interrogazione per dati rappresentati tramite il Resource Description Framework (RDF), che descrive i concetti e le relazioni su di essi attraverso l'introduzione di triple (soggetto-predicato-oggetto). SPARQL è uno degli elementi chiave delle tecnologie del web semantico. Esso consente di estrarre informazioni dalle basi di conoscenza distribuite sul web attraverso la costruzione di query basate su triple.

Da questa sezione puoi accedere all'endpoint SPARQL del progetto RESTORE e costruire le tue query oppure consultare le query di esempio messe a disposizione dal team OVI-CNR lab.

## Query di esempio

Tutti gli oggetti di tipo "Dipinto"

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>

    SELECT DISTINCT ?Opere
    WHERE {?soggetto crm:P2_has_type "Opera d'Arte" ;
    rdfs:label ?Opere .
    }

Esegui

Tutti i documenti che fanno riferimento a "Fazzi Antonio Francesco di Orazio"

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>

    SELECT DISTINCT ?uriDocumento ?Nome_Documento
    WHERE {?soggetto ?proprietà ?oggetto .
    ?oggetto bif:contains "'Fazzi Antonio Francesco di Orazio'" .
    ?evento crm:P67_refers_to ?soggetto .
    ?uriDocumento crm:P92i_was_brought_into_existence_by ?evento;
    rdfs:label ?Nome_Documento
    }

Esegui

Informazioni sulle lettere del carteggio Datini dell'Archivio di Stato di Prato

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>

    SELECT DISTINCT ?Segnatura ?Mittente ?Destinatario ?Data_Invio ?Data_Ricezione ?Luogo_Invio ?Luogo_Ricezione ?Materiale ?Dimensioni ?Localizzazione
    WHERE {
    GRAPH <http://dev.restore.ovi.cnr.it:8890/aspo/datini> {?soggetto crm:P25i_moved_by ?eventoMovimento .}
    ?invio rdfs:subClassOf ?eventoMovimento ;
    rdf:type crm:EL2_Send_Letter .
    ?ricezione rdfs:subClassOf ?eventoMovimento ;
    rdf:type crm:EL3_Receive_Letter .

    OPTIONAL {?soggetto crm:P54_has_current_permanent_location ?uriLocalizzazione .
    ?uriLocalizzazione rdfs:label ?Localizzazione . }
    OPTIONAL {?soggetto crm:P45_consist_of ?uriMateriale .
    ?uriMateriale rdfs:label ?Materiale . }
    OPTIONAL {?soggetto crm:P43_has_dimension ?uriDimensioni .
    ?uriDimensioni rdfs:label ?Dimensioni . }
    OPTIONAL {?soggetto crm:P1_is_identified_by ?uriId .
    ?uriId rdfs:label ?Segnatura . }

    OPTIONAL {?invio crm:P4_has_time-span ?time_span_invio .
    ?time_span_invio rdfs:label ?Data_Invio }
    OPTIONAL {?ricezione crm:P4_has_time-span ?time_span_ricezione .
    ?time_span_ricezione rdfs:label ?Data_Ricezione }

    OPTIONAL {?invio crm:P27_moved_from ?uriLuogoInvio .
    ?uriLuogoInvio rdfs:label ?Luogo_Invio }
    OPTIONAL {?ricezione crm:P26_moved_to ?uriLuogoRicezione .
    ?uriLuogoRicezione rdfs:label ?Luogo_Ricezione }

    OPTIONAL {?invio crm:P01_has_domain ?dominioInvio .
    ?dominioInvio crm:P02_has_range ?uriMittente .
    ?uriMittente rdfs:label ?Mittente }
    OPTIONAL {?ricezione crm:P01_has_domain ?dominioRicezione .
    ?dominioRicezione crm:P02_has_range ?uriRicezione .
    ?uriRicezione rdfs:label ?Destinatario }
    }
    LIMIT 100

Esegui

Informazioni sulle persone

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
    PREFIX schema: <http://schema.org/>
    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    PREFIX person: <http://www.w3.org/ns/person#>

    SELECT DISTINCT ?uri ?Id
    (GROUP_CONCAT(DISTINCT ?name ;separator='\n') as ?Nome) ?Nome_Proprio ?Nome_di_Famiglia
    (GROUP_CONCAT(DISTINCT ?otherName ;separator='\n') as ?Alias) ?Patronimico
    (GROUP_CONCAT(DISTINCT ?relative ;separator='\n') as ?Parenti)
    ?Sesso ?Data_di_Nascita ?Luogo_di_Nascita ?Data_di_Morte ?Luogo_di_Morte
    ?Occupazione ?Luogo_Lavoro
    (GROUP_CONCAT(DISTINCT ?qualification ;separator='\n') as ?Qualifica)
    (GROUP_CONCAT(DISTINCT ?group ;separator='\n') as ?Gruppi) ?BiogHist
    WHERE {
    GRAPH ?graph {?uri rdfs:label ?label}
    ?uri foaf:name ?name .
    OPTIONAL {?uri crm:P1_is_identified_by ?identificatore .
    ?identificatore rdfs:label ?Id }
    OPTIONAL {?uri foaf:givenName ?Nome_Proprio}
    OPTIONAL {?uri foaf:familyName ?Nome_di_Famiglia}
    OPTIONAL {?uri schema:alternateName ?otherName }
    OPTIONAL {?uri foaf:gender ?Sesso}
    OPTIONAL {?uri person:patronymicName ?Patronimico }
    OPTIONAL {?uri schema:hasOccupation ?uriOccupazione .
    ?uriOccupazione rdf:type schema:Occupation;
    rdfs:label ?Occupazione }
    OPTIONAL {?uri schema:workLocation ?Luogo_Lavoro }
    OPTIONAL {?uri schema:honorificPrefix ?qualification}
    OPTIONAL {?uri schema:relatedTo ?uriParente .
    ?uriParente rdfs:label ?relative}
    OPTIONAL {?uri crm:P100i_died_in ?Morte .
    ?Morte crm:P4_has_time-span ?Morte_TS;
    crm:P7_took_place_at ?Luogo_D .
    ?Morte_TS rdfs:label ?Data_di_Morte .
    ?Luogo_D rdfs:label ?Luogo_di_Morte }
    OPTIONAL {?uri crm:P98i_was_born ?Nascita .
    ?Nascita crm:P4_has_time-span ?Nascita_TS;
    crm:P7_took_place_at ?Luogo_B .
    ?Nascita_TS rdfs:label ?Data_di_Nascita .
    ?Luogo_B rdfs:label ?Luogo_di_Nascita }
    OPTIONAL {?uri crm:P107i_is_current_or_former_member_of ?uriGroup .
    ?uriGroup rdfs:label ?group }
    OPTIONAL {?uri schema:description ?BiogHist }
    }
    LIMIT 100

Esegui