Package org.jrdf.graph

Examples of org.jrdf.graph.Triple


    }

    public MoleculeImpl(MoleculeComparator newComparator, Molecule... childMolecules) {
        this(newComparator);
        for (Molecule molecule : childMolecules) {
            Triple headTriple = molecule.getHeadTriple();
            SortedSet<Molecule> submolecules = new TreeSet<Molecule>(moleculeComparator);
            submolecules.add(molecule);
            ((MoleculeImpl) molecule).isTopLevel = false;
            subMolecules.put(headTriple, submolecules);
        }
View Full Code Here


    }

    public void specialAdd(Molecule molecule) {
        Iterator<Triple> rootTriples = molecule.getRootTriples();
        while (rootTriples.hasNext()) {
            Triple currentTriple = rootTriples.next();
            final SortedSet<Molecule> newMolecules = molecule.getSubMolecules(currentTriple);
            for (Molecule newMolecule : newMolecules) {
                ((MoleculeImpl) newMolecule).isTopLevel = false;
            }
            subMolecules.put(currentTriple, newMolecules);
View Full Code Here

            subMolecules.put(currentTriple, newMolecules);
        }
    }

    public Molecule add(MergeSubmolecules merger, Molecule childMolecule) {
        Triple headTriple = getHeadTriple();
        Triple childHeadTriple = childMolecule.getHeadTriple();
        if (childHeadTriple.equals(headTriple)) {
            // Assume that there are no molecules hanging off the any of the triples.
            return merger.merge(this, childMolecule);
        } else {
            // For now assume there is a match with the least grounded to the head triple and therefore we are adding
            // a child molecule onto the head triple.
View Full Code Here

        Set<Triple> set = findTriple(molecules, triple);
        return set.iterator();
    }

    public Iterator<Triple> find(SubjectNode subject, PredicateNode predicateNode, ObjectNode object) {
        Triple triple = new TripleImpl(subject, predicateNode, object);
        return find(triple);
    }
View Full Code Here

    private Set<Triple> findTriple(Set<Molecule> molecules, Triple triple) {
        Set<Triple> set = new HashSet<Triple>();
        for (Molecule m : molecules) {
            final Iterator<Triple> roots = m.getRootTriples();
            while (roots.hasNext()) {
                Triple root = roots.next();
                if (triplesMatch(triple, root)) {
                    set.add(root);
                }
                set.addAll(findTriple(m.getSubMolecules(root), triple));
            }
View Full Code Here

    public void addTripleToGraph(Triple triple) throws GraphException {
        SubjectNode subjectNode = elementFactory.createURIReference(((URIReference) triple.getSubject()).getURI());
        PredicateNode predicateNode = elementFactory.createURIReference(
            ((URIReference) triple.getPredicate()).getURI());
        ObjectNode objectNode = createLiteralOrURI(triple.getObject());
        final Triple triple1 = tripleFactory.createTriple(subjectNode, predicateNode, objectNode);
        graph.add(triple1);
    }
View Full Code Here

        }
    }

    public Graph createNewTriples(Iterator<Triple> it) throws GraphException {
        while (it.hasNext()) {
            Triple triple = it.next();
            final Triple newTriple = createNewTriple(triple);
            graph.add(newTriple);
        }
        return graph;
    }
View Full Code Here

        molecules.clear();
        graph = newGraph;
        ClosableIterable<Triple> triples = graph.find(ANY_SUBJECT_NODE, ANY_PREDICATE_NODE, ANY_OBJECT_NODE);
        for (Triple currentTriple : triples) {
            if (!triplesChecked.contains(currentTriple)) {
                Triple newStartingPoint = new FindEntryNodeImpl().find(graph, currentTriple);
                if (tripleComparator.compare(newStartingPoint, currentTriple) < 0) {
                    currentTriple = newStartingPoint;
                }
                Molecule molecule = moleculeFactory.createMolecule();
                molecule = molecule.add(currentTriple);
View Full Code Here

        if (ObjectNode.class.isAssignableFrom(node.getClass()) &&
            ObjectNode.class.isAssignableFrom(newNode.getClass())) {
            final ObjectNode oldONode = (ObjectNode) createNewNode(node);
            ClosableIterable<Triple> triples = graph.find(ANY_SUBJECT_NODE, ANY_PREDICATE_NODE, oldONode);
            for (Triple triple : triples) {
                Triple newTriple =
                    tripleFactory.createTriple(triple.getSubject(), triple.getPredicate(), (ObjectNode) newNode);
                triplesToAdd.add(newTriple);
                triplesToRemove.add(new TripleImpl(triple.getSubject(), triple.getPredicate(), oldONode));
            }
            triples.iterator().close();
View Full Code Here

        triples.iterator().close();
        return molecules;
    }

    private Molecule convertTripleToMolecule(Molecule molecule) throws GraphException {
        Triple currentTriple = molecule.getHeadTriple();
        boolean blankSubject = isBlankNode(currentTriple.getSubject());
        boolean blankObject = isBlankNode(currentTriple.getObject());
        if (blankObject) {
            molecule = findEnclosedTriples(molecule, graph.find(ANY_SUBJECT_NODE, ANY_PREDICATE_NODE,
                currentTriple.getObject()));
            molecule = findEnclosedTriples(molecule, graph.find((SubjectNode) currentTriple.getObject(),
                ANY_PREDICATE_NODE, ANY_OBJECT_NODE));
        }
        if (blankSubject) {
            molecule = findEnclosedTriples(molecule, graph.find(currentTriple.getSubject(), ANY_PREDICATE_NODE,
                ANY_OBJECT_NODE));
            molecule = findEnclosedTriples(molecule, graph.find(ANY_SUBJECT_NODE, ANY_PREDICATE_NODE,
                (ObjectNode) currentTriple.getSubject()));
        }
        return molecule;
    }
View Full Code Here

TOP

Related Classes of org.jrdf.graph.Triple

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.