private void setSubject(RDFTerm subject) { if ((subject) == null) { throw new ArgumentNullException("subject"); } if (!(subject.getKind() == RDFTerm.IRI || subject.getKind() == RDFTerm.BLANK)) { throw new ArgumentException("doesn't satisfy subject.kind==RDFTerm.IRI || subject.kind==RDFTerm.BLANK"); } this.subject = subject; }
private void setPredicate(RDFTerm predicate) { if ((predicate) == null) { throw new ArgumentNullException("predicate"); } if (!(predicate.getKind() == RDFTerm.IRI)) { throw new ArgumentException("doesn't satisfy predicate.kind==RDFTerm.IRI"); } this.predicate = predicate; }
/* * Replaces certain blank nodes with blank nodes whose * names meet the N-Triples requirements * @param triples A set of RDF triples * @param bnodeLabels A mapping of blank node names * already allocated. This method will modify this * _object as needed to allocate new blank nodes. */ // internal static void replaceBlankNodes(ISet <RDFTriple> triples, IDictionary <string, RDFTerm> bnodeLabels) { if (bnodeLabels.Count == 0) { return; } IDictionary <string, RDFTerm> newBlankNodes = new PeterO.Support.LenientDictionary <string, RDFTerm>(); IList <RDFTriple[]> changedTriples = new List <RDFTriple[]>(); int[] nodeindex = new int[] { 0 }; foreach (var triple in triples) { bool changed = false; RDFTerm subj = triple.getSubject(); if (subj.getKind() == RDFTerm.BLANK) { string oldname = subj.getValue(); string newname = suggestBlankNodeName(oldname, nodeindex, bnodeLabels); if (!newname.Equals(oldname)) { RDFTerm newNode = newBlankNodes[oldname]; if (newNode == null) { newNode = RDFTerm.fromBlankNode(newname); bnodeLabels.Add(newname, newNode); newBlankNodes.Add(oldname, newNode); } subj = newNode; changed = true; } } RDFTerm obj = triple.getObject(); if (obj.getKind() == RDFTerm.BLANK) { string oldname = obj.getValue(); string newname = suggestBlankNodeName(oldname, nodeindex, bnodeLabels); if (!newname.Equals(oldname)) { RDFTerm newNode = newBlankNodes[oldname]; if (newNode == null) { newNode = RDFTerm.fromBlankNode(newname); bnodeLabels.Add(newname, newNode); newBlankNodes.Add(oldname, newNode); } obj = newNode; changed = true; } } if (changed) { RDFTriple[] newTriple = new RDFTriple[] { triple, new RDFTriple(subj, triple.getPredicate(), obj) }; changedTriples.Add(newTriple); } } foreach (var triple in changedTriples) { triples.Remove(triple[0]); triples.Add(triple[1]); } }
private void setSubject(RDFTerm subject) { if((subject)==null)throw new ArgumentNullException("subject"); if(!(subject.getKind()==RDFTerm.IRI || subject.getKind()==RDFTerm.BLANK))throw new ArgumentException("doesn't satisfy subject.kind==RDFTerm.IRI || subject.kind==RDFTerm.BLANK"); this.subject = subject; }
private void setPredicate(RDFTerm predicate) { if((predicate)==null)throw new ArgumentNullException("predicate"); if(!(predicate.getKind()==RDFTerm.IRI))throw new ArgumentException("doesn't satisfy predicate.kind==RDFTerm.IRI"); this.predicate = predicate; }