mercoledì 10 dicembre 2014

SPARQL

Volete sapere come si fa a cercare su dbpedia un posto che si chiama Sciacca?

Facile, basta copiare ed in collare questa query.


prefix d0: <http://www.ontologydesignpatterns.org/ont/d0.owl#>
prefix dbpedia-owl: <http://dbpedia.org/ontology/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix dbpprop: <http://dbpedia.org/property/>

select * where
{
 ?tutti rdf:type d0:Location.
 ?tutti dbpprop:name ?dafiltrare
 filter regex(str(?dafiltrare),"Sciacca","i").
}
limit 10

lunedì 17 novembre 2014

Exist-DB counting and grouping

xquery version "3.0";
<nodes>
{
    let $nodes := //classCode
    for $nodo in $nodes
    let $count := count($nodo)
    group by $nomeNodo := $nodo/text()
    order by $nomeNodo
    return
        <nodo>
            <nodeId>
            {string($nomeNodo)}
            </nodeId>
            <counter>
            {string($count)}
            </counter>
        </nodo>
}
</nodes>

lunedì 29 settembre 2014

Exist-DB:Giochiamo con i file

Vogliamo vedere se esite un file?

xquery version "3.0";
file:exists("c:\")


Se invece vogliamo direttamente scrivere l'output ottenuto con eXsistdb

return  file:serialize($contentToSave,concat
                          ("c:\",$referenceId,".xml"),("omit-xml-declaration=yes", "indent=yes"))

giovedì 25 settembre 2014

Exist-DB: Cercare dentro il database per tag

Come fare per cercare dentro il database da una lista di tag contenuta dentro un file xml?

xquery version "3.0";
<files>
{
    for $nodeToExplore in doc('/apps/demo/data/XMLEurovoc.xml')//*[@id='4222']
for $subNode in $nodeToExplore//*
    let $attributeId := string($subNode/@id)
    let $attributeName := string($subNode/@description)
        for $listOfNodeContaining in //classCode[text()=$attributeId]
    return
        <file id="{$listOfNodeContaining}" description="{$attributeName}" >
        {document-uri(root($listOfNodeContaining))}
        </file>
}
</files>

Exist-DB: stampare un attributo

Ebbene, per stampare un attributo a video vi occorre trasformarlo in stringa

xquery version "3.0";
for $test in doc('/apps/demo/data/XMLEurovoc.xml')//*[@id='4222']
return string($test/@description)

Exist-DB: come cercare per un singolo file

Se volete cercare per un singolo file ecco la sintassi:
xquery version "3.0";
doc('/apps/tutorial/prove/Doc151.xml')/*

mercoledì 24 settembre 2014

Exist-DB: come trovare il nome del file dato un tag

Di seguito la query da eseguire su eXide

xquery version "3.0";
for $test in //classCode[text()='2143']
return document-uri(root($test))


In sostanza, faccio una becera richiesta di tutti i tag classCode esistenti nel db, che abbiano il contenuto '2143', e poi mi faccio restituire il path in cui sono contenuti i file