001package org.dllearner.algorithms.qtl.util;
002
003import com.google.common.collect.ComparisonChain;
004import org.apache.jena.rdf.model.Statement;
005import org.apache.jena.sparql.util.NodeComparator;
006
007import java.util.Comparator;
008
009/**
010 * A comparator for Jena Statements.
011 *
012 * @author Lorenz Buehmann
013 */
014public class StatementComparator implements Comparator<Statement> {
015                
016                final NodeComparator nodeComparator = new NodeComparator();
017
018                @Override
019                public int compare(Statement s1, Statement s2) {
020                        return ComparisonChain.start()
021                                        .compare(s1.getSubject().asNode(), s2.getSubject().asNode(), nodeComparator)
022                                        .compare(s1.getPredicate().asNode(), s2.getPredicate().asNode(), nodeComparator)
023                                        .compare(s1.getObject().asNode(), s2.getObject().asNode(), nodeComparator)
024                                        .result();
025                }
026        }