Closed LorenzBuehmann closed 9 years ago
Thanks Lorenz,
I'll fix it & thanks for the suggestion
BTW, should it be *
or +
?
It should be *
because that means 0 or n. That's why you do not need the first part of the UNION.
But what does 0 mean in a relationship? Shouldn't there be at least one of rdfs:type / rdfs:subClassOf?
Maybe I should read again the property paths spec:-)
If it's 0, then it's the class itself. The combination rdf:type/rdfs:subClassOf* :A means "any subclass of :A or the class :A itself".
I see, it's like rdfs:type/(rdfs:subClassOf*)
I thought *
applied to the whole path and didn't seem right.
Thanks!
The built-in pattern rutp:INVFUNCT in https://github.com/AKSW/RDFUnit/blob/master/rdfunit-core/src/main/resources/org/aksw/rdfunit/patterns.ttl is obviously wrong:
If you have a look at the second part of the UNION, neither
?a
nor?b
is usually a class, and there is a missing triple pattern which connects the type of?a
(resp.?b
) with therdfs:subClassOf
triple pattern, i.e. it should more look likeBy the way, SPARQL property paths allow for a more compact notation, using
/
and*
like