[ninux-dev] Una classe per fare le ricerche su Wikipedia e ottenere dati semantici

Alessandro Gubitosi gubi.ale at gotanotherway.com
Wed Mar 5 17:28:35 CET 2014



Il 05/03/2014 12:42, Nemesis ha scritto:
> Ottima iniziativa!
> 
> Putroppo non al posso vedere live perchè sono fuori da ninux al momento.
> 
> Sono contento che stai scrivendo la documentazione spero che cominci ad
> andare di moda, mi ha permesso di vedere al volo come funziona e di
> formulare alcuni consigli.
> 
> Eccone alcuni che spero possano essere utili:
> 
>   * prefissi tipo "/api/v1" o "/api/v2" sono frequenti e molto utili
> perchè permettono di mantenere API legacy che continuano a funzionare in
> caso viene rilasciata una nuova versione dell'API che non è backward
> compatibile
Ma dove, parli di directory?

>   * è più frequente incontrare API che restituiscono JSON di default
> piuttosto che JSONP
Oh yes, avevo messo di default jsonp per far capire al volo i dati
acquisiti, ma è meglio in json.
Marcato per la correzione.
Grazie :)

>   * una cosa utile è controllare il formato anche attraverso il
> content-type header in modo che se apri l'API con il browser ti mostra
> di default la versione HTML (che è un ottimo miglioramento di usabilità
> per lo sviluppatore)
Questa cosa è già predisposta
(https://github.com/gubi/Ninuxoo-2.0/blob/master/common/include/classes/get_semantic_data.class.php#L421-L443)
ma non ho capito cosa intendi.
Parli di un form per inserire i primi parametri?

>   * personalmente solo a livello di naming preferirei quindi
> "/api/v1/semantic-data"
Okay allora forse ho capito il primo punto :)
Per adesso funziona con l'url rewrite, cioè sul browser sembra una
directory ma in realtà è uno script, però se credi sia più utile
possiamo spostare tutto sulla directory "v1".
Forse è anche più giusto perché così si lascia il campo per poter
sviluppare altre API da altri utenti...
Bene, marcato pre la modifica anche questo.

>   * domanda: ma album, book, film, person si possono combinare o si
> possono essere chiamati solo uno alla volta?
passando in get ad es. il parametro "film=blah blah blah", si dice allo
script "costruisci la query SPARQL per ottenere dati di un film ed
eseguila su dbpedia", stessa cosa vale per la musica, i libri ecc...
Ci si potrebbero fare cose più complesse, lo so, tipo le ricorsività, il
combining, ecc..., ma proprio per esigenze di semplicità non mi sono
spinto oltre.
Semplicemente questa classe Ninuxoo la userà per creare le schede dei files.
Se vi piace e vogliamo lavorarci di più possiamo farne un repo a parte ;)
Per rispondere alla tua domanda non ci avevo pensato e non so come possa
reagire sperimentandolo. Forse si piglia l'ultima data?

> 
> Bella!
> 
> PS: ho messo il router edge a casa, nei prossimi due mesi mi prendo un
> NAS QNap
> 
Dajee, così anche tu potrai farti i backup delle tue config con una GUI
comoda e responsive... ;)
So che i QNap sono buoni ma costosi, se non hai altre esigenze prova a
sentire ZioProto che in altre mail ho notato che ne sa di più in merito ;)
Me piace sta moda dei NAS, quasi quasi mi faccio assumere da qualche
azienda come commerciale e ne vendo in stock a Ninux... ahahah
Scherzo, tant'è che Ninuxoo funziona anche con device ARM + hdd.

Bella!
E grazie dei consigli!
Gubi

> 
> On 03/05/2014 05:46 AM, Alessandro Gubitosi wrote:
>> Ciao a tutti,
>> mi serviva di fare questa classe per Ninuxoo così l'ho aggiunta alle API
>> per condividerla con tutti.
>>
>> Vi capita mai di fare un'applicazione e aver bisogno di qualche dato da
>> Wikipedia pulito e filtrato? Magari giusto per non dover passare qualche
>> settimana in meno sui codici a fare parser delle sue API o peggio di
>> pagine html?
>> Beh, tana libera tutti, almeno per gli scopi in comune.
>> Grazie a questa "sciocchezzuola" ogni NAS avrà la stessa API
>> interrogabile liberamente per fare ricerche su Wikipedia e ottenere in
>> cambio un bel po' di dati semantici (non ricorsivi) relativi a quello
>> che si cerca.
>> Troppo complicato?
>> Ecco qualche esempio:
>> * http://192.168.36.210/API/Semantic_data/?film=marchese%20del%20grillo
>> * http://192.168.36.210/API/Semantic_data/?album=the%20wall
>> * http://192.168.36.210/API/Semantic_data/?format=array&person=Obama
>> * 192.168.36.210/API/Semantic_data/?person=Bo%20marley
>> *
>>
> http://192.168.36.210/API/Semantic_data/?format=array&book=Commedia%20divina
>>
>> Il sorgente della classe è disponibile qui:
>>
> https://github.com/gubi/Ninuxoo-2.0/blob/master/common/include/classes/get_semantic_data.class.php
>>
>> La documentazione "dev" generata dai commenti nel codice sta qui:
>> http://192.168.36.210/doc/classes/semantic_data.html
>>
>> Qui un esempio di utilizzo del codice:
>> https://github.com/gubi/Ninuxoo-2.0/blob/master/API/semantic_data.php
>>
>> E qui la documentazione sulle API:
>> https://github.com/gubi/Ninuxoo-2.0/wiki/Ricerche-semantiche-su-Wikipedia
>>
>>
>> Naturalmente il tutto è già parte di Ninuxoo e sarà nativo in ogni NAS,
>> ciò significa che se attiviamo i DNS Anycast le API saranno pure quelle
>> anycast :D
>>
>> L'unica pecca è il tempo necessario per caricare i risultati: questo è
>> dato perché il parser "parsa molto" e poi anche perché dbpedia è lenta
>> di suo.
>> Comunque un consiglio è quello di ricorrere al caching, che non fa mai
>> troppo male ;)
>>
>>
>> Me la sono guadagnata questa prima assegnazione dell'IP 10.10.10.10 per
>> il mio proxy anycast? :D
>>
>> Gubi
>>
>>
>>
>> _______________________________________________
>> ninux-dev mailing list
>> ninux-dev at ml.ninux.org
>> http://ml.ninux.org/mailman/listinfo/ninux-dev
> 
> 
> 
> 
> _______________________________________________
> ninux-dev mailing list
> ninux-dev at ml.ninux.org
> http://ml.ninux.org/mailman/listinfo/ninux-dev
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://ml.ninux.org/pipermail/ninux-dev/attachments/20140305/28657bf3/attachment-0001.sig>


More information about the ninux-dev mailing list