Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
// Copyright (c) 2006 - 2008, Clark & Parsia, LLC.
// This source code is available under the terms of the Affero General Public License v3.
//
// Please see LICENSE.txt for full license terms, including the availability of proprietary exceptions.
// Questions, comments, or requests for clarification: [email protected]
package com.clarkparsia.pellint.lintpattern;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.Map.Entry;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.clarkparsia.pellint.lintpattern.axiom.AxiomLintPattern;
import com.clarkparsia.pellint.lintpattern.axiom.EquivalentToAllValuePattern;
import com.clarkparsia.pellint.lintpattern.axiom.EquivalentToComplementPattern;
import com.clarkparsia.pellint.lintpattern.axiom.EquivalentToMaxCardinalityPattern;
import com.clarkparsia.pellint.lintpattern.axiom.EquivalentToTopPattern;
import com.clarkparsia.pellint.lintpattern.axiom.GCIPattern;
import com.clarkparsia.pellint.lintpattern.axiom.LargeCardinalityPattern;
import com.clarkparsia.pellint.lintpattern.axiom.LargeDisjunctionPattern;
import com.clarkparsia.pellint.lintpattern.ontology.EquivalentAndSubclassAxiomPattern;
import com.clarkparsia.pellint.lintpattern.ontology.ExistentialExplosionPattern;
import com.clarkparsia.pellint.lintpattern.ontology.OntologyLintPattern;
import com.clarkparsia.pellint.lintpattern.ontology.TooManyDifferentIndividualsPattern;
import com.clarkparsia.pellint.util.CollectionUtil;
/**
*
* Title: Lint Pattern Loader
*
*
* Description:
*
*
* Copyright: Copyright (c) 2008
*
*
* Company: Clark & Parsia, LLC.
*
*
* @author Harris Lin
*/
public class LintPatternLoader {
private static final Logger LOGGER = Logger.getLogger(LintPatternLoader.class.getName());
public static final List DEFAULT_AXIOM_LINT_PATTERNS = Arrays.asList(
new EquivalentToAllValuePattern(),
new EquivalentToMaxCardinalityPattern(),
new EquivalentToComplementPattern(),
new EquivalentToTopPattern(),
new GCIPattern(),
new LargeCardinalityPattern(),
new LargeDisjunctionPattern()
);
public static final List DEFAULT_ONTOLOGY_LINT_PATTERNS = Arrays.asList(
new EquivalentAndSubclassAxiomPattern(),
new ExistentialExplosionPattern(),
new TooManyDifferentIndividualsPattern()
);
private List m_AxiomLintPatterns;
private List m_OntologyLintPatterns;
public LintPatternLoader() {
m_AxiomLintPatterns = DEFAULT_AXIOM_LINT_PATTERNS;
m_OntologyLintPatterns = DEFAULT_ONTOLOGY_LINT_PATTERNS;
}
public LintPatternLoader(Properties properties) {
Collection patterns = loadPatterns(formatProperties(properties));
if (patterns.isEmpty()) {
m_AxiomLintPatterns = DEFAULT_AXIOM_LINT_PATTERNS;
m_OntologyLintPatterns = DEFAULT_ONTOLOGY_LINT_PATTERNS;
} else {
m_AxiomLintPatterns = CollectionUtil.makeList();
m_OntologyLintPatterns = CollectionUtil.makeList();
for (LintPattern pattern : patterns) {
if (pattern instanceof AxiomLintPattern) {
m_AxiomLintPatterns.add((AxiomLintPattern) pattern);
} else if (pattern instanceof OntologyLintPattern) {
m_OntologyLintPatterns.add((OntologyLintPattern) pattern);
}
}
}
}
public List getAxiomLintPatterns() {
return m_AxiomLintPatterns;
}
public List getOntologyLintPatterns() {
return m_OntologyLintPatterns;
}
private static Map formatProperties(Properties properties) {
Map formattedProperties = new HashMap();
for (Entry