[isidorus-cvs] r400 - in trunk/src: TM-SPARQL unit_tests
Lukas Giessmann
lgiessmann at common-lisp.net
Fri Apr 1 12:50:49 UTC 2011
Author: lgiessmann
Date: Fri Apr 1 08:50:49 2011
New Revision: 400
Log:
TM-SPARQL: finsihed the unit-tests for the special-uri tms:role => fixed a bug when the object is a resource and not a variable
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 08:50:49 2011
@@ -16,10 +16,9 @@
:init-tm-sparql))
-
(in-package :TM-SPARQL)
-(defvar *empty-label* "_empty_label_symbol" "A label symobl for empyt prefix labels")
+(defvar *empty-label* "_empty_label_symbol" "A label symbol for empyt prefix labels")
(defvar *equal-operators* nil "A Table taht contains tuples of
classes and equality operators.")
@@ -779,7 +778,8 @@
(filter-characteristics
subj pred (value (object construct))
(literal-datatype (object construct)) :revision revision)))
- ((iri-p (object construct))
+ ((and (iri-p (object construct))
+ (typep subj 'TopicC))
(filter-associations subj pred (value (object construct))
:revision revision)))))))
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 08:50:49 2011
@@ -151,7 +151,7 @@
(when (and (or (variable-p subj)
(typep (value subj) 'd:AssociationC))
(or (variable-p obj)
- (typep (value subj) 'd:RoleC)))
+ (typep (value obj) 'd:RoleC)))
(cond ((and (not (variable-p subj))
(not (variable-p obj)))
(when (find obj (roles (value subj) :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 08:50:49 2011
@@ -1744,12 +1744,59 @@
(let* ((q-1 (concat
"PREFIX tms:<http://www.networkedplanet.com/tmsparql/>
SELECT * WHERE {
- <http://some.where/ii/goethe-occ> tms:reifier ?obj1.
- ?subj1 tms:reifier <http://some.where/ii/goethe-name-reifier>"
+ ?assoc tms:reifier <http://some.where/ii/association-reifier>.
+ <http://some.where/ii/association> tms:role ?roles.
+ ?assoc2 tms:role <http://some.where/ii/role-2>"
"}"))
- (r-1 (tm-sparql:result (make-instance 'TM-SPARQL:SPARQL-Query :query q-1))))
- (is-true (= (length r-1) 2))
- )))
+ (r-1 (tm-sparql:result (make-instance 'TM-SPARQL:SPARQL-Query :query q-1)))
+ (role-1 (concat "_:r" (write-to-string
+ (elephant::oid
+ (first (roles
+ (get-item-by-item-identifier
+ "http://some.where/ii/association"
+ :revision 0)))))))
+ (role-2 (concat "_:r" (write-to-string
+ (elephant::oid
+ (second (roles
+ (get-item-by-item-identifier
+ "http://some.where/ii/association"
+ :revision 0))))))))
+ (is-true (= (length r-1) 3))
+ (map 'list #'(lambda(item)
+ (cond ((string= (getf item :variable) "assoc")
+ (is (string= (first (getf item :result))
+ "<http://some.where/ii/association>")))
+ ((string= (getf item :variable) "roles")
+ (is (or (string= (first (getf item :result))
+ role-1)
+ (string= (first (getf item :result))
+ role-2)
+ (string= (first (getf item :result))
+ "<http://some.where/ii/role-2>")))
+ (is (or (string= (second (getf item :result))
+ role-1)
+ (string= (second (getf item :result))
+ role-2)
+ (string= (second (getf item :result))
+ "<http://some.where/ii/role-2>"))))
+ ((string= (getf item :variable) "assoc2")
+ (is (string= (first (getf item :result))
+ "<http://some.where/ii/association>")))
+ (t
+ (is-true (format t "bad variable-name found")))))
+ r-1))))
+
+
+
+
+
+;TODO: tms:player, tms:topicProperty, tms:scope, tms:value, complex filter
+;TODO: "PREFIX tms:<http://www.networkedplanet.com/tmsparql/>
+; SELECT * WHERE {
+; ?assoc tms:reifier <http://some.where/ii/association-reifier>.
+; ?assoc tms:role ?roles}
+; => ?assoc = http://some.where/ii/association
+; => ?roles = (http://some.where/ii/role-2, _:r????)
(defun run-sparql-tests ()
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 08:50:49 2011
@@ -201,13 +201,14 @@
</tm:topic>
<tm:association reifier="http://some.where/ii/association-reifier">
- <tm:itemIdentity href="http://somw.where/ii/association"/>
+ <tm:itemIdentity href="http://some.where/ii/association"/>
<tm:type><tm:topicRef href="#written-by"/></tm:type>
<tm:role reifier="http://some.where/ii/role-reifier">
<tm:type><tm:topicRef href="#writer"/></tm:type>
<tm:topicRef href="#goethe"/>
</tm:role>
<tm:role>
+ <tm:itemIdentity href="http://some.where/ii/role-2"/>
<tm:type><tm:topicRef href="#written"/></tm:type>
<tm:topicRef href="#zauberlehrling"/>
</tm:role>
More information about the Isidorus-cvs
mailing list