Java 类org.semanticweb.owlapi.model.OWLIndividual 实例源码

项目:BENGAL    文件:Verbalizer.java   
/**
 * Returns a textual summary of the given entity.
 *
 * @return
 */
public Map<OWLIndividual, String> getSummaries(Set<OWLIndividual> individuals, OWLClass nc, String namespace,
        double threshold, Cooccurrence cooccurrence, HardeningType hType) {
    Map<OWLIndividual, String> entity2Summaries = new HashMap<OWLIndividual, String>();

    Map<OWLIndividual, List<NLGElement>> verbalize = verbalize(individuals, nc, namespace, threshold, cooccurrence,
            hType);
    for (Entry<OWLIndividual, List<NLGElement>> entry : verbalize.entrySet()) {
        OWLIndividual individual = entry.getKey();
        List<NLGElement> elements = entry.getValue();
        String summary = realize(elements);
        summary = summary.replaceAll("\\s?\\((.*?)\\)", "");
        summary = summary.replace(" , among others,", ", among others,");
        entity2Summaries.put(individual, summary);
    }

    return entity2Summaries;
}
项目:BENGAL    文件:Verbalizer.java   
/**
 * Returns the most specific type of a given individual.
 * 
 * @param ind
 * @return
 */
private OWLClass getMostSpecificType(OWLIndividual ind) {
    logger.debug("Getting the most specific type of " + ind);
    String query = String.format("PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
            + "select distinct ?type where {" + " <%s> a ?type ." + "?type rdfs:label []."
            // + "?type a owl:Class ." // too strict, thus currently omitted
            + "filter not exists {?subtype ^a <%s> ; rdfs:subClassOf ?type .filter(?subtype != ?type)}}",
            ind.toStringID(), ind.toStringID());
    SortedSet<OWLClass> types = new TreeSet<OWLClass>();

    QueryExecution qe = qef.createQueryExecution(query);
    ResultSet rs = qe.execSelect();
    while (rs.hasNext()) {
        QuerySolution qs = rs.next();
        if (qs.get("type").isURIResource()) {
            types.add(new OWLClassImpl(IRI.create(qs.getResource("type").getURI())));
        }
    }
    qe.close();

    // of more than one type exists, we have to choose one
    // TODO

    return types.first();
}
项目:Resource2Vec    文件:R2VManager.java   
/**
 * Train on resources of a given class.
 * 
 * @param filename
 * @param strategy
 * @param classname
 * @return
 */
public static R2VModel train(String filename,
        TfidfFEXStrategy strategy, String classname) {

    OWLOntology o = getOntology(filename);
    R2VModel model = new R2VModel(o, strategy);

    for(OWLIndividual ind : getIndividuals(classname, o)) {
        model.add(ind.asOWLNamedIndividual());
    }

    model.stringFeatures();
    model.normalize();

    return model;
}
项目:Resource2Vec    文件:R2VManager.java   
/**
 * @param superclass
 * @param o
 * @return
 */
private static Set<OWLIndividual> getIndividuals(String superclass,
        OWLOntology o) {

    OWLReasoner reasoner = PelletReasonerFactory.getInstance()
            .createReasoner(o);
    Set<OWLNamedIndividual> instances = reasoner.getInstances(
            OWL.Class(IRI.create(superclass)), false).getFlattened();

    // filter out all owl:sameAs instances...
    Set<OWLIndividual> ind = new TreeSet<>();
    for (OWLNamedIndividual i : instances) {
        ind.add(i);
    }
    logger.info("|I| = " + ind.size());
    logger.debug("I = " + ind);

    return ind;

}
项目:owltools    文件:ModelAnnotationSolrDocumentLoader.java   
private Map<OWLClass, Pair<OWLNamedIndividual, Set<OWLAnnotation>>> findProcesses(OWLNamedIndividual mf) {
    Map<OWLClass, Pair<OWLNamedIndividual, Set<OWLAnnotation>>> result = new HashMap<OWLClass, Pair<OWLNamedIndividual,Set<OWLAnnotation>>>();
    Set<OWLObjectPropertyAssertionAxiom> axioms = model.getObjectPropertyAssertionAxioms(mf);
    for (OWLObjectPropertyAssertionAxiom axiom : axioms) {
        if (partOf.equals(axiom.getProperty()) && mf.equals(axiom.getSubject())) {
            // relevant axiom
            OWLIndividual bpCandidate = axiom.getObject();
            if (bpCandidate.isNamed()) {
                final OWLNamedIndividual named = bpCandidate.asOWLNamedIndividual();
                Set<OWLClass> bpTypes = getTypes(named);
                for (OWLClass bpType : bpTypes) {
                    if (bpSet.contains(bpType) == false) {
                        continue;
                    }
                    result.put(bpType, Pair.of(named, getAnnotations(axiom, named)));
                }
            }
        }
    }
    return result;
}
项目:darceo    文件:ServicesConstructorBean.java   
/**
 * Extracts data manipulation service information from the ontology.
 * 
 * @param service
 *            service individual found in ontology.
 * @param ontology
 *            searched ontology.
 * @return extracted data manipulation service.
 * @throws EntryCreationException
 *             should any problems with extraction of data manipulation service information occur.
 */
private DataManipulationService extractService(OWLIndividual service, OWLOntology ontology)
        throws EntryCreationException {
    DataManipulationService dataManipulationService = new DataManipulationService();
    Set<OWLIndividual> profiles = service.getObjectPropertyValues(ontologyManager.getOWLDataFactory()
            .getOWLObjectProperty(PRESENTS_PROPERTY_IRI), ontology);
    for (OWLIndividual profile : profiles) {
        String profilePath = profile.asOWLNamedIndividual().getIRI().getStart();
        profilePath = profilePath.substring(0, profilePath.length() - 1);
        OWLOntology profileOntology = ontologyManager.getOntology(IRI.create(profilePath));
        dataManipulationService.setIri(extractServiceIri(service));
        dataManipulationService.setName(extractServiceName(profile, profileOntology));
        dataManipulationService.setDescription(extractServiceDescription(profile, profileOntology));
        dataManipulationService.setType(extractServiceType(profile, profileOntology));
    }
    return dataManipulationService;
}
项目:Hermit_1.3.8_android    文件:EntailmentChecker.java   
public Boolean visit(OWLDatatypeDefinitionAxiom axiom) {
    reasoner.throwInconsistentOntologyExceptionIfNecessary();
    if (!reasoner.isConsistent())
        return true;
    if (reasoner.m_dlOntology.hasDatatypes()) {
        OWLDataFactory factory=reasoner.getDataFactory();
        OWLIndividual freshIndividual=factory.getOWLAnonymousIndividual("fresh-individual");
        OWLDataProperty freshDataProperty=factory.getOWLDataProperty(IRI.create("fresh-data-property"));
        OWLDataRange dataRange=axiom.getDataRange();
        OWLDatatype dt=axiom.getDatatype();
        OWLDataIntersectionOf dr1=factory.getOWLDataIntersectionOf(factory.getOWLDataComplementOf(dataRange),dt);
        OWLDataIntersectionOf dr2=factory.getOWLDataIntersectionOf(factory.getOWLDataComplementOf(dt),dataRange);
        OWLDataUnionOf union=factory.getOWLDataUnionOf(dr1,dr2);
        OWLClassExpression c=factory.getOWLDataSomeValuesFrom(freshDataProperty,union);
        OWLClassAssertionAxiom ax=factory.getOWLClassAssertionAxiom(c,freshIndividual);
        Tableau tableau=reasoner.getTableau(ax);
        return !tableau.isSatisfiable(true,true,null,null,null,null,null,ReasoningTaskDescription.isAxiomEntailed(axiom));
    }
    else
        return false;
}
项目:darceo    文件:ServicesConstructorBean.java   
/**
 * Extracts service type of described service.
 * 
 * @param profile
 *            profile individual found in ontology.
 * @param profileOntology
 *            profile ontology.
 * @return type of service.
 * @throws EntryCreationException
 *             should specified service type be incompatible.
 */
private ServiceType extractServiceType(OWLIndividual profile, OWLOntology profileOntology)
        throws EntryCreationException {
    Set<OWLClassExpression> types = profile.getTypes(profileOntology);
    for (OWLClassExpression type : types) {
        String fragment = type.asOWLClass().getIRI().getFragment();
        if (ADV_DELIVERY.equals(fragment)) {
            return ServiceType.ADVANCED_DATA_DELIVERY;
        } else if (MIGRATION.equals(fragment)) {
            return ServiceType.DATA_MIGRATION;
        } else if (CONVERSION.equals(fragment)) {
            return ServiceType.DATA_CONVERSION;
        } else {
            throw new EntryCreationException("Unrecognized service type, malformed semantic descriptor.");
        }
    }
    throw new RuntimeException("Unrecognized service type.");
}
项目:darceo    文件:TechnicalDescriptorConstructorBean.java   
/**
 * Finds the service address in the given WSDL using the information contained in semantic descriptor.
 * 
 * @param ontology
 *            currently browsed ontology.
 * @param technicalDesc
 *            individual from the ontology representing technical descriptor.
 * @param techDescriptorUrl
 *            location of technical descriptor.
 * @return URL specifying the service address (location).
 * @throws EntryCreationException
 *             should any problems with parsing WSDL document occur.
 */
private String getServiceUrlFromWsdl(OWLOntology ontology, OWLIndividual technicalDesc, String techDescriptorUrl)
        throws EntryCreationException {
    Set<OWLIndividual> operationRefs = technicalDesc.getObjectPropertyValues(ontologyManager.getOWLDataFactory()
            .getOWLObjectProperty(IRI.create(WSDL_GROUNDING_PREFIX + "wsdlOperation")), ontology);
    for (OWLIndividual operationRef : operationRefs) {
        Set<OWLLiteral> operations = operationRef.getDataPropertyValues(ontologyManager.getOWLDataFactory()
                .getOWLDataProperty(IRI.create(WSDL_GROUNDING_PREFIX + "operation")), ontology);
        for (OWLLiteral operation : operations) {
            String[] split = operation.getLiteral().split("#");
            String id = split[split.length - 1].trim();
            String xpath = "//" + TechnicalNamespaceContext.WSDL_PREFIX + ":service/"
                    + TechnicalNamespaceContext.WSDL_PREFIX + ":port/" + TechnicalNamespaceContext.WSDL_SOAP_PREFIX
                    + ":address";
            NodeList nodes = getNode(techDescriptorUrl, xpath);
            String path = findOperationUrl(techDescriptorUrl, nodes, id);
            return path;
        }
    }
    throw new EntryCreationException("Could not find location of the service specified in grounding.");
}
项目:darceo    文件:TechnicalDescriptorConstructorBean.java   
/**
 * Finds the service address in the given WADL using the information contained in semantic descriptor.
 * 
 * @param ontology
 *            currently browsed ontology.
 * @param technicalDesc
 *            individual from the ontology representing technical descriptor.
 * @param techDescriptorUrl
 *            location of technical descriptor.
 * @return URL specifying the service address (location).
 * @throws EntryCreationException
 *             should any problems with parsing WADL document occur.
 */
private String getServiceUrlFromWadl(OWLOntology ontology, OWLIndividual technicalDesc, String techDescriptorUrl)
        throws EntryCreationException {
    Set<OWLIndividual> resourceMethods = technicalDesc.getObjectPropertyValues(ontologyManager.getOWLDataFactory()
            .getOWLObjectProperty(IRI.create(WADL_GROUNDING_PREFIX + "wadlResourceMethod")), ontology);
    for (OWLIndividual resourceMethod : resourceMethods) {
        Set<OWLLiteral> resources = resourceMethod.getDataPropertyValues(ontologyManager.getOWLDataFactory()
                .getOWLDataProperty(IRI.create(WADL_GROUNDING_PREFIX + "resource")), ontology);
        for (OWLLiteral resource : resources) {
            String[] split = resource.getLiteral().split("#");
            String id = split[split.length - 1].trim();
            String xpath = "//" + TechnicalNamespaceContext.WADL_PREFIX + ":resource[@id='" + id + "']";
            NodeList nodes = getNode(techDescriptorUrl, xpath);
            String path = constructUrl(nodes.item(0));
            return path;
        }
    }
    throw new EntryCreationException("Could not find location of the service specified in grounding.");
}
项目:Wolpertinger    文件:NiceAxiomPrinter.java   
public void visit(OWLClassAssertionAxiom classAssertion) {
    OWLIndividual individual = classAssertion.getIndividual();
    OWLClassExpression classExpression = classAssertion.getClassExpression();

    if (!classExpression.isAnonymous()) {
        OWLClass namedClass = classExpression.asOWLClass();

        writer.print(namedClass.getIRI().getFragment());
        writer.print("(");
        writer.print(IRI.create(individual.toStringID()).getFragment());
        writer.print(").\n");
    }
    else {

    }
}
项目:owltools    文件:ABoxUtils.java   
public static void randomizeClassAssertions(OWLOntology ont, int num) {
    Set<OWLClassAssertionAxiom> caas = new HashSet<OWLClassAssertionAxiom>();
    Set<OWLClassAssertionAxiom> caasNew = new HashSet<OWLClassAssertionAxiom>();
        Set<OWLNamedIndividual> inds = ont.getIndividualsInSignature(Imports.INCLUDED);
    OWLNamedIndividual[] indArr = (OWLNamedIndividual[]) inds.toArray();
    for (OWLNamedIndividual ind : inds) {
        caas.addAll( ont.getClassAssertionAxioms(ind) );
    }
    for (OWLClassAssertionAxiom caa : caas) {
        OWLIndividual randomIndividual = null;
        caasNew.add(ont.getOWLOntologyManager().getOWLDataFactory().getOWLClassAssertionAxiom(caa.getClassExpression(), 
                randomIndividual));
    }
    ont.getOWLOntologyManager().removeAxioms(ont, caas);
    ont.getOWLOntologyManager().addAxioms(ont, caasNew);
}
项目:skoseditor    文件:ConceptSchemeComboBox.java   
public static JComboBox getConceptSchemeComboBox(OWLEditorKit owlEditorKit) {

        final Comparator<OWLObject> comp = owlEditorKit.getModelManager().getOWLObjectComparator();

        List<OWLIndividual> sorted;
        Collections.sort(sorted = new ArrayList<OWLIndividual>(getConceptSchemes(owlEditorKit)), new OWLObjectComparatorAdapter<OWLIndividual>(comp) {

            public int compare(OWLIndividual o1, OWLIndividual o2) {
                return super.compare(o1,o2);
            }
        });

        JComboBox schemaBox = new JComboBox(sorted.toArray());
        schemaBox.setRenderer(new OWLCellRendererSimple(owlEditorKit));
        if(!getConceptSchemes(owlEditorKit).isEmpty()) {
            schemaBox.setSelectedIndex(0);
        }

        return schemaBox;

    }
项目:Hermit_1.3.8_android    文件:OWLClausification.java   
public void visit(OWLObjectSomeValuesFrom object) {
    OWLClassExpression filler=object.getFiller();
    if (filler instanceof OWLObjectOneOf) {
        for (OWLIndividual individual : ((OWLObjectOneOf)filler).getIndividuals()) {
            Variable z=nextZ();
            m_bodyAtoms.add(Atom.create(getConceptForNominal(individual),z));
            m_headAtoms.add(getRoleAtom(object.getProperty(),X,z));
        }
    }
    else {
        LiteralConcept toConcept=getLiteralConcept(filler);
        Role onRole=getRole(object.getProperty());
        AtLeastConcept atLeastConcept=AtLeastConcept.create(1,onRole,toConcept);
        if (!atLeastConcept.isAlwaysFalse())
            m_headAtoms.add(Atom.create(atLeastConcept,X));
    }
}
项目:HermiT-android    文件:Reasoner.java   
public boolean isSatisfiable(OWLClassExpression classExpression) {
    checkPreConditions(classExpression);
    if (!isConsistent())
        return false;
    if (classExpression instanceof OWLClass
            && m_atomicConceptHierarchy != null) {
        AtomicConcept concept = H((OWLClass) classExpression);
        HierarchyNode<AtomicConcept> node = m_atomicConceptHierarchy
                .getNodeForElement(concept);
        return node != m_atomicConceptHierarchy.getBottomNode();
    } else {
        OWLDataFactory factory = getDataFactory();
        OWLIndividual freshIndividual = factory
                .getOWLAnonymousIndividual("fresh-individual");
        OWLClassAssertionAxiom assertClassExpression = factory
                .getOWLClassAssertionAxiom(classExpression, freshIndividual);
        Tableau tableau = getTableau(assertClassExpression);
        return tableau.isSatisfiable(true, null, null, null, null, null,
                ReasoningTaskDescription
                        .isConceptSatisfiable(classExpression));
    }
}
项目:HermiT-android    文件:Reasoner.java   
protected boolean isReflexive(OWLObjectPropertyExpression propertyExpression) {
    checkPreConditions(propertyExpression);
    if (!m_isConsistent)
        return true;
    OWLDataFactory factory = getDataFactory();
    OWLClass pseudoNominal = factory.getOWLClass(IRI
            .create("internal:pseudo-nominal"));
    OWLClassExpression allNotPseudoNominal = factory
            .getOWLObjectAllValuesFrom(propertyExpression,
                    pseudoNominal.getObjectComplementOf());
    OWLIndividual freshIndividual = factory
            .getOWLAnonymousIndividual("fresh-individual");
    OWLAxiom pseudoNominalAssertion = factory.getOWLClassAssertionAxiom(
            pseudoNominal, freshIndividual);
    OWLAxiom allNotPseudoNominalAssertion = factory
            .getOWLClassAssertionAxiom(allNotPseudoNominal, freshIndividual);
    Tableau tableau = getTableau(pseudoNominalAssertion,
            allNotPseudoNominalAssertion);
    boolean result = tableau.isSatisfiable(true, null, null, null, null,
            null, new ReasoningTaskDescription(true, "symmetry of {0}",
                    H(propertyExpression)));
    tableau.clearAdditionalDLOntology();
    return !result;
}
项目:HermiT-android    文件:Reasoner.java   
protected boolean isAsymmetric(
        OWLObjectPropertyExpression propertyExpression) {
    checkPreConditions(propertyExpression);
    if (!m_isConsistent)
        return true;
    OWLDataFactory factory = getDataFactory();
    OWLIndividual freshIndividualA = factory
            .getOWLAnonymousIndividual("fresh-individual-A");
    OWLIndividual freshIndividualB = factory
            .getOWLAnonymousIndividual("fresh-individual-B");
    OWLAxiom assertion1 = factory.getOWLObjectPropertyAssertionAxiom(
            propertyExpression, freshIndividualA, freshIndividualB);
    OWLAxiom assertion2 = factory.getOWLObjectPropertyAssertionAxiom(
            propertyExpression.getInverseProperty(), freshIndividualA,
            freshIndividualB);
    Tableau tableau = getTableau(assertion1, assertion2);
    boolean result = tableau.isSatisfiable(true, null, null, null, null,
            null, new ReasoningTaskDescription(true, "asymmetry of {0}",
                    H(propertyExpression)));
    tableau.clearAdditionalDLOntology();
    return !result;
}
项目:owltools    文件:OWLHandler.java   
/**
 * Params: id
 * @throws OWLOntologyCreationException
 * @throws OWLOntologyStorageException
 * @throws IOException
 * @throws OWLParserException
 */
public void getAxiomsCommand() throws OWLOntologyCreationException, OWLOntologyStorageException, IOException, OWLParserException {
    headerOWL();
    boolean direct = getParamAsBoolean(Param.direct, false);
    OWLObject obj = this.resolveEntity();
    LOG.info("finding axioms about: "+obj);
    Set<OWLAxiom> axioms = new HashSet<OWLAxiom>();
    if (obj instanceof OWLClass) {
        axioms.addAll(graph.getSourceOntology().getAxioms((OWLClass)obj, Imports.EXCLUDED));
    }
    if (obj instanceof OWLIndividual) {
        axioms.addAll(graph.getSourceOntology().getAxioms((OWLIndividual)obj, Imports.EXCLUDED));
    }
    if (obj instanceof OWLObjectProperty) {
        axioms.addAll(graph.getSourceOntology().getAxioms((OWLObjectProperty)obj, Imports.EXCLUDED));
    }

    for (OWLAxiom ax : axioms) {
        output(ax);
    }
}
项目:owltools    文件:OWLHandler.java   
@Deprecated
public void deleteFactCommand() throws IOException, OWLOntologyCreationException, OWLOntologyStorageException, UnknownOWLClassException {
    if (isHelp()) {
        info("generates ClassAssertion");
        return;
    }
    OWLOntology ont = resolveOntology(Param.ontology);
    OWLIndividual i = resolveIndividual(Param.individualId);
    OWLIndividual j = resolveIndividual(Param.fillerId);
    OWLObjectProperty p = resolveObjectProperty(Param.propertyId);
    for (OWLObjectPropertyAssertionAxiom ax : ont.getAxioms(AxiomType.OBJECT_PROPERTY_ASSERTION)) {
        if (ax.getSubject().equals(i)) {
            if (p == null || ax.getProperty().equals(p)) {
                if (j == null || ax.getObject().equals(j)) {
                    removeAxiom(ont, graph.getDataFactory().getOWLObjectPropertyAssertionAxiom(p, i, j));
                }
            }
        }
    }
    String jsonStr = "";
    response.getWriter().write(jsonStr);
}
项目:HermiT-android    文件:OWLClausification.java   
public void visit(OWLObjectSomeValuesFrom object) {
    OWLClassExpression filler=object.getFiller();
    if (filler instanceof OWLObjectOneOf) {
        for (OWLIndividual individual : ((OWLObjectOneOf)filler).getIndividuals()) {
            Variable z=nextZ();
            m_bodyAtoms.add(Atom.create(getConceptForNominal(individual),z));
            m_headAtoms.add(getRoleAtom(object.getProperty(),X,z));
        }
    }
    else {
        LiteralConcept toConcept=getLiteralConcept(filler);
        Role onRole=getRole(object.getProperty());
        AtLeastConcept atLeastConcept=AtLeastConcept.create(1,onRole,toConcept);
        if (!atLeastConcept.isAlwaysFalse())
            m_headAtoms.add(Atom.create(atLeastConcept,X));
    }
}
项目:HermiT-android    文件:EntailmentChecker.java   
public Boolean visit(OWLDifferentIndividualsAxiom axiom) {
    // see OWL 2 Syntax, Sec 11.2
    // No axiom in Ax of the following form contains anonymous individuals:
    // SameIndividual, DifferentIndividuals, NegativeObjectPropertyAssertion, and NegativeDataPropertyAssertion.
    ArrayList<OWLIndividual> list=new ArrayList<OWLIndividual>(axiom.getIndividuals());
    for (OWLIndividual i : list) {
        if (i.isAnonymous()) {
            throw new IllegalArgumentException("OWLDifferentIndividualsAxiom axioms are not allowed to be used "+"with anonymous individuals (see OWL 2 Syntax Sec 11.2) but the axiom "+axiom+" cotains an anonymous individual. ");
        }
    }
    for (int i=0;i<list.size()-1;i++) {
        OWLNamedIndividual head=list.get(i).asOWLNamedIndividual();
        for (int j=i+1;j<list.size();j++) {
            OWLNamedIndividual next=list.get(j).asOWLNamedIndividual();
            if (!reasoner.hasType(head,factory.getOWLObjectComplementOf(factory.getOWLObjectOneOf(next)),false))
                return Boolean.FALSE;
        }
    }
    return Boolean.TRUE;
}
项目:HermiT-android    文件:EntailmentChecker.java   
public Boolean visit(OWLDatatypeDefinitionAxiom axiom) {
    reasoner.throwInconsistentOntologyExceptionIfNecessary();
    if (!reasoner.isConsistent())
        return true;
    if (reasoner.m_dlOntology.hasDatatypes()) {
        OWLDataFactory factory=reasoner.getDataFactory();
        OWLIndividual freshIndividual=factory.getOWLAnonymousIndividual("fresh-individual");
        OWLDataProperty freshDataProperty=factory.getOWLDataProperty(IRI.create("fresh-data-property"));
        OWLDataRange dataRange=axiom.getDataRange();
        OWLDatatype dt=axiom.getDatatype();
        OWLDataIntersectionOf dr1=factory.getOWLDataIntersectionOf(factory.getOWLDataComplementOf(dataRange),dt);
        OWLDataIntersectionOf dr2=factory.getOWLDataIntersectionOf(factory.getOWLDataComplementOf(dt),dataRange);
        OWLDataUnionOf union=factory.getOWLDataUnionOf(dr1,dr2);
        OWLClassExpression c=factory.getOWLDataSomeValuesFrom(freshDataProperty,union);
        OWLClassAssertionAxiom ax=factory.getOWLClassAssertionAxiom(c,freshIndividual);
        Tableau tableau=reasoner.getTableau(ax);
        return !tableau.isSatisfiable(true,true,null,null,null,null,null,ReasoningTaskDescription.isAxiomEntailed(axiom));
    }
    else
        return false;
}
项目:HermiT-android    文件:EntailmentChecker.java   
public void visit(OWLClassAssertionAxiom axiom) {
    if (axiom.getClassExpression().isOWLThing())
        return;
    OWLIndividual node=axiom.getIndividual();
    if (!node.isAnonymous()) {
        namedNodes.add(node.asOWLNamedIndividual());
    }
    else {
        nodes.add(node.asOWLAnonymousIndividual());
        if (nodelLabels.containsKey(node)) {
            nodelLabels.get(node).add(axiom.getClassExpression());
        }
        else {
            Set<OWLClassExpression> label=new HashSet<OWLClassExpression>();
            label.add(axiom.getClassExpression());
            nodelLabels.put(node.asOWLAnonymousIndividual(),label);
        }
    }
}
项目:owltools    文件:PhenoSimHQEPreProcessor.java   
protected void makeHasPhenotypeInstancesDirect() {
    // x Type has_phenotype some C ==> x Type C
    LOG.info("x Type has_phenotype some C ==> x Type C");
    OWLObjectProperty hasPhenotype = getOWLObjectPropertyViaOBOSuffix(HAS_PHENOTYPE);
    Set<OWLAxiom> rmAxioms = new HashSet<OWLAxiom>();
    Set<OWLAxiom> newAxioms = new HashSet<OWLAxiom>();
    for (OWLClassAssertionAxiom caa : outputOntology.getAxioms(AxiomType.CLASS_ASSERTION)) {
        OWLClassExpression ex = caa.getClassExpression();
        OWLIndividual i = caa.getIndividual();
        if (ex instanceof OWLObjectSomeValuesFrom) {
            OWLObjectSomeValuesFrom svf = (OWLObjectSomeValuesFrom)ex;
            if (svf.getProperty().equals(hasPhenotype)) {
                rmAxioms.add(caa);
                newAxioms.add(getOWLDataFactory().getOWLClassAssertionAxiom(svf.getFiller(), i));
            }

        }
    }
    LOG.info("making instances direct: +"+newAxioms.size()+ " -"+rmAxioms.size());
    addAxiomsToOutput(newAxioms, false);
    removeAxiomsFromOutput(rmAxioms, false);
}
项目:owltools    文件:ClassExpressionGraphClosureRenderer.java   
public void render(OWLGraphEdge e) {
    OWLObject s = e.getSource();
    OWLClassExpression x = (OWLClassExpression) graph.edgeToTargetExpression(e);
    OWLAxiom ax;
    if (s instanceof OWLClassExpression) {
        ax = graph.getDataFactory().getOWLSubClassOfAxiom((OWLClassExpression)s, x);
    }
    else if (s instanceof OWLIndividual) {
        ax = graph.getDataFactory().getOWLClassAssertionAxiom(x, (OWLIndividual) s);        
    }
    else {
        ax = null;
    }
    if (ax != null) {
        stream.print(ax.toString());
    }
}
项目:Hermit_1.3.8_android    文件:EntailmentChecker.java   
public void visit(OWLClassAssertionAxiom axiom) {
    if (axiom.getClassExpression().isOWLThing())
        return;
    OWLIndividual node=axiom.getIndividual();
    if (!node.isAnonymous()) {
        namedNodes.add(node.asOWLNamedIndividual());
    }
    else {
        nodes.add(node.asOWLAnonymousIndividual());
        if (nodelLabels.containsKey(node)) {
            nodelLabels.get(node).add(axiom.getClassExpression());
        }
        else {
            Set<OWLClassExpression> label=new HashSet<OWLClassExpression>();
            label.add(axiom.getClassExpression());
            nodelLabels.put(node.asOWLAnonymousIndividual(),label);
        }
    }
}
项目:Hermit_1.3.8_android    文件:Reasoner.java   
protected boolean isAsymmetric(
        OWLObjectPropertyExpression propertyExpression) {
    checkPreConditions(propertyExpression);
    if (!m_isConsistent)
        return true;
    OWLDataFactory factory = getDataFactory();
    OWLIndividual freshIndividualA = factory
            .getOWLAnonymousIndividual("fresh-individual-A");
    OWLIndividual freshIndividualB = factory
            .getOWLAnonymousIndividual("fresh-individual-B");
    OWLAxiom assertion1 = factory.getOWLObjectPropertyAssertionAxiom(
            propertyExpression, freshIndividualA, freshIndividualB);
    OWLAxiom assertion2 = factory.getOWLObjectPropertyAssertionAxiom(
            propertyExpression.getInverseProperty(), freshIndividualA,
            freshIndividualB);
    Tableau tableau = getTableau(assertion1, assertion2);
    boolean result = tableau.isSatisfiable(true, null, null, null, null,
            null, new ReasoningTaskDescription(true, "asymmetry of {0}",
                    H(propertyExpression)));
    tableau.clearAdditionalDLOntology();
    return !result;
}
项目:owltools    文件:OntologySolrLoader.java   
public SolrInputDocument collect(OWLObject obj, OWLGraphWrapper graph) {

        SolrInputDocument cls_doc = new SolrInputDocument();

        // General for all ontology objects.
        cls_doc.addField("id", graph.getIdentifier(obj));
        cls_doc.addField("label", graph.getLabel(obj));
        cls_doc.addField("description", graph.getDef(obj));

        if (obj instanceof OWLClass)
             collectClass(cls_doc, graph, (OWLClass)obj);
        else if (obj instanceof OWLIndividual)
             collectIndividual(cls_doc, (OWLIndividual)obj);
        else if (obj instanceof OWLProperty)
             collectProperty(cls_doc, (OWLProperty)obj);
        return cls_doc; 
    }
项目:Hermit_1.3.8_android    文件:EntailmentChecker.java   
public Boolean visit(OWLDifferentIndividualsAxiom axiom) {
    // see OWL 2 Syntax, Sec 11.2
    // No axiom in Ax of the following form contains anonymous individuals:
    // SameIndividual, DifferentIndividuals, NegativeObjectPropertyAssertion, and NegativeDataPropertyAssertion.
    ArrayList<OWLIndividual> list=new ArrayList<OWLIndividual>(axiom.getIndividuals());
    for (OWLIndividual i : list) {
        if (i.isAnonymous()) {
            throw new IllegalArgumentException("OWLDifferentIndividualsAxiom axioms are not allowed to be used "+"with anonymous individuals (see OWL 2 Syntax Sec 11.2) but the axiom "+axiom+" cotains an anonymous individual. ");
        }
    }
    for (int i=0;i<list.size()-1;i++) {
        OWLNamedIndividual head=list.get(i).asOWLNamedIndividual();
        for (int j=i+1;j<list.size();j++) {
            OWLNamedIndividual next=list.get(j).asOWLNamedIndividual();
            if (!reasoner.hasType(head,factory.getOWLObjectComplementOf(factory.getOWLObjectOneOf(next)),false))
                return Boolean.FALSE;
        }
    }
    return Boolean.TRUE;
}
项目:OntoBench    文件:OwlObjectHasValueFeature.java   
@Override
public void addToOntology() {
  OWLObjectProperty property = featurePool.getExclusiveProperty(":objectHasValueProperty");

  OWLIndividual value = factory.getOWLNamedIndividual(":ObjectHasValue_Individual", pm);
  OWLObjectHasValue restriction = factory.getOWLObjectHasValue(property, value);

  OWLClass hasValue = featurePool.getExclusiveClass(":ObjectHasValue");
  addAxiomToOntology(factory.getOWLSubClassOfAxiom(hasValue, restriction));
}
项目:BENGAL    文件:Verbalizer.java   
public Map<OWLIndividual, List<NLGElement>> verbalize(Set<OWLIndividual> individuals, OWLClass nc, String namespace,
        double threshold, Cooccurrence cooccurrence, HardeningType hType) {
    resource2Triples = new HashMap<Resource, Collection<Triple>>();

    // first get graph for nc
    try {
        WeightedGraph wg = graphGenerator.generateGraph(nc, threshold, namespace, cooccurrence);

        // then cluster the graph
        BorderFlowX bf = new BorderFlowX(wg);
        Set<Set<Node>> clusters = bf.cluster();
        // then harden the results
        List<Set<Node>> sortedPropertyClusters = HardeningFactory.getHardening(hType).harden(clusters, wg);
        // logger.info("Cluster = " + sortedPropertyClusters);
        Map<OWLIndividual, List<NLGElement>> verbalizations = new HashMap<OWLIndividual, List<NLGElement>>();

        for (OWLIndividual ind : individuals) {
            // finally generateSentencesFromClusters
            List<NLGElement> result = generateSentencesFromClusters(sortedPropertyClusters,
                    ResourceFactory.createResource(ind.toStringID()), nc, true);

            Triple t = Triple.create(ResourceFactory.createResource(ind.toStringID()).asNode(),
                    ResourceFactory.createProperty(RDF.type.getURI()).asNode(),
                    ResourceFactory.createResource(nc.toStringID()).asNode());
            Collections.reverse(result);
            result.add(generateSimplePhraseFromTriple(t));
            Collections.reverse(result);

            verbalizations.put(ind, result);

            resource2Triples.get(ResourceFactory.createResource(ind.toStringID())).add(t);
        }

        return verbalizations;
    } catch (NoGraphAvailableException e) {
        e.printStackTrace();
    }

    return null;
}
项目:BENGAL    文件:Verbalizer.java   
/**
 * Returns a textual summary of the given entity.
 *
 * @return
 */
public String summarize(OWLIndividual individual) {
    // compute the most specific type first
    OWLClass cls = getMostSpecificType(individual);
    // logger.info("cls" + cls.toString());
    return summarize(individual, cls);
}
项目:BENGAL    文件:Verbalizer.java   
/**
 * Returns a textual summary of the given entity.
 *
 * @return
 */
public String getSummary(OWLIndividual individual, OWLClass nc, double threshold, Cooccurrence cooccurrence,
        HardeningType hType) {
    List<NLGElement> elements = verbalize(individual, nc, null, threshold, cooccurrence, hType);
    String summary = realize(elements);
    summary = summary.replaceAll("\\s?\\((.*?)\\)", "");
    summary = summary.replace(" , among others,", ", among others,");
    return summary;
}
项目:OWLAx    文件:IntegrateOntologyWithProtege.java   
private void getInvdividual2RDFType2ClassAxioms(OWLIndividual src, OWLClass dest) {
    // Set<OWLAxiom> tmpaxioms = new HashSet<OWLAxiom>();
    OWLAxiom axiom;
    axiom = owlDataFactory.getOWLClassAssertionAxiom(dest, src);
    classAssertionAxioms.add(axiom);

}
项目:Wolpertinger    文件:OWLNormalization.java   
public OWLClassExpression visit(OWLObjectComplementOf object) {
    if (isNominal(object.getOperand())) {
        OWLObjectOneOf objectOneOf=(OWLObjectOneOf)object.getOperand();
        OWLClass definition=getDefinitionForNegativeNominal(objectOneOf,m_alreadyExists);
        if (!m_alreadyExists[0]) {
            for (OWLIndividual individual : objectOneOf.getIndividuals()) {
                addFact(m_factory.getOWLClassAssertionAxiom(definition,individual));
            }
        }
        return m_factory.getOWLObjectComplementOf(definition);
    }
    else
        return object;
}
项目:owltools    文件:OWLGraphWrapperEdges.java   
/**
 * return all individuals i where x is reachable from i
 * @param x
 * @return set of individual {@link OWLObject}s
 */
public Set<OWLObject> getIndividualDescendants(OWLObject x) {
    Set<OWLObject> descs = new HashSet<OWLObject>();
    for (OWLGraphEdge e : getIncomingEdgesClosure(x)) {
        OWLObject s = e.getSource();
        if (s instanceof OWLIndividual)
            descs.add(s);
    }
    return descs;
}
项目:Wolpertinger    文件:OWLNormalization.java   
public void visit(SWRLClassAtom atom) {
    if (!(atom.getArgument() instanceof SWRLIndividualArgument))
        throw new IllegalArgumentException("A SWRL rule contains a head atom "+atom+" with a variable that does not occur in the body. ");
    OWLIndividual ind=((SWRLIndividualArgument)atom.getArgument()).getIndividual();
    if (ind.isAnonymous())
        throwAnonIndError(atom);
    if (!isSimple(atom.getPredicate())) {
        OWLClassExpression definition=getDefinitionFor(atom.getPredicate(),m_alreadyExists);
        if (!m_alreadyExists[0])
            m_newInclusions.add(new OWLClassExpression[] { negative(definition),atom.getPredicate() });
        addFact(m_factory.getOWLClassAssertionAxiom(definition,ind.asOWLNamedIndividual()));
    }
    else
        addFact(m_factory.getOWLClassAssertionAxiom(atom.getPredicate(),ind.asOWLNamedIndividual()));
}
项目:minerva    文件:CoreMolecularModelManager.java   
/**
 * Adds a ClassAssertion, where the class expression instantiated is an
 * ObjectSomeValuesFrom expression
 * 
 * Example: Individual: i Type: enabledBy some PRO_123
 *  
 * @param model
 * @param i
 * @param p
 * @param filler
 * @param metadata
 */
void addType(ModelContainer model,
        OWLIndividual i, 
        OWLObjectPropertyExpression p,
        OWLClassExpression filler,
        METADATA metadata) {
    if (LOG.isDebugEnabled()) {
        LOG.debug("Adding "+i+ " type "+p+" some "+filler); 
    }
    OWLDataFactory f = model.getOWLDataFactory();
    OWLObjectSomeValuesFrom c = f.getOWLObjectSomeValuesFrom(p, filler);
    OWLClassAssertionAxiom axiom = f.getOWLClassAssertionAxiom(c, i);
    addAxiom(model, axiom, metadata);
}
项目:minerva    文件:CoreMolecularModelManager.java   
/**
 * remove ClassAssertion(c,i) from the model
 * 
 * @param model
 * @param i
 * @param ce
 * @param metadata
 */
public void removeType(ModelContainer model, OWLIndividual i, 
        OWLClassExpression ce, METADATA metadata) {
    Set<OWLClassAssertionAxiom> allAxioms = model.getAboxOntology().getClassAssertionAxioms(i);
    // use search to remove also axioms with annotations
    for (OWLClassAssertionAxiom ax : allAxioms) {
        if (ce.equals(ax.getClassExpression())) {
            removeAxiom(model, ax, metadata);
        }
    }

}
项目:minerva    文件:CoreMolecularModelManager.java   
void removeType(ModelContainer model,
        OWLIndividual i, 
        OWLObjectPropertyExpression p,
        OWLClassExpression filler,
        METADATA metadata) {
    OWLDataFactory f = model.getOWLDataFactory();
    OWLClassAssertionAxiom axiom = f.getOWLClassAssertionAxiom(f.getOWLObjectSomeValuesFrom(p, filler), i);
    removeAxiom(model, axiom, metadata);
}