Search in sources :

Example 21 with Resource

use of org.openrdf.model.Resource in project vcell by virtualcell.

the class ModelComparer method extractSubModels.

private void extractSubModels(Graph diff, Set<Graph> subModels) {
    MultiMap<Resource, Resource> bNodesMap = new MultiHashMap<Resource, Resource>();
    MultiMap<Resource, Statement> triples = new MultiHashMap<Resource, Statement>();
    for (Statement statement : diff) {
        Set<Resource> bNodesInTriple = new HashSet<Resource>();
        recordIfBlankNode(statement.getSubject(), statement, bNodesInTriple, triples);
        recordIfBlankNode(statement.getPredicate(), statement, bNodesInTriple, triples);
        recordIfBlankNode(statement.getObject(), statement, bNodesInTriple, triples);
        Set<Resource> bNodesUnion = new HashSet<Resource>();
        bNodesUnion.addAll(bNodesInTriple);
        for (Resource bNode : bNodesInTriple) {
            Set<Resource> bNodes = bNodesMap.get(bNode);
            if (bNodes != null) {
                bNodesUnion.addAll(bNodes);
            }
        }
        for (Resource bNode : bNodesUnion) {
            bNodesMap.put(bNode, bNodesUnion);
        }
    }
    for (Set<Resource> bNodes : bNodesMap.values()) {
        Graph model = new HashGraph();
        for (Resource bNode : bNodes) {
            for (Statement statement : triples.get(bNode)) {
                model.add(statement);
            }
        }
        subModels.add(model);
    }
}
Also used : HashGraph(org.sbpax.impl.HashGraph) Graph(org.openrdf.model.Graph) HashGraph(org.sbpax.impl.HashGraph) Statement(org.openrdf.model.Statement) Resource(org.openrdf.model.Resource) MultiHashMap(org.sbpax.util.MultiHashMap) HashSet(java.util.HashSet)

Example 22 with Resource

use of org.openrdf.model.Resource in project vcell by virtualcell.

the class RDFObjectSimplePool method unlink.

public void unlink(Resource resource, T object) {
    T object2 = resource2object.get(resource);
    if (object2 != null && !object2.equals(object)) {
        resource2object.remove(resource);
    }
    Set<Resource> resources2 = object2resources.get(object);
    if (resources2 != null) {
        resources2.remove(resource);
    }
    Resource primaryResource2 = object2primaryResource.get(object);
    if (primaryResource2 != null && primaryResource2.equals(resource)) {
        object2resources.remove(object);
    }
}
Also used : Resource(org.openrdf.model.Resource)

Example 23 with Resource

use of org.openrdf.model.Resource in project vcell by virtualcell.

the class RDFResourceProjection method project.

public Statement project(Statement statement, ValueFactory factory) {
    Resource subjectMapped = project(statement.getSubject());
    URI predicateMapped = project(statement.getPredicate());
    Value objectMapped = project(statement.getObject());
    return factory.createStatement(subjectMapped, predicateMapped, objectMapped);
}
Also used : Resource(org.openrdf.model.Resource) Value(org.openrdf.model.Value) URI(org.openrdf.model.URI)

Example 24 with Resource

use of org.openrdf.model.Resource in project vcell by virtualcell.

the class SameAsCrystalizer method smelt.

public Graph smelt(Graph rdf) {
    Map<Resource, Set<Resource>> sameAsSetsMap = new HashMap<Resource, Set<Resource>>();
    Iterator<Statement> sameAsStmtIter = rdf.match(null, OWL.SAMEAS, null);
    while (sameAsStmtIter.hasNext()) {
        Statement sameAsStatement = sameAsStmtIter.next();
        Value objectNode = sameAsStatement.getObject();
        if (objectNode instanceof Resource) {
            Resource subject = sameAsStatement.getSubject();
            Resource object = (Resource) objectNode;
            Set<Resource> subjectSameAsSet = sameAsSetsMap.get(subject);
            Set<Resource> objectSameAsSet = sameAsSetsMap.get(object);
            if (subjectSameAsSet != null && objectSameAsSet != null) {
                if (!subjectSameAsSet.equals(objectSameAsSet)) {
                    Set<Resource> sameAsUnionSet = new HashSet<Resource>();
                    sameAsUnionSet.addAll(subjectSameAsSet);
                    sameAsUnionSet.addAll(objectSameAsSet);
                    sameAsSetsMap.put(subject, sameAsUnionSet);
                    sameAsSetsMap.put(object, sameAsUnionSet);
                }
            } else if (subjectSameAsSet != null) {
                subjectSameAsSet.add(object);
                sameAsSetsMap.put(object, subjectSameAsSet);
            } else if (objectSameAsSet != null) {
                objectSameAsSet.add(subject);
                sameAsSetsMap.put(subject, objectSameAsSet);
            } else {
                Set<Resource> sameAsUnionSet = new HashSet<Resource>();
                sameAsUnionSet.add(subject);
                sameAsUnionSet.add(object);
                sameAsSetsMap.put(subject, sameAsUnionSet);
                sameAsSetsMap.put(object, sameAsUnionSet);
            }
        }
    }
    Set<Set<Resource>> sameAsSets = new HashSet<Set<Resource>>();
    for (Map.Entry<Resource, Set<Resource>> sameAsSetsEntry : sameAsSetsMap.entrySet()) {
        sameAsSets.add(sameAsSetsEntry.getValue());
    }
    Map<Resource, Resource> projectionMap = new HashMap<Resource, Resource>();
    for (Set<Resource> sameAsSet : sameAsSets) {
        Resource preferredResource = null;
        for (Resource resource : sameAsSet) {
            if (preferredResource == null || comparator.compare(resource, preferredResource) > 0) {
                preferredResource = resource;
            }
        }
        for (Resource resource : sameAsSet) {
            if (resource != preferredResource) {
                projectionMap.put(resource, preferredResource);
            }
        }
    }
    RDFResourceProjection rdfResourceProjection = new RDFResourceProjection(projectionMap);
    Graph rdfSmelted = rdfResourceProjection.smelt(rdf);
    Iterator<Statement> iter = rdfSmelted.match(null, OWL.SAMEAS, null);
    while (iter.hasNext()) {
        iter.next();
        iter.remove();
    }
    for (Map.Entry<Resource, Resource> projectionEntry : projectionMap.entrySet()) {
        Resource subject = projectionEntry.getValue();
        Resource object = projectionEntry.getKey();
        if (!subject.equals(object)) {
            rdfSmelted.add(subject, OWL.SAMEAS, object);
        }
    }
    return rdfSmelted;
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) Statement(org.openrdf.model.Statement) Resource(org.openrdf.model.Resource) Graph(org.openrdf.model.Graph) Value(org.openrdf.model.Value) HashMap(java.util.HashMap) Map(java.util.Map) HashSet(java.util.HashSet)

Example 25 with Resource

use of org.openrdf.model.Resource in project vcell by virtualcell.

the class NamespaceAssimilator method smelt.

public Graph smelt(Graph rdf) {
    Graph rdfNew = new HashGraph();
    for (Statement statement : rdf) {
        Resource subjectNew = smelt(rdf, statement.getSubject());
        URI predicateNew = smelt(rdf, statement.getPredicate());
        Value objectNew = statement.getObject() instanceof Resource ? smelt(rdf, (Resource) statement.getObject()) : statement.getObject();
        rdfNew.add(subjectNew, predicateNew, objectNew);
    }
    for (Map.Entry<Resource, Resource> entry : resourceMap.entrySet()) {
        rdfNew.add(entry.getKey(), OWL.SAMEAS, entry.getValue());
    }
    return rdfNew;
}
Also used : HashGraph(org.sbpax.impl.HashGraph) Graph(org.openrdf.model.Graph) HashGraph(org.sbpax.impl.HashGraph) Statement(org.openrdf.model.Statement) Resource(org.openrdf.model.Resource) Value(org.openrdf.model.Value) URI(org.openrdf.model.URI) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

Resource (org.openrdf.model.Resource)60 Statement (org.openrdf.model.Statement)22 URI (org.openrdf.model.URI)20 Value (org.openrdf.model.Value)17 HashSet (java.util.HashSet)14 Graph (org.openrdf.model.Graph)7 Literal (org.openrdf.model.Literal)6 SailConnection (org.openrdf.sail.SailConnection)5 SailException (org.openrdf.sail.SailException)5 Entry (cbit.vcell.biomodel.meta.registry.Registry.Entry)4 HashMap (java.util.HashMap)4 Test (org.junit.Test)4 NotifyingSailConnection (org.openrdf.sail.NotifyingSailConnection)4 Map (java.util.Map)3 Set (java.util.Set)3 Element (org.jdom.Element)3 HashGraph (org.sbpax.impl.HashGraph)3 VCID (cbit.vcell.biomodel.meta.VCID)2 Registry (cbit.vcell.biomodel.meta.registry.Registry)2 Edge (com.tinkerpop.blueprints.Edge)2