package com.ontology2.bakemono.configuration; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.ontology2.bakemono.primitiveTriples.PrimitiveTriple; import org.springframework.context.annotation.Configuration; @Configuration public class Beans { private static Predicate<PrimitiveTriple> matchesPredicate(final String that) { return new Predicate<PrimitiveTriple>() { @Override public boolean apply(PrimitiveTriple input) { return input.getPredicate().equals(that); } }; } private static Predicate<PrimitiveTriple> predicateStartsWith(final String that) { return new Predicate<PrimitiveTriple>() { @Override public boolean apply(PrimitiveTriple input) { return input.getPredicate().startsWith("<"+that); } }; } private static Predicate<PrimitiveTriple> hasDoubleDotPredicate() { return new Predicate<PrimitiveTriple>() { @Override public boolean apply(PrimitiveTriple input) { return input.getPredicate().contains(".."); } }; } private static Predicate<PrimitiveTriple> matchesA() { return matchesPredicate("<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>"); }; private static Predicate<PrimitiveTriple> matchesTypeObjectName() { return matchesPredicate("<http://rdf.basekb.com/ns/type.object.name>"); }; private static Predicate<PrimitiveTriple> matchesLabel() { return matchesPredicate("<http://www.w3.org/2000/01/rdf-schema#label>"); }; private static Predicate<PrimitiveTriple> inKeyNamespace() { return predicateStartsWith("http://rdf.basekb.com/key/"); }; private static Predicate<PrimitiveTriple> matchesTypeObjectKey() { return matchesPredicate("<http://rdf.basekb.com/ns/type.object.key>"); }; static Predicate<PrimitiveTriple> isLinkRelationship() { return new Predicate<PrimitiveTriple>() { @Override public boolean apply(PrimitiveTriple input) { return input.getObject().startsWith("<") && input.getObject().endsWith(">"); } }; }; private static Predicate<PrimitiveTriple> matchesNotableForPredicate() { return matchesPredicate("<http://rdf.basekb.com/ns/common.notable_for.predicate>"); }; private static Predicate<PrimitiveTriple> matchesDescription() { return matchesPredicate("<http://rdf.basekb.com/ns/common.topic.description>"); }; private static Predicate<PrimitiveTriple> matchesText() { return matchesPredicate("<http://rdf.basekb.com/ns/common.document.text>"); }; private static Predicate<PrimitiveTriple> matchesWebPage() { return matchesPredicate("<http://rdf.basekb.com/ns/common.topic.topic_equivalent_webpage>"); }; private static Predicate<PrimitiveTriple> isAboutNotability() { return Predicates.or( matchesPredicate("<http://rdf.basekb.com/ns/common.topic.notable_types>"), matchesPredicate("<http://rdf.basekb.com/ns/common.notable_for.object>"), matchesPredicate("<http://rdf.basekb.com/ns/common.topic.notable_for>"), matchesPredicate("<http://rdf.basekb.com/ns/common.topic.notable_for.notable_object>") ); }; }