Re: How do you explore a SPARQL Endpoint?

Some other pointers and queries 

from https://github.com/fadmaa/rdf-analytics/blob/master/queries.txt

========== query 7 (graph summary query)==========
/*
this computes the "schema" of an RDF dataset. This is based on the queries generated by Sindice Sparqled: https://github.com/sindice/sparqled/tree/master/sparql-summary/src/main/java/org/sindice/summary

See also http://sheeeer.wordpress.com/2011/05/05/a-shot-at-rdf-schema-discovery/ for related topic and a way to visualise the results
/*

SELECT  ?label  (COUNT (?label) AS ?cardinality) ?source ?target
WHERE {
    {
      SELECT ?s (GROUP_CONCAT(concat('<',str(?type),'>')) AS ?source)
      WHERE {
          {
            SELECT ?s ?type 
            WHERE {
                { ?s a ?type . }
            } ORDER BY ?type
          }
      } GROUP BY ?s
    }
    ?s ?label ?sSon .
    OPTIONAL {
        {
          SELECT ?sSon (GROUP_CONCAT(concat('<',str(?typeSon),'>')) AS ?target)
          WHERE {
              {
                SELECT ?sSon ?typeSon 
                WHERE {
                    { ?sSon a ?typeSon . }
                } ORDER BY ?typeSon
              }
          } GROUP BY ?sSon
        }
    }
} GROUP BY ?label ?source ?target 

there is also the work of the Sindice group around graph-summary:
code here: https://github.com/sindice/sparqled/tree/master/sparql-summary

> On 22 Jan 2015, at 16:25, Bernard Vatant <bernard.vatant@mondeca.com> wrote:
> 
> Interesting to note that the answers so far are converging towards looking first for types and predicates, but bottom-up from the data, and not queries looking for a declared model layer using RDFS or OWL, such as e.g.,
> 
> SELECT DISTINCT ?class
> WHERE { {?class a owl:Class} UNION {?class a rdfs:Class}}
> 
> SELECT DISTINCT ?property ?domain ?range
> WHERE { {?property rdfs:domain ?domain} UNION {?property rdfs:range ?range}}
> 
> Which means globally you don't think the SPARQL endpoint will expose a formal model along with the data.
> That said, if the model is exposed with the data, the values of rdf:type will contain e.g., rdfs:Class and owl:Class ...
> 
> Of course in the ideal situation where you have an ontology, the following would bring its elements.
> 
> SELECT DISTINCT ?o ?x ?type
> WHERE {?x rdf:type ?type.
>                 ?x rdfs:isDefinedBy ?o.
>                 ?o a owl:Ontology }
> 
> It's worth trying, because if the dataset you query is really big, it will be faster to look first for a declared model than asking all distinct rdf:type
> 
> 
> 2015-01-22 15:23 GMT+01:00 Alfredo Serafini <seralf@gmail.com>:
> Hi 
> 
> the most basic query is the usual query for concepts, something like:
> 
> SELECT DISTINCT ?concept
> WHERE {
> ?uri a ?concept. 
> }
> 
> then, given a specific concept, you  can infer from the data what are the predicates/properties for it:
> SELECT DISTINCT ?prp
> WHERE {
> [] ?prp <a-concept>. 
> }
> 
> and so on...
> 
> Apart from other more complex query (here we are of course omitting a lot of important things), these two "patterns" are usually the most useful as a starting point, for me.
> 
> 
> 
> 
> 2015-01-22 15:09 GMT+01:00 Juan Sequeda <juanfederico@gmail.com>:
> Assume you are given a URL for a SPARQL endpoint. You have no idea what data is being exposed. 
> 
> What do you do to explore that endpoint? What queries do you write? 
> 
> Juan Sequeda
> +1-575-SEQ-UEDA
> www.juansequeda.com
> 
> 
> 
> 
> -- 
> Bernard Vatant
> Vocabularies & Data Engineering
> Tel :  + 33 (0)9 71 48 84 59
> Skype : bernard.vatant
> http://google.com/+BernardVatant
> --------------------------------------------------------
> Mondeca                             
> 35 boulevard de Strasbourg 75010 Paris
> www.mondeca.com
> Follow us on Twitter : @mondecanews
> ----------------------------------------------------------

Received on Thursday, 22 January 2015 15:53:54 UTC