- From: Martin Hepp <martin.hepp@ebusiness-unibw.org>
- Date: Wed, 2 Nov 2011 09:46:22 +0100
- To: Amit Krishna Joshi <joshi.35@wright.edu>
- Cc: semantic-web@w3.org
Hi Amit:
A properly designed vocabulary will link the conceptual elements to the IRI defining the ontology (or the ontology document; there is a bit of a debate about that) using rdfs:isDefinedBy.
So e.g. for
* http://purl.org/goodrelations/v1
* http://purl.org/vso/ns
* http://www.productontology.org/#
you could query for all classes from the three ontologies using
SELECT DISTINCT(?c) WHERE
{ ?c a owl:Class.
{
{ ?c rdfs:isDefinedBy <http://purl.org/goodrelations/v1>}
UNION
{ ?c rdfs:isDefinedBy <http://purl.org/vso/ns>}
UNION
{ ?c rdfs:isDefinedBy <http://www.productontology.org/#>}
}
}
LIMIT 1000
This is orders of magnitude faster than regex. All good vocabularies can be expected to support this pattern; if not, ask the authors ;-)
Martin
On Nov 1, 2011, at 10:13 PM, Amit Krishna Joshi wrote:
> (Apologies for cross-posting)
> Hi,
>
> I am looking for a generic solution to limit the query results to specific
> vocabulary or a set of vocabularies.
>
> A simple query like below is proving to be quite expensive while sending it
> to sparql endpoints.
> select * where {
> ?s ?p ?o.
> filter regex(str(?s),"http://purl.org/vocab/ ","i")
> }
> limit 1
>
> Virtuoso S1T00 Error SR171: Transaction timed out
> (http://dbpedia.org/sparql)
>
> This is required for us since we are dealing with distributing querying of
> LOD cloud and we often need to limit the results to specific
> ontology/vocabulary.
> One of the obvious solution would be to query without the filter operator
> and perform filter locally if there's any matching triples. This does not
> help because the number of returned results might not include the triples
> containing the required vocabulary though the dataset might contain it.
>
> It would be great if I could receive insights and thoughts on dealing with
> it.
>
> 1. Does it require extending sparql to include special function/operator ?
> (The above query would return results if resource is not limited)
>
> 2. Is it a problem with the RDF stores that they don't' maintain the
> 'prefix-based index' ?
>
> Thanks,
> Amit
>
>
>
>
>
>
>
>
>
Received on Wednesday, 2 November 2011 08:49:26 UTC