In this section we briefly outline the key concepts used in Facete, which are related to faceted search, detection of property paths that connect concepts and dealing with large amounts of spatial data.

Faceted Search

Facete's approach to faceted search based on the following concepts.

A SPARQL concept is a pair comprising a SPARQL graph pattern and a variable thereof. As such, it intentionally describes a set of resources. For instance, the pair ( {?s a Person}, ?s) could be used to describe a set of people. SPARQL concepts are a key enabler for indirect faceted search as they can be used to represent virtually any set of resources (within the expressivity of SPARQL), such as the set of facets, the set of child facets, the set of facet values and the set of resources with geometric information.

• Property Steps are used to navigate from a set of resources to a related set of resources by following a specific property. A direction attribute determines whether to follow a property in forward or inverse direction. Hence, a destination SPARQL concept can be obtained from a given origin SPARQL concept and a property step.

A Property Path is a sequence of property steps.

• Constraint Specifications express constraints via references to property paths. Constraint specifications are internally translated to corresponding SPARQL graph patterns.

Finding Connections between SPARQL Concepts

Depending on how a dataset was modeled, the spatial dimension may not be directly attached to instances of a certain type. In order to visualize the spatial dimension of such objects efficiently and intuitively we need an approach to find connecting property paths between two arbitrary SPARQL concepts efficiently. These paths can become relatively long, and naive path discovery approaches are not feasible. For example, in our RDFized version of the FP7 project funding dataset[1], projects are related to geometric information via paths of length 5.

Our approach is outlined as follows: because we are only interested in the detection of property paths, we pre-compute a property join summary. The basic SPARQL query for this purpose is:

Conceptually, we could search for arbitrary complex paths, such as ones that include cyclic (same property followed multiple times in the same direction) and zig-zag (forward and backward on the same property traversals. However, for our use cases the restriction to directed acyclic paths leading from a source concept to a target concept was sufficient: we query the source concept for all of its properties ?p, and conceptually add triples (:source :joinsWith ?p) to the join summary. Thereby :source is a distinguished resource representing the source concept. From a target concept's graph pattern, such as (?s geo:long ?x ; geo:lat?y, ?s), we can infer that we need to search for properties that according to the join summary are connected to both geo:long and geo:lat. As a consequence, we can query the joinsummary for a set of candidate target properties using:

If the extensions of the source and target concepts have resources in common, this query's result set includes :source as a candidate.

We can now search for candidate paths on the join summary that connect :source with each of the candidate properties. For each candidate path we then fire an ASK query to check whether the given dataset contains an instance of it. Those paths for which actually data exists, are then listed in Facete's Geo-Link drop down box.

Note, that this approach is independent of any concrete vocabulary.

  • [1]
< Prev   CONTENTS   Next >