You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2014/06/04 23:54:28 UTC
[4/7] git commit: CLEREZZA-829: USing rdfstore-js to store the parsed
RDFa data,
working around changes in literal roundtripping using the content property
(even though according to the spec this is ignored for XMLLiterals)
CLEREZZA-829: USing rdfstore-js to store the parsed RDFa data, working around changes in literal roundtripping using the content property (even though according to the spec this is ignored for XMLLiterals)
Project: http://git-wip-us.apache.org/repos/asf/clerezza/repo
Commit: http://git-wip-us.apache.org/repos/asf/clerezza/commit/8d34e62b
Tree: http://git-wip-us.apache.org/repos/asf/clerezza/tree/8d34e62b
Diff: http://git-wip-us.apache.org/repos/asf/clerezza/diff/8d34e62b
Branch: refs/heads/master
Commit: 8d34e62bd43ab2b3222a015dfce400bfcc8f7f85
Parents: 61e303e
Author: reto <re...@apache.org>
Authored: Wed Jun 4 23:50:40 2014 +0200
Committer: reto <re...@apache.org>
Committed: Wed Jun 4 23:50:40 2014 +0200
----------------------------------------------------------------------
.../tools/editor/scripts/greenrdfstore.js | 78 +
.../resources/tools/editor/scripts/rdfstore.js | 31836 +++++++++++++++++
.../renderlets/DiscobitsContentEtch.scala | 210 +-
.../renderlets/HtmlInfoDicobitRDFaNaked.scala | 2 +-
4 files changed, 32039 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/clerezza/blob/8d34e62b/platform.editor/src/main/resources/META-INF/resources/tools/editor/scripts/greenrdfstore.js
----------------------------------------------------------------------
diff --git a/platform.editor/src/main/resources/META-INF/resources/tools/editor/scripts/greenrdfstore.js b/platform.editor/src/main/resources/META-INF/resources/tools/editor/scripts/greenrdfstore.js
new file mode 100644
index 0000000..eef998f
--- /dev/null
+++ b/platform.editor/src/main/resources/META-INF/resources/tools/editor/scripts/greenrdfstore.js
@@ -0,0 +1,78 @@
+/*
+ * functions to read RDFa to an rdfstore-js graph
+ */
+
+function GreenRdfStore() {
+}
+
+GreenRdfStore.getGraph = function(element, callback) {
+ var store = rdfstore.create();
+ store.graph(function(success,graph) {
+ var env = store.rdf;
+ CallbackProcessor.prototype = new RDFaProcessor();
+ CallbackProcessor.prototype.constructor=RDFaProcessor;
+ function CallbackProcessor() {
+ RDFaProcessor.call(this);
+ }
+ var bNodeTable = {};
+ CallbackProcessor.prototype.addTriple = function(origin,subject,predicate,object) {
+ function convertNonLiteral(node) {
+ if (node.startsWith("_:")) {
+ if (!bNodeTable[node]) {
+ bNodeTable[node] = env.createBlankNode(node);
+ }
+ return bNodeTable[node];
+ } else {
+ return env.createNamedNode(node);s
+ }
+ }
+ function serializeNodeList(nodeList) {
+ //code taken from Greenturtle's GraphRDFaProcessor
+ var serializer = new XMLSerializer();
+ var value = "";
+ for (var x=0; x<nodeList.length; x++) {
+ if (nodeList[x].nodeType==Node.ELEMENT_NODE) {
+ var prefixMap = RDFaPredicate.getPrefixMap(nodeList[x]);
+ var prefixes = [];
+ for (var prefix in prefixMap) {
+ prefixes.push(prefix);
+ }
+ prefixes.sort();
+ var e = nodeList[x].cloneNode(true);
+ for (var p=0; p<prefixes.length; p++) {
+ e.setAttributeNS("http://www.w3.org/2000/xmlns/",prefixes[p].length==0 ? "xmlns" : "xmlns:"+prefixes[p],prefixMap[prefixes[p]]);
+ }
+ value += serializer.serializeToString(e);
+ } else if (nodeList[x].nodeType==Node.TEXT_NODE) {
+ value += nodeList[x].nodeValue;
+ }
+ }
+ return value;
+ }
+ //alert("New triple: "+subject+", predicate "+predicate+", object "+object.value+", "+object.language+", "+object.type);
+ var subjectRS = convertNonLiteral(subject);
+
+ var predicateRS = env.createNamedNode(predicate);
+ if (object.type === "http://www.w3.org/1999/02/22-rdf-syntax-ns#object") {
+ var objectRS = convertNonLiteral(object.value);
+ } else {
+ if (origin.getAttribute("content")) {
+ //according to the spec this attribute should be ignored for xmlLiterals, we don't
+ var value = origin.getAttribute("content");
+ } else {
+ if (object.value.length) {
+ var value = serializeNodeList(object.value);
+ } else {
+ var value = object.value;
+ }
+ }
+ var objectRS = env.createLiteral(value.toString(), object.language, object.type);
+ }
+ graph.add(env.createTriple(subjectRS, predicateRS, objectRS));
+ };
+ var gp = new CallbackProcessor();
+ //gp.target.graph = new RDFaGraph();
+ gp.process(element);
+ callback(graph)
+ });
+};
\ No newline at end of file