package automenta.spacenet.plugin.rdf; public class RDFNet { } ///** Net interface to an RDF model */ //public class RDFNet<N extends RDFNode, L extends RDFLink> extends RDFEntityModel<N, L> implements Net<N, L> { // private static final Logger logger = Logger.getLogger(RDFNet.class); // // private BidiMap<Value, Node<N,L>> nodes = new DualHashBidiMap<Value, Node<N,L>>(); // private BidiMap<Statement, Link<N,L>> links = new DualHashBidiMap<Statement, Link<N,L>>(); // // public RDFNet() throws RepositoryException { // super(); // } // // @Override public void dispose() { // super.dispose(); // // if (nodes!=null) { // nodes.clear(); // nodes = null; // } // if (links!=null) { // links.clear(); // links = null; // } // } // //// protected void addSubject(ID subject) { //// subjects.put(subject.getUURI(), subject); //// } // // // public void addLink(OldLink l) { // // SailRepositoryConnection con = rep.getConnection(); // // Resource subject = getResource(l.getSubject()); // // Resource predicate = getResource(l.getPredicate()); // // Value object = getResource(l.getObject()); // // con.add(subject, predicate, object, contexts); // // con.close(); // // } // // // private Resource getResource(ID subject) { // // Resource r = resources.get(subject); // // if (r != null) { // // return r; // // } // // // // try { // // URI uri = rep.getValueFactory().createURI(subject.getUURI().toURI().toString()); // // resources.put(subject.getUURI(), uri); // // return uri; // // } catch (URISyntaxException e) { // // logger.error(e); // // e.printStackTrace(); // // } // // // // return null; // // } // // @Override // public void addFile(URL u, String baseURI) throws Exception { // super.addFile(u, baseURI); // // updateAll(); // } // // // protected void updateAll() { // updateNodes(); // updateLinks(); // } // // protected void updateNodes() { // try { // foreachResource(new ResourceVisitor() { // @Override public void onResource(RDFModel model, Resource r) { // Node<N, L> rdfNode = nodes.get(r); // if (rdfNode == null) { // rdfNode = newRDFNode(r); // nodes.put(r, rdfNode); // } // else { // //update node? // } // } // // @Override // public void onValue(RDFModel model, Statement s, Value v) { // Node<N, L> rdfNode = nodes.get(v); // if (rdfNode == null) { // Link<N, L> rdfLink = links.get(s); // if (rdfLink == null) { // rdfLink = newRDFLink(s); // links.put(s, rdfLink); // } // else { // //update node? // } // // rdfNode = newRDFNode(v); // nodes.put(v, rdfNode); // } // else { // //... // } // // } // }); // } catch (RepositoryException e) { // logger.error(e); // } // } // // protected void updateLinks() { // try { // foreachStatement(new StatementVisitor() { // @Override public void onStatement(RDFModel model, Statement s) { // Link<N,L> rdfLink = links.get(s); // if (rdfLink == null) { // rdfLink = newRDFLink(s); // links.put(s, rdfLink); // } // else { // //update link? // } // } // }); // } catch (RepositoryException e) { // logger.error(e); // } // } // // protected Link<N, L> newRDFLink(final Statement s) { // return new RDFLink(s) { // // @Override public RDFNode[] getContexts() { // //TODO // return null; // } // // @Override public RDFNode getObject() { // return RDFNet.this.getNode(s.getObject()); // } // // @Override public RDFNode getPredicate() { // return RDFNet.this.getNode(s.getPredicate()); // } // // @Override public RDFNode getSubject() { // return RDFNet.this.getNode(s.getSubject()); // } // // @Override public Node<RDFNode, RDFLink> getFirst() { // return getSubject(); // } // // @Override public Node<RDFNode, RDFLink> getLast() { // return getPredicate(); // } // // @Override // public Node<RDFNode, RDFLink>[] getNodes() { // Node<RDFNode, RDFLink>[] array = (Node<RDFNode,RDFLink>[]) Array.newInstance(Node.class, 2); // array[0] = getSubject(); // array[1] = getObject(); // return array; // } // // @Override public RDFLink getValue() { // return this; // } // // }; // // } // // @Override // public void clear() { // super.clear(); // // updateAll(); // } // // protected N getNode(Value object) { // return nodes.get(object).getValue(); // } // protected L getLink(Statement statement) { // return links.get(statement).getValue(); // } // // protected Node<N, L> newRDFNode(Value v) { // return new RDFNode(v) { // // private ListVar<Class> entityClasses; // // @Override public String getComment() { // String s = ""; // try { // List<L> labelLinks = RDFNet.this.getLinks(getValue(), "rdf-schema", "comment"); // for (L l : labelLinks) // s += l.getObject() + " ; "; // } // catch (Exception e) { // logger.error(e); // } // return s; // } // // @Override // public Object getEntity() { // if (getRDFValue() instanceof Resource) { // Resource r = (Resource)getRDFValue(); // return RDFNet.this.getEntity(r); // } // return null; // } // // @Override public ListVar getEntityClasses() { // if (entityClasses == null) { // entityClasses = new ListVar<Class>(); // } // // if (getRDFValue() instanceof Resource) { // Resource r = (Resource)getRDFValue(); // // entityClasses.clear(); // for (Class i : RDFNet.this.getEntity(r).getClass().getInterfaces()) { // entityClasses.add(i); // } // // } // // return entityClasses; // } // // @Override public ListVar getInLinks() { // // TODO Auto-generated method stub // return null; // } // // @Override public String getLabel() { // String s = ""; // try { // List<L> labelLinks = RDFNet.this.getLinks(getValue(), "rdf-schema", "label"); // for (L l : labelLinks) // s += l.getObject() + " ; "; // } // catch (Exception e) { // logger.error(e); // } // return s; // } // // @Override public ListVar getOutLinks() { // // TODO Auto-generated method stub // return null; // } // // // @Override public RDFNode getValue() { // return this; // } // // @Override // public Iterator iterateLinksIn() { // // TODO Auto-generated method stub // return null; // } // // @Override // public Iterator iterateLinksOut() { // // TODO Auto-generated method stub // return null; // } // // }; // } // // // // protected List<L> getLinks(RDFNode subject, final String predNamespaceFilter, final String predLocalFilter) throws RepositoryException { // final LinkedList<L> matches = new LinkedList(); // // Value v = subject.getRDFValue(); // if (v instanceof Resource) { // Resource res = (Resource)v; // // foreachStatement(new StatementVisitor() { // @Override public void onStatement(RDFModel model, Statement s) { // URI pred = s.getPredicate(); // // if (predLocalFilter!=null) { // if (!pred.getLocalName().contains(predLocalFilter)) { // return; // } // } // if (predNamespaceFilter!=null) { // if (!pred.getNamespace().contains(predNamespaceFilter)) { // return; // } // } // // matches.add(getLink(s)); // } // }, res, null, null); // } // // return matches; // } // // @Override public boolean containsLink(Link<N, L> l) { // return links.containsValue(l); // } // // @Override public boolean containsNode(Node<N, L> n) { // return nodes.containsValue(n); // } // // @Override public Iterator<? extends Link<? extends N, ? extends L>> iterateLinks() { // return links.values().iterator(); // } // // @Override public Iterator<Link<N, L>> iterateLinksInTo(Node<N, L> n) { // // TODO Auto-generated method stub // return null; // } // // @Override // public Iterator<Link<N, L>> iterateLinksOutOf(Node<N, L> n) { // // TODO Auto-generated method stub // return null; // } // // @Override // public Iterator<Node<N, L>> iterateNodes() { // return nodes.values().iterator(); // } // // /** if 2 nodes are supplied, creates a single statement. if 3 or more nodes, then multiple statements connecting them with the given L (predicate) are created. */ // @Override public Link<N, L> addLink(L value, Node<N, L>... nodes) { // // TODO Auto-generated method stub // return null; // } // // @Override public Node<N, L> addNode(N value) { // // TODO Auto-generated method stub // return null; // } // // @Override public boolean removeLink(Link<N, L> l) { // // TODO Auto-generated method stub // return false; // } // // @Override public boolean removeNode(Node<N, L> n) { // // TODO Auto-generated method stub // return false; // } // // //}