ROBOT

- - - - - - - - - -
view on github
getting started
common errors
chaining commands
global options
makefile
plugins
- - - - - - - - - -
annotate
collapse
convert
diff
expand
explain
export
export-prefixes
extract
filter
materialize
measure
merge
mirror
python
query
reason
reduce
relax
remove
rename
repair
report
template
unmerge
validate-profile
verify
- - - - - - - - - -
ROBOT is licensed under the
BSD 3-Clause License.
Theme by orderedlist

Multiple Equivalent Classes

Problem: A class has more than one asserted equivalent classes, anonymous or named. This is probably a mistake, as equivalent statements can be intersections.

Solution: Combine the equivalent class statements.

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT DISTINCT ?entity ?property ?value WHERE {
 VALUES ?property { owl:equivalentClass }
 ?entity ?property ?value1 .
 ?entity ?property ?value2 .
 FILTER NOT EXISTS {
    ?value1 owl:unionOf ?x .
 }
 FILTER NOT EXISTS {
    ?value2 owl:unionOf ?x .
 }
 FILTER (?value1 != ?value2)
 FILTER (!isBlank(?entity))
 BIND (if(isIRI(?value1), ?value1, "blank node" ) as ?value)
}
ORDER BY ?entity