Search in sources :

Example 26 with RuleAtom

use of org.apache.stanbol.rules.base.api.RuleAtom in project stanbol by apache.

the class SWRLAdapter method adaptRuleTo.

@SuppressWarnings("unchecked")
@Override
protected <T> T adaptRuleTo(Rule rule, Class<T> type) throws RuleAtomCallExeption, UnsupportedTypeForExportException, UnavailableRuleObjectException {
    if (type == SWRLRule.class) {
        OWLDataFactory factory = OWLManager.getOWLDataFactory();
        Set<SWRLAtom> bodyAtoms = new HashSet<SWRLAtom>();
        Set<SWRLAtom> headAtoms = new HashSet<SWRLAtom>();
        for (RuleAtom atom : rule.getBody()) {
            bodyAtoms.add((SWRLAtom) adaptRuleAtomTo(atom, SWRLRule.class));
        }
        for (RuleAtom atom : rule.getHead()) {
            headAtoms.add((SWRLAtom) adaptRuleAtomTo(atom, SWRLRule.class));
        }
        return (T) factory.getSWRLRule(bodyAtoms, headAtoms);
    } else {
        throw new UnsupportedTypeForExportException("The adapter " + getClass() + " does not support type : " + type.getCanonicalName());
    }
}
Also used : SWRLAtom(org.semanticweb.owlapi.model.SWRLAtom) UnsupportedTypeForExportException(org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException) OWLDataFactory(org.semanticweb.owlapi.model.OWLDataFactory) RuleAtom(org.apache.stanbol.rules.base.api.RuleAtom) HashSet(java.util.HashSet)

Example 27 with RuleAtom

use of org.apache.stanbol.rules.base.api.RuleAtom in project stanbol by apache.

the class DatavaluedPropertyAtom method adapt.

@SuppressWarnings("unchecked")
@Override
public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption, UnsupportedTypeForExportException, UnavailableRuleObjectException {
    org.apache.stanbol.rules.manager.atoms.DatavaluedPropertyAtom tmp = (org.apache.stanbol.rules.manager.atoms.DatavaluedPropertyAtom) ruleAtom;
    IObjectAtom argument1 = tmp.getArgument1();
    IObjectAtom datatypeProperty = tmp.getDatatypeProperty();
    RuleAtom argument2 = tmp.getArgument2();
    SWRLAtom arg1Atom = (SWRLAtom) adapter.adaptTo(argument1, SWRLRule.class);
    SWRLAtom predicateAtom = (SWRLAtom) adapter.adaptTo(datatypeProperty, SWRLRule.class);
    SWRLAtom arg2Atom = (SWRLAtom) adapter.adaptTo(argument2, SWRLRule.class);
    OWLDataFactory factory = OWLManager.getOWLDataFactory();
    OWLDataProperty owlDataProperty;
    SWRLIArgument swrliArgument;
    SWRLDArgument swrldArgument;
    if (predicateAtom instanceof ArgumentSWRLAtom) {
        owlDataProperty = factory.getOWLDataProperty(IRI.create(((ArgumentSWRLAtom) predicateAtom).getId()));
    } else {
        throw new RuleAtomCallExeption(getClass());
    }
    if (arg1Atom instanceof ArgumentSWRLAtom) {
        swrliArgument = (SWRLIArgument) ((ArgumentSWRLAtom) arg1Atom).getSwrlArgument();
    } else {
        throw new RuleAtomCallExeption(getClass());
    }
    if (arg2Atom instanceof ArgumentSWRLAtom) {
        swrldArgument = (SWRLDArgument) ((ArgumentSWRLAtom) arg2Atom).getSwrlArgument();
    } else {
        throw new RuleAtomCallExeption(getClass());
    }
    return (T) factory.getSWRLDataPropertyAtom(owlDataProperty, swrliArgument, swrldArgument);
}
Also used : ArgumentSWRLAtom(org.apache.stanbol.rules.adapters.swrl.ArgumentSWRLAtom) IObjectAtom(org.apache.stanbol.rules.manager.atoms.IObjectAtom) SWRLIArgument(org.semanticweb.owlapi.model.SWRLIArgument) OWLDataProperty(org.semanticweb.owlapi.model.OWLDataProperty) SWRLDArgument(org.semanticweb.owlapi.model.SWRLDArgument) SWRLAtom(org.semanticweb.owlapi.model.SWRLAtom) ArgumentSWRLAtom(org.apache.stanbol.rules.adapters.swrl.ArgumentSWRLAtom) SWRLRule(org.semanticweb.owlapi.model.SWRLRule) RuleAtomCallExeption(org.apache.stanbol.rules.base.api.RuleAtomCallExeption) OWLDataFactory(org.semanticweb.owlapi.model.OWLDataFactory) RuleAtom(org.apache.stanbol.rules.base.api.RuleAtom)

Example 28 with RuleAtom

use of org.apache.stanbol.rules.base.api.RuleAtom in project stanbol by apache.

the class UnionAtom method adapt.

@SuppressWarnings("unchecked")
@Override
public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption {
    org.apache.stanbol.rules.manager.atoms.UnionAtom tmp = (org.apache.stanbol.rules.manager.atoms.UnionAtom) ruleAtom;
    AtomList atomList1 = tmp.getAtomList1();
    AtomList atomList2 = tmp.getAtomList2();
    String scope1 = "";
    for (RuleAtom inGroupRuleAtom : atomList1) {
        if (!scope1.isEmpty()) {
            scope1 += " . ";
        }
        try {
            SPARQLObject inGroupSparqlAtom = adapter.adaptTo(inGroupRuleAtom, SPARQLObject.class);
            scope1 += inGroupSparqlAtom.getObject();
        } catch (UnsupportedTypeForExportException e) {
            throw new org.apache.stanbol.rules.base.api.RuleAtomCallExeption(getClass());
        } catch (UnavailableRuleObjectException e) {
            throw new org.apache.stanbol.rules.base.api.RuleAtomCallExeption(getClass());
        }
    }
    String scope2 = "";
    for (RuleAtom inGroupRuleAtom : atomList2) {
        if (!scope2.isEmpty()) {
            scope2 += " . ";
        }
        try {
            SPARQLObject inGroupSparqlAtom = adapter.adaptTo(inGroupRuleAtom, SPARQLObject.class);
            scope2 += inGroupSparqlAtom.getObject();
        } catch (UnsupportedTypeForExportException e) {
            throw new org.apache.stanbol.rules.base.api.RuleAtomCallExeption(getClass());
        } catch (UnavailableRuleObjectException e) {
            throw new org.apache.stanbol.rules.base.api.RuleAtomCallExeption(getClass());
        }
    }
    String sparqlUnion = " { " + scope1 + " } UNION { " + scope2 + " } ";
    return (T) new SPARQLFunction(sparqlUnion);
}
Also used : AtomList(org.apache.stanbol.rules.base.api.util.AtomList) SPARQLObject(org.apache.stanbol.rules.base.api.SPARQLObject) UnavailableRuleObjectException(org.apache.stanbol.rules.base.api.UnavailableRuleObjectException) RuleAtomCallExeption(org.apache.stanbol.rules.base.api.RuleAtomCallExeption) SPARQLFunction(org.apache.stanbol.rules.adapters.sparql.SPARQLFunction) UnsupportedTypeForExportException(org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException) RuleAtom(org.apache.stanbol.rules.base.api.RuleAtom)

Example 29 with RuleAtom

use of org.apache.stanbol.rules.base.api.RuleAtom in project stanbol by apache.

the class RuleImpl method toString.

@Override
public String toString() {
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append(ruleName);
    stringBuilder.append("[");
    boolean firstLoop = true;
    // add the rule body
    for (RuleAtom atom : body) {
        if (!firstLoop) {
            stringBuilder.append(" . ");
        } else {
            firstLoop = false;
        }
        stringBuilder.append(atom.toString());
    }
    // add the rule head
    if (head != null) {
        stringBuilder.append(" -> ");
        firstLoop = true;
        for (RuleAtom atom : head) {
            if (!firstLoop) {
                stringBuilder.append(" . ");
            } else {
                firstLoop = false;
            }
            stringBuilder.append(atom.toString());
        }
    }
    stringBuilder.append("]");
    return stringBuilder.toString();
}
Also used : RuleAtom(org.apache.stanbol.rules.base.api.RuleAtom)

Example 30 with RuleAtom

use of org.apache.stanbol.rules.base.api.RuleAtom in project stanbol by apache.

the class AtomIterator method next.

public RuleAtom next() {
    RuleAtom atom = kReSRuleAtoms[currentIndex];
    currentIndex++;
    return atom;
}
Also used : RuleAtom(org.apache.stanbol.rules.base.api.RuleAtom)

Aggregations

RuleAtom (org.apache.stanbol.rules.base.api.RuleAtom)33 Test (org.junit.Test)11 RuleAtomCallExeption (org.apache.stanbol.rules.base.api.RuleAtomCallExeption)4 AtomList (org.apache.stanbol.rules.base.api.util.AtomList)4 IObjectAtom (org.apache.stanbol.rules.manager.atoms.IObjectAtom)4 ArrayList (java.util.ArrayList)3 UnsupportedTypeForExportException (org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException)3 ClauseEntry (com.hp.hpl.jena.reasoner.rulesys.ClauseEntry)2 HashSet (java.util.HashSet)2 SPARQLObject (org.apache.stanbol.rules.base.api.SPARQLObject)2 StringFunctionAtom (org.apache.stanbol.rules.manager.atoms.StringFunctionAtom)2 OWLDataFactory (org.semanticweb.owlapi.model.OWLDataFactory)2 SWRLAtom (org.semanticweb.owlapi.model.SWRLAtom)2 Node (com.hp.hpl.jena.graph.Node)1 TriplePattern (com.hp.hpl.jena.reasoner.TriplePattern)1 IRI (org.apache.clerezza.commons.rdf.IRI)1 ConstructQuery (org.apache.clerezza.rdf.core.sparql.query.ConstructQuery)1 Expression (org.apache.clerezza.rdf.core.sparql.query.Expression)1 LiteralExpression (org.apache.clerezza.rdf.core.sparql.query.LiteralExpression)1 ResourceOrVariable (org.apache.clerezza.rdf.core.sparql.query.ResourceOrVariable)1