It’s Linh Hoang from Project 3. This week, I spent most of my time to read papers and also ran some experiments to explore SPARQL recursive queries capability. The objective is to be able to run standard recursive queries in SPARQL.
We found “property path” is a way to implement recursion in SPARQL and tried to test this function in some of our examples. One of the classic example is to find the descendants of a person in a family tree (which is represented in RDF format). Recursive query will take the name of top person, run the query first time to get all of the children of that person. And then the query will recursively run again multiple times with the children as new inputs to get the grand children and so on. SPARQL query is able to execute this recursion easily with syntax look like: ?parent relationship:parent+ ?child. In conclusion, property path allows us to detect all the possible paths that connect 2 nodes in our graph, regardless what are in between the two nodes as long as the connects are there.
Come back with our YesWorkflow model, after thoroughly understand how to use property path in SPARQL, we are able to run recursive queries in our YW model to retrieve provenance information. We translated previous queries done iin Prolog and Datalog into SPARQL and tested the results. We also tried with more complex queries to test property path capability and got some positive results.
More exciting SPARQL experiments to come!