[isidorus-cvs] r104 - in trunk/src: unit_tests xml/rdf
Lukas Giessmann
lgiessmann at common-lisp.net
Mon Aug 3 19:00:54 UTC 2009
Author: lgiessmann
Date: Mon Aug 3 15:00:53 2009
New Revision: 104
Log:
fixed a bug in the rdf-importer module which affects reification of arcs contains literal content
Modified:
trunk/src/unit_tests/rdf_importer_test.lisp
trunk/src/xml/rdf/importer.lisp
Modified: trunk/src/unit_tests/rdf_importer_test.lisp
==============================================================================
--- trunk/src/unit_tests/rdf_importer_test.lisp (original)
+++ trunk/src/unit_tests/rdf_importer_test.lisp Mon Aug 3 15:00:53 2009
@@ -1203,8 +1203,45 @@
(test test-import-node-reification
-
- )
+ "Tests the function import-node non-recursively. Especially the reification
+ of association- and occurrence-arcs."
+ (let ((db-dir "data_base")
+ (tm-id "http://test-tm/")
+ (revision-1 100)
+ (document-id "doc-id")
+ (doc-1
+ (concatenate 'string "<rdf:RDF xmlns:rdf=\"" *rdf-ns* "\" "
+ "xmlns:arcs=\"http://test/arcs/\" "
+ "xmlns:rdfs=\"" *rdfs-ns* "\">"
+ "<rdf:Description rdf:about=\"first-node\">"
+ "<arcs:arc1 rdf:ID=\"reification-1\">"
+ "<rdf:Description rdf:about=\"second-node\" />"
+ "</arcs:arc1>"
+ "</rdf:Description>"
+ "<rdf:Description rdf:ID=\"#reification-1\">"
+ "<arcs:arc2 rdf:resource=\"third-node\"/>"
+ "</rdf:Description>"
+ "<rdf:Description rdf:nodeID=\"fourth-node\">"
+ "<arcs:arc3 rdf:ID=\"reification-2\" rdf:datatype=\"dt\">"
+ "occurrence data"
+ "</arcs:arc3>"
+ "</rdf:Description>"
+ "<rdf:Description rdf:ID=\"#reification-2\">"
+ "<arcs:arc4 rdf:resource=\"fifth-node\" />"
+ "</rdf:Description>"
+ "</rdf:RDF>")))
+ (let ((dom-1 (cxml:parse doc-1 (cxml-dom:make-dom-builder))))
+ (is-true dom-1)
+ (is (= (length (dom:child-nodes dom-1)) 1))
+ (let ((rdf-node (elt (dom:child-nodes dom-1) 0)))
+ (is (= (length (dom:child-nodes rdf-node)) 4))
+ (rdf-init-db :db-dir db-dir :start-revision revision-1)
+ (dotimes (iter (length (dom:child-nodes rdf-node)))
+ (rdf-importer::import-node (elt (dom:child-nodes rdf-node) iter)
+ tm-id revision-1
+ :document-id document-id))
+
+ ))))
Modified: trunk/src/xml/rdf/importer.lisp
==============================================================================
--- trunk/src/xml/rdf/importer.lisp (original)
+++ trunk/src/xml/rdf/importer.lisp Mon Aug 3 15:00:53 2009
@@ -315,7 +315,7 @@
(list :instance-of role-type-2
:player top))))
(when ID
- (make-reification ID top type-top player-1 start-revision
+ (make-reification ID top player-1 type-top start-revision
tm :document-id document-id))
(add-to-topicmap tm (make-construct 'AssociationC
:start-revision start-revision
@@ -348,6 +348,7 @@
(declare ((or OccurrenceC TopicC) object))
(declare (TopicC subject predicate))
(declare (TopicMapC tm))
+
(let ((reifier (make-topic-stub reifier-id nil nil nil start-revision tm
:document-id document-id))
(predicate-arc (make-topic-stub *rdf-predicate* nil nil nil start-revision
@@ -365,10 +366,10 @@
start-revision)
(make-association-with-nodes reifier predicate predicate-arc
tm start-revision)
- (if (typep object 'TopicC)
+ (if (typep object 'd:TopicC)
(make-association-with-nodes reifier object object-arc
tm start-revision)
- (make-construct 'OccurrenceC
+ (make-construct 'd:OccurrenceC
:start-revision start-revision
:topic reifier
:themes (themes object)
@@ -406,7 +407,7 @@
:charvalue value
:datatype datatype)))
(when ID
- (make-reification ID top type-top occurrence start-revision
+ (make-reification ID top occurrence type-top start-revision
xml-importer::tm :document-id document-id))
occurrence))))))
More information about the Isidorus-cvs
mailing list