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 2011/03/06 12:53:15 UTC

svn commit: r1078454 - in /incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris: GraphIndexer.scala IndexDefinitionManager.scala VirtualProperty.scala

Author: reto
Date: Sun Mar  6 11:53:15 2011
New Revision: 1078454

URL: http://svn.apache.org/viewvc?rev=1078454&view=rev
Log:
CLEREZZA-388: passing test for path-virtual properties

Modified:
    incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/GraphIndexer.scala
    incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/IndexDefinitionManager.scala
    incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/VirtualProperty.scala

Modified: incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/GraphIndexer.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/GraphIndexer.scala?rev=1078454&r1=1078453&r2=1078454&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/GraphIndexer.scala (original)
+++ incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/GraphIndexer.scala Sun Mar  6 11:53:15 2011
@@ -78,19 +78,25 @@ class GraphIndexer(definitionGraph: Trip
 		val definitionsPreamble = new Preamble(definitionGraph)
 		import definitionsPreamble._
 		def asVirtualProperty(r:  RichGraphNode): VirtualProperty = {
-				lazy val propertyList = {
+				lazy val vPropertyList = {
 					import collection.JavaConversions._
 					(for (childPropertyResource <- new RdfList(r/CRIS.propertyList)) yield {
 						asVirtualProperty(childPropertyResource)
 					}).toList
 				}
+        lazy val uriPropertyList = {
+					import collection.JavaConversions._
+					(for (childPropertyResource <- new RdfList(r/CRIS.propertyList)) yield {
+						childPropertyResource.asInstanceOf[UriRef]
+					}).toList
+				}
 			  if (r.hasProperty(RDF.`type`, CRIS.JoinVirtualProperty)) {
 					import collection.JavaConversions._
-					new JoinVirtualProperty(propertyList)
+					new JoinVirtualProperty(vPropertyList)
 				} else {
 					if (r.hasProperty(RDF.`type`, CRIS.PathVirtualProperty)) {
             import collection.JavaConversions._
-            new PathVirtualProperty(propertyList)
+            new PathVirtualProperty(uriPropertyList)
           } else {
             //TODO add other cases
             if ((r!).isInstanceOf[UriRef]) {

Modified: incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/IndexDefinitionManager.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/IndexDefinitionManager.scala?rev=1078454&r1=1078453&r2=1078454&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/IndexDefinitionManager.scala (original)
+++ incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/IndexDefinitionManager.scala Sun Mar  6 11:53:15 2011
@@ -71,7 +71,7 @@ trait IndexDefinitionManager {
           definitionGraph.add(new TripleImpl(virtualProperty, CRIS.propertyList, listBNode))
           val rdfList = new RdfList(listBNode, definitionGraph)
           for (p <- l) {
-            rdfList.add(asResource(p))
+            rdfList.add(p)
           }
           virtualProperty
         }

Modified: incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/VirtualProperty.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/VirtualProperty.scala?rev=1078454&r1=1078453&r2=1078454&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/VirtualProperty.scala (original)
+++ incubator/clerezza/issues/CLEREZZA-388/rdf.cris/core/src/main/scala/org/apache/clerezza/rdf/cris/VirtualProperty.scala Sun Mar  6 11:53:15 2011
@@ -46,13 +46,22 @@ case class JoinVirtualProperty(propertie
 	def value(node: RichGraphNode): Seq[String] = Seq(singleValue(node))
 }
 
-case class PathVirtualProperty(properties: List[VirtualProperty]) extends VirtualProperty {
-	val stringKey = "J"+VirtualProperty.listDigest(properties)
-	def value(node: RichGraphNode): Seq[String] = Seq("")
+case class PathVirtualProperty(properties: List[UriRef]) extends VirtualProperty {
+	val stringKey = "J"+VirtualProperty.listDigest(for (p <- properties) yield PropertyHolder(p))
+	def value(node: RichGraphNode): Seq[String] =  {
+   def getPathResults(node: RichGraphNode, properties: List[UriRef]): Seq[String] = {
+     if (properties.size == 1) {
+       PropertyHolder(properties.head).value(node)
+     } else {
+       (for (v <- node/properties.head) yield getPathResults(v, properties.tail)).flatten
+     }
+   }
+   getPathResults(node, properties)
+  }
 }
 
 object VirtualProperty {
-  def listDigest(properties: List[VirtualProperty]) = {
+  protected[cris] def listDigest(properties: List[VirtualProperty]) = {
     val longString = (for (p <- properties) yield {
       p.stringKey
     }).mkString("|")