[isidorus-cvs] r404 - in trunk/src: TM-SPARQL unit_tests
Lukas Giessmann
lgiessmann at common-lisp.net
Fri Apr 1 13:57:59 UTC 2011
Author: lgiessmann
Date: Fri Apr 1 09:57:58 2011
New Revision: 404
Log:
TM-SPARQL: finsihed the unit-tests for the special-uri tms:value => fixed a bug when '<date>'^^xml-date is given
Modified:
trunk/src/TM-SPARQL/sparql.lisp
trunk/src/TM-SPARQL/sparql_special_uris.lisp
trunk/src/unit_tests/sparql_test.lisp
trunk/src/unit_tests/sparql_test.xtm
Modified: trunk/src/TM-SPARQL/sparql.lisp
==============================================================================
--- trunk/src/TM-SPARQL/sparql.lisp (original)
+++ trunk/src/TM-SPARQL/sparql.lisp Fri Apr 1 09:57:58 2011
@@ -505,7 +505,8 @@
Note the type xsd:date is not supported and so handled as a string."
(declare (String literal-datatype))
(let ((chars
- (cond ((string= literal-datatype *xml-string*)
+ (cond ((or (string= literal-datatype *xml-string*)
+ (string= literal-datatype *xml-date*))
(remove-if #'(lambda(elem)
(string/= (charvalue elem) literal-value))
(append
Modified: trunk/src/TM-SPARQL/sparql_special_uris.lisp
==============================================================================
--- trunk/src/TM-SPARQL/sparql_special_uris.lisp (original)
+++ trunk/src/TM-SPARQL/sparql_special_uris.lisp Fri Apr 1 09:57:58 2011
@@ -255,7 +255,7 @@
(not (variable-p obj)))
(when (or (and (typep subj 'NameC)
(string= literal-datatype *xml-string*)
- (string= (charvalue subj) (value obj)))
+ (string= (charvalue (value subj)) (value obj)))
(filter-datatypable-by-value subj obj literal-datatype))
(list (list :subject subj-uri
:predicate pred-uri
@@ -264,10 +264,10 @@
((not (variable-p subj))
(list (list :subject subj-uri
:predicate pred-uri
- :object (charvalue subj)
- :literal-datatype (if (typep subj 'd:NameC)
+ :object (charvalue (value subj))
+ :literal-datatype (if (typep (value subj) 'd:NameC)
*xml-string*
- (datatype subj)))))
+ (datatype (value subj))))))
((not (variable-p obj))
(loop for char in (return-characteristics (value obj) literal-datatype)
collect (list :subject (sparql-node char :revision revision)
Modified: trunk/src/unit_tests/sparql_test.lisp
==============================================================================
--- trunk/src/unit_tests/sparql_test.lisp (original)
+++ trunk/src/unit_tests/sparql_test.lisp Fri Apr 1 09:57:58 2011
@@ -1882,12 +1882,55 @@
r-1))))
+(test test-all-8
+ "Tests the entire module with the file sparql_test.xtm"
+ (with-fixture with-tm-filled-db ("data_base" *sparql_test.xtm*)
+ (tm-sparql:init-tm-sparql)
+ (let* ((q-1 (concat
+ "PREFIX tms:<http://www.networkedplanet.com/tmsparql/>
+ SELECT * WHERE {
+ <http://some.where/ii/goethe-untyped-name> tms:value ?obj1.
+ <http://some.where/ii/goethe-occ> tms:value ?obj2.
+ <http://some.where/ii/goethe-variant> tms:value ?obj3.
+ ?subj1 tms:value 'Goethe'.
+ ?subj2 tms:value '28.08.1749'^^http://www.w3.org/2001/XMLSchema#date.
+ ?subj3 tms:value 'Johann Wolfgang von Goethe'.
+ ?subj4 tms:value 82"
+ "}"))
+ (r-1 (tm-sparql:result (make-instance 'TM-SPARQL:SPARQL-Query :query q-1))))
+ (is-true (= (length r-1) 7))
+ (map 'list #'(lambda(item)
+ (cond ((string= (getf item :variable) "obj1")
+ (is (string= (first (getf item :result))
+ "Johann Wolfgang von Goethe")))
+ ((string= (getf item :variable) "obj2")
+ (is (string= (first (getf item :result))
+ "28.08.1749")))
+ ((string= (getf item :variable) "obj3")
+ (is (string= (first (getf item :result))
+ "Goethe")))
+ ((string= (getf item :variable) "subj1")
+ (is (string= (first (getf item :result))
+ "<http://some.where/ii/goethe-variant>")))
+ ((string= (getf item :variable) "subj2")
+ (is (string= (first (getf item :result))
+ "<http://some.where/ii/goethe-occ>")))
+ ((string= (getf item :variable) "subj3")
+ (is (string= (first (getf item :result))
+ "<http://some.where/ii/goethe-untyped-name>")))
+ ((string= (getf item :variable) "subj4")
+ (is (string= (first (getf item :result))
+ "<http://some.where/ii/goethe-years-occ>")))
+ (t
+ (is-true (format t "bad variable-name found")))))
+ r-1))))
+
-;TODO: tms:scope, tms:value, complex filter
-; <obj> <pred> <subj>
-; ?obj <pred> ?subj
-; <subj> ?pred ?obj
+;TODO: tms:value, complex filter,
+; <obj> <pred> <subj>,
+; ?obj <pred> ?subj,
+; <subj> ?pred ?obj,
; ?subj ?pred <obj>
;TODO: PREFIX tms:<http://www.networkedplanet.com/tmsparql/>
; SELECT * WHERE {
Modified: trunk/src/unit_tests/sparql_test.xtm
==============================================================================
--- trunk/src/unit_tests/sparql_test.xtm (original)
+++ trunk/src/unit_tests/sparql_test.xtm Fri Apr 1 09:57:58 2011
@@ -141,6 +141,7 @@
<tm:type><tm:topicRef href="#last-name"/></tm:type>
<tm:value>von Goethe</tm:value>
<tm:variant>
+ <tm:itemIdentity href="http://some.where/ii/goethe-variant"/>
<tm:scope><tm:topicRef href="#display-name"/></tm:scope>
<tm:resourceData datatype="http://www.w3.org/2001/XMLSchema#string">Goethe</tm:resourceData>
</tm:variant>
@@ -159,6 +160,7 @@
<tm:resourceData datatype="http://www.w3.org/2001/XMLSchema#date">22.03.1832</tm:resourceData>
</tm:occurrence>
<tm:occurrence>
+ <tm:itemIdentity href="http://some.where/ii/goethe-years-occ"/>
<tm:type><tm:topicRef href="#years"/></tm:type>
<tm:resourceData datatype="http://www.w3.org/2001/XMLSchema#integer">82</tm:resourceData>
</tm:occurrence>
More information about the Isidorus-cvs
mailing list