Saturday, January 08, 2005

How to Manage a Triple Store

Views in Triple Stores "The first is to apply a "window" on the graph, and only extract the data that's within a certain distance of my origin. The MusicBrainz API has a similar notion of query depth; see the ASCII art under "Select & Get Documentation" section in in the docs, and the subsequent section for more information."

The related-to operations in TKS did some of this but it was unaware of a schema - it used statistics to find the most relevant relationships between resources.

When you start extending from a resource to other related resources you have to know about the schema - more importantly what to exclude or how to rank these relationships. With something like RDFS entailments everything is a resource so following that to other resources means everything is related by one level.

Maybe a walk with multiple predicates and a depth.

"The second subset may be created by filtering out the classes and properties extracted from the database based on their namespaces. For example I might have a triple store containing a mixture of public/private data, with the latter in a separate namespace and I want to pull out just the public aspects for returning from a web service."

"I see the combination of these subsetting techniques, along with a declarative mechanism to state how and when they should be applied as broadly analagous to a relational view.

Has anyone implemented anything like this, or aware of triple stores (or more likely APIs) that offer this facility?"

To get out URIs based on their namespace LIKE must be enabled (which is implemented just not available in iTQL). After that, though, these groups could be put into different models and alternatively viewed as one.

The functionality comes from being able to use set operations in the FROM clause:
"Because models are sets of statements, it is logical to compose them using set operations. The from clause permits set union using the or operator and set intersection using the and operator, with parentheses used to control association.

The following example queries only the statements appearing in all three models.

... from <rmi://mysite.com/server1#model1> and <rmi://mysite.com/server1#model2>
and <rmi://mysite.com/server1#model3> ..."

No comments: