DAGIS: A Geospatial Semantic Web Services Discovery and Selection Framework [chapter]

Ashraful Alam, Ganesh Subbiah, Latifur Khan, Bhavani Thuraisingham
GeoSpatial Semantics  
The importance of provenance information as a means to trust and validate the authenticity of available data cannot be stressed enough in today's webenabled world. The abundance of data now accessible due to the Internet explosion brings with it the related issue of determining how much of it is trustworthy. Provenance information, such as who is responsible for the data or how the data came to be, assists in the process of verifying the authenticity of the data. Semantic web technologies such
more » ... s Resource Description Framework (RDF) include the ability to record such provenance information through the process of reification. RDF's popularity has resulted in a demand for modeling and visualization tools. The work presented in this paper, called R2D, attempts to address this demand by innovatively integrating existing, stable technologies such as relational systems with the newer web technologies such as RDF. The work in this paper extends our earlier work by adding support for the RDF concept of reification. Reification enables the association of a level of trust and confidence with RDF triples, thereby enabling the ranking/validation of the authenticity of the triples. Details of the algorithmic enhancements to the various components of R2D that were made to support RDF reification are presented along with performance graphs for queries executed on a database containing crime records data from a police department.. Every solid node with outgoing edges, such as OffenceURI, represent a subject/resource. Edges, such as Address, Description, and Victim, represent predicates and the solid nodes at the end of the edges, such as , , and , represent objects. Empty solid nodes, such as the nodes at which the Address and ReportingOfficer predicates terminate represent blank nodes. The nodes in dashed lines represent reified nodes with the "s", "p", "o", and "t" representing the "rdf:subject", rdf:predicate, "rdf:object", and the "rdf:type" predicates of the reification quad. Other predicates of the reification nodes (other than "s", "p", "o", and "t" predicates) represent non-quad predicates. The non-quad reification properties chosen in this example may not represent actual provenance information. They were primarily chosen to illustrate proof of concept. Elements of Figure 2 are used, wherever applicable, to facilitate better comprehension of the mapping constructs which are discussed in the remainder of the section. Some of the R2D mapping constructs pertaining to regular resources and blank nodes that are essential in order to effortlessly comprehend the work in this paper are briefly described below. A complete list of mapping constructs can be found in [3]. r2d:TableMap: The r2d:TableMap construct refers to a table in a relational database. In most cases, each rdfs:class object will map to a distinct r2d:TableMap, and, in the absence of rdfs:class objects, the r2d:TableMaps are inferred from the instance data in the RDF Store. Typically, every solid node with multiple predicates in an RDF graph maps into an r2d:TableMap if a similar TableMap does not already exist. Example: The RDF graph in Figure 2 results in the creation of a TableMap called "Offence". r2d:ColumnBridge: r2d:ColumnBridges relate single-valued RDF Graph predicates to relational database columns. Each rdf:Property object maps to a distinct column attached to the table specified in the rdfs:domain predicate. In the absence of rdf:property/domain information, they are discovered by exploration of the RDF Store data. Example: The Description, Victim, and Date predicates in Figure 2 become r2d:ColumnBridges belonging to the Offence r2d:TableMap. r2d:SimpleLiteralBlankNode: r2d:SimpleLiteralBlankNodes help relate RDF Graph blank nodes that consist purely of distinct simple literal objects to relational database columns. Predicates off of an r2d:SimpleLiteralBlankNode become columns in the table corresponding to the subject of the blank node. Example: The object of the Address predicate in Figure 2 is an example of an r2d:SimpleLiteralBlankNode which has distinct literal predicates of Street, Block, and Apt, which are, in turn, translated into columns of the same names in the Offence r2d:TableMap. r2d:ComplexLiteralBlankNode: This construct refers to blank nodes in an RDF Graph that have multiple object values for the same subject and predicate concept associated with the blank node. An r2d:ComplexLiteralBlankNode results in the generation of a separate r2d:TableMap with a foreign key relationship to the table representing the subject resource of the blank node. Example: The object of the ReportingOfficers predicate in Figure 2 is an example of an r2d:ComplexLiteralBlankNode that has multiple object (Badge) values for the subject (OffenceURI) and predicate (ReportingOfficers) concept associated with the blank node. The relational transformation for ReportingOfficers involves the generation of an r2d:TableMap of the same name. This ReportingOfficers r2d:TableMap includes as columns the Badge r2d:ColumnBridge and the Offence_PK column which references the primary key of the Offence r2d:TableMap. The concept of reification is supported using many of these previously defined constructs along with a few new constructs and the details of the same listed in Table 3 . r2d:ReificationNode: The r2d:ReificationNode construct is used to map blank nodes associated with "reification quads". Under certain scenarios an r2d:ReificationNode results in the generated of a new "reification" r2d:TableMap. These scenarios are discussed in detail in Section 4.2. The mapping constructs specific to r2d:ReificationNodes are discussed next. Example: The non-solid nodes corresponding to the Address-Street predicate, the Victim predicate, and the ReportingOfficers-Badge predicate in Figure 2 are examples of r2d:ReificationNodes named Address_Street_Reif, Victim_Reif, and ReportingOfficers_Badge_Reif respectively. r2d:BelongsToTableMap: This constructs connects an r2d:ReificationNode to the r2d:TableMap corresponding to the resource associated with "rdf:subject" of the r2d:ReificationNode. This information is recorded in the R2D Map File for use during the SQL-to-SPARQL translation. Example: OffenceURI is the value of the rdf:subject predicate of the Victim_Reif r2d:ReificationNode. The r2d:TableMap corresponding to OffenceURI is Offence. Hence, the r2d:BelongsToTableMap construct corresponding to Victim_Reif is set to a value of Offence, thereby connecting the reification node to a relational table. r2d:BelongsToBlankNode: This construct connects an r2d:ReificationNode to the r2d:[Simple/Complex][Literal/Resource]BlankNode corresponding to the blank node associated with the "rdf:subject" of the r2d:ReificationNode. Example: The rdf:subject of the Address_Street_Reif reification node in Figure 2 consists of a blank node resource called Address, which is an r2d:SimpleLiteralBlankNode. Hence, for this reification node the r2d:BelongsToBlankNode construct is used to associate Address_Street_Reif to the Address blank node. NOTE: Since the rdf:subject of a reification node can either refer to a proper resource or a blank node, the r2d:BelongsToTableMap and r2d:BelongsToBlankNode constructs are mutually exclusive. These are primarily required to enable the generation of appropriate SPARQL WHERE clauses during SQL-to-SPARQL translation. r2d:ReifiedPredicate: This construct is used to record the predicate corresponding to the "rdf:predicate" property of the reification quad mapped by the r2d:ReificationNode construct. This information is, again, required for appropriate SPARQL query generation. Example: The complete URI of the Victim predicate of OffenceURI is recorded under the Victim_Reif reification node using the r2d:ReifiedPredicate construct. Predicates of r2d:ReificationNodes are mapped using the r2d:ColumnBridge construct described earlier in this section. Some of the important mapping constructs specific to r2d:ColumnBridges include: r2d:BelongsToReificationNode: This construct connects an r2d:ColumnBridge to an r2d:ReificationNode entity and is a mandatory component of r2d:ColumnBridges belonging to reification nodes. Example: The r2d:BelongsToReificationNode associated with the Victim_Gender r2d:ColumnBridge is assigned a value of Victim_Reif, thereby linking the Victim_Gender column with its reification node. r2d:DataType: This construct specifies the datatype of the r2d:ColumnBridge to which it is associated and comes into play when the structure of the virtual relational database schema objects is examined. Example: The Address_Block column bridge may have an r2d:DataType of Integer while the Victim_Gender column bridge has an r2d:DataType of String. r2d:Predicate: This construct is used to store the fully qualified property name of the predicate which is associated with the reification r2d:ColumnBridge. This information is used during the SQL-to-SPARQL translation to generate the SPARQL WHERE clauses required to obtain the value of the r2d:ColumnBridge Example: The complete URI of the Victim_Gender predicate of the Victim_Reif reification node is recorded using the r2d: Predicate construct. The following sections describe how each of the above mentioned R2D constructs is utilized to transform provenance information available in RDF stores through the reification concept into their relational equivalents. Reification within the R2D Framework In order to bring to fruition R2D's vision and objectives, various algorithms were designed and developed to implement each component, highlighted in Figure 1 , within the R2D framework. The algorithmic details of each R2D module for translation of regular resources and blank nodes are described in depth in [3] and are omitted from this paper 33 For every entry of type r2d:SimpleLiteralBlankNode that belongs to Line 29's SLBN 34 Repeat Steps 29-36 Figure 3: DBSchemaGenerator Algorithm Case (a) For every r2d:TableMap in the virtual relational schema corresponding to an RDF store an additional r2d:TableMap (i.e., a virtual relational table) of type "ReificationTable" is created in the schema if any of the following conditions hold: a) An r2d:ColumnBridge corresponding to a predicate of a resource that maps to the r2d:TableMap is reified b) A r2d:MultiValuedColumnBridge (MVCB) that results in the addition of a column to this r2d:TableMap is reified c) A predicate corresponding to an r2d:SimpleLiteralBlankNode (SLBN) associated with a resource that maps to the r2d:TableMap is reified d) An r2d:ColumnBridge associated with a predicate of an r2d:SimpleLiteralBlankNode (SLBN) object is reified. This additional reification table houses the columns corresponding to every singlevalued property (other than the 4 properties comprising the quad) of the "reification quads" arising from the 4 conditions described above. In order to better understand the intricacies of the algorithm let us consider the scenario depicted in Figure 2 . The reification of the Victim predicate in Figure 2 is an example of condition (a) above while reification of the Street predicate of the Address SLBN is an example of condition (d). The relational transformation of these reification nodes results in the creation of a new virtual relational table (called Offence_Reification) with the following columns (corresponding to the predicates of the reification quads): Address_Street_Direction, Victim_Gender, Victim_Race, and Victim_Age. Case (b) In the case of reification of MultiValuedColumnBridges that result in the creation of a new join table and reification of other kinds of blank nodes other than SLBNs (more details on the various blank node types and their relational representations can be found in [3]), no new reification table is created. Non-quad properties corresponding to such reifications are added as columns to the existing r2d:TableMaps resulting from relationalization of the MVCBs and blank nodes. Reification of the Badge predicate of the ComplexLiteralBlankNode (CLBN) ReportingOfficers in Figure 2 is one such example where an OfficerName column (corresponding to the non-quad predicate of the reification node for Badge) is added to the Offence_ReportingOfficers TableMap that results from the relational transformation of the ReportingOfficers CLBN. Complex reification nodes are nodes where the non-quad predicates include one or more (nested) blank nodes. Due to the numerous types of such mixed combinations that are possible, it would be nearly impossible to arrive at an accurate normalized representation of the same. Hence, r2d:ComplexReificationNodes are processed by flattening their relational equivalents. Depending on whether Case (a) or Case (b) is SPARQLSelect = SELECT ?address_street, ?address_street_direction, ?address_block, , ? victim_gender, ?reportingOfficers_badge, ?reportingOfficers_badge_name The processing of regular columns for generation of SPARQL WHERE and FILTER clauses is described in [3]. The resulting SPARQL WHERE clause after processing of regular, non-reification columns as detailed in [3] is as follows: SPARQLWhere = WHERE { ?Offence ?Offence_Address . ?Offence_Address
doi:10.1007/978-3-540-76876-0_18 dblp:conf/geos/AlamSKT07 fatcat:o4atcn5scnftjgufberurb6gsy