salve, sono alle prime armi con Java e con SPARQL, sto realizzando un piccolo software e ho bisogno di una mano. Ho realizzato l'interfaccia con Javafx e ora manca il "cuore" del software, lo scopo del programma è quello di poter effettuare una "Metaquery" su di un grafo di conoscenza ad esempio DBpedia, attraverso un pattern espresso (di cui parlerò in basso).Ho pensato quindi che sia necessario integrare la libreria di Jena, e successivamente dovrei eseguire un query sparql su dbpedia a seconda di un "pattern" creato da me ad esempio :Se scrivo P(?x,?y) voglio eseguire una query sparql su dbpedia che cerca tutti gli individui (soggetto e oggetto) che hanno una certa proprietà P.
Sparql :"Select ?x , P , ?ywhere ?x P ?y "
come dovrei comportarmi con i prefissi? qualcuno è in grado di correggermela e darmi una mano?
Nel caso il pattern fosse costituito da piu parti come questo : P(x,y) Q(x,z)quindi la query mi cerchera su dbpedia tutte le tuple in cui l'individuo x condivide due qualsiasi proprietà con altri due individui y e z.
NB: per ora il mio scopo è capire le query da fare per
Ringrazio chiunque riesca a darmi una mano perché sono diversi giorni che non riesco a venirne a capo.
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Spaghetti Open Data" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a spaghettiopend...@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/spaghettiopendata.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/spaghettiopendata/b444cf51-d24a-48b6-9f45-32f9e5f6039c%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Non ho ben capito cosa tu voglia fare. Mi sembra che l'idea sia che l'utente può fare delle 'faceted query', specificando proprietà di interesse, magari anche dei soggetti iniziali.
Nel caso, l'approccio è permettergli di selezionare cose come le proprietà da un elenco predefinito, che puoi estrarre da schemi/ontologie di interesse, o anche dai dati (vedi sotto). Se fai questo, puoi scegliere di presentare URI e prefissi in modo più user friendly, ad esempio adottando una strategia del tipo:
- se la proprietà ha una label (rdfs:label, dcterms:title), presenti quella
- se non ce l'ha, ma ha uno URI in un namespace noto (es, 'dcterms:description') presenti la forma: prefisso:id <value>, facendo sia prefisso che id cliccabili, in modo da poter aprire un pop-up che riporti la descrizione della proprietà (se presente mediante proprietà tipo rdfs:comment) o un altro che descriva l'ontologia a cui si riferisce il relativo namespace.
- se non c'è niente di tutto questo, magari provi almeno ad
abbreviare lo URI, tipo che lo spezzi all'ultima occorrenza di '#'
oppure '/'.
Se scrivo P(?x,?y) voglio eseguire una query sparql su dbpedia che cerca tutti gli individui (soggetto e oggetto) che hanno una certa proprietà P.
Sparql :"Select ?x , P , ?ywhere ?x P ?y "
Nel caso il pattern fosse costituito da piu parti come questo : P(x,y) Q(x,z)quindi la query mi cerchera su dbpedia tutte le tuple in cui l'individuo x condivide due qualsiasi proprietà con altri due individui y e z.
-- ========================================================================= Marco Brandizi <marco.b...@gmail.com> http://www.marcobrandizi.info
Dimenticavo:
tool come RelFinder (http://www.visualdataweb.org/relfinder.php)
consentono all'utente di iniziare una ricerca selezionando URI si
interesse (lui lo fa per soggetti/oggetti, ma il discorso varrebbe
anche per le proprietà), ma non si basano sulla costruzione di un
elenco di tutte le URI disponibili nel dataset (praticamente
impossibile), usano l'autocompletamento: l'utente inizia a
scrivere e il componente AJAX interroga il data set cercando pezzi
di stringa in URI rdfs:label, e proprietà del genere.
-- ========================================================================= Marco Brandizi <marco....@gmail.com> http://www.marcobrandizi.info
-- ========================================================================= Marco Brandizi <marco....@gmail.com> http://www.marcobrandizi.info