I try and found something to solve this problem. by this
This error occur when use complex symbol(ex. use | / *) like this
(rdfs:subClassOf|(owl:intersectionOf/rdf:rest*/rdf:first))*
After I separate my query like this
1. <http://ex.info/id/001> rdfs:subClassOf* ?superclass .
this query all subclass. and secound
2. <http://ex.info/id/001> (rdfs:subClassOf/owl:intersectionOf/rdf:rest*/rdf:first)* ?superclass .
this query all rdf:Description under owl:intersectionOf of rdfs:subClassOf.
And use UNION
to join together like this
select ?superclass where {
{
<http://ex.info/id/001> rdfs:subClassOf* ?superclass .
}
UNION
{
<http://ex.info/id/001> (rdfs:subClassOf/owl:intersectionOf/rdf:rest*/rdf:first)* ? superclass .
}
filter(!isBlank(?superclass))
}
output is
?superclass = http://ex.info/id/001,
?superclass = http://ex.info/id/001,
?superclass = http://ex.info/id/002,
?superclass = http://ex.info/id/003
it has tsame data remove by DISTINCT
All query are here.
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select DISTINCT ?superclass where {
{
<http://ex.info/id/001> rdfs:subClassOf* ?superclass .
}
UNION
{
<http://ex.info/id/001> (rdfs:subClassOf/owl:intersectionOf/rdf:rest*/rdf:first)* ?superclass .
}
filter(!isBlank(?superclass))
}