Related to this. This query returns in 70ms
SELECT ?class ?classLabel
WHERE
{
?scIntsec rdf:rest*/rdf:first id:308925008 .
?scTmp owl:intersectionOf ?scIntsec .
?class rdfs:subClassOf ?scTmp.
?class skos:prefLabel ?classLabel .
}
but this doesn't finish in 15 minutes (aborted then)
SELECT ?class ?classLabel
WHERE
{
VALUES ?superClass {id:308925008 }
?scIntsec rdf:rest*/rdf:first ?superClass .
?scTmp owl:intersectionOf ?scIntsec .
?class rdfs:subClassOf ?scTmp.
?class skos:prefLabel ?classLabel .
}
How come they are so different since they do the same thing?
On 15/12/2020 20.30, Andy Seaborne wrote:
On 15/12/2020 14:33, Mikael Pesonen wrote:
Hi,
I am querying subclasses of class (here id:365852007) which belongs
to RDF collection like this
id:1 rdf:type owl:Class ;
rdfs:subClassOf [ owl:intersectionOf ( ... id:365852007 ...
) ] ;
skos:prefLabel "something"@en .
id:2 rdf:type owl:Class ;
rdfs:subClassOf [ owl:intersectionOf ( ... id:365852007 ...
) ] ;
skos:prefLabel "something else"@en .
... denotes random number of other elements in the list.
SPARQL:
select * where
{
?subclass rdfs:subClassOf [ owl:intersectionOf
/rdf:rest*/rdf:first id:365852007 ] .
?subclass skos:prefLabel ?label .
Try breaking the pattern up:
?Z rdf:rest*/rdf:first id:365852007 .
?X owl:intersectionOf ?Z .
?subclass rdfs:subClassOf ?X .
?subclass rdfs:label ?label .
and use 3.17.0
}
This is slow (~10 secs) and we need to extend the query to subclasses
of the subclasses and so on.
Is there any faster way to get this done?
Thanks!
--
Lingsoft - 30 years of Leading Language Management
www.lingsoft.fi
Speech Applications - Language Management - Translation - Reader's and Writer's
Tools - Text Tools - E-books and M-books
Mikael Pesonen
System Engineer
e-mail: [email protected]
Tel. +358 2 279 3300
Time zone: GMT+2
Helsinki Office
Eteläranta 10
FI-00130 Helsinki
FINLAND
Turku Office
Kauppiaskatu 5 A
FI-20100 Turku
FINLAND