Chris Bizer, Freie Universität Berlin
Richard Cyganiak, Freie Universität Berlin
Oliver Maresch, Technische Universität Berlin
Tobias Gauss, Freie Universität Berlin

TriQL.P - Trust Architecture

The TriQL.P - Trust Architecture aims at supporting users in their decision whether to trust or to distrust information found on the Semantic Web. The main objective of the architecture is to support a wide range of different context-, content- or reputation-based trust policies. Beside of the actual data, the architecture can also return explanation trees which explain why data should be trusted.

The architecture is based on the Named Graphs data model. The architecture consists of a query language and RDF vocabularies for defining trust policies, for representing explanation trees and for publishing information using digital signatures. It is currently being implemented on top of NG4J.

Note: This page is outdated as the TriQL.P Architecture has been replaced by the WIQA Framework.


News: 21-06-05: We have integrated The TriQL.P architecture into the Piggy Bank Semantic Web browser. See TriQL.P Trust Policies Enabled Semantic Web Browser for details.


Table of Contents

  1. References

1. Introduction

One of the main goals of the Semantic Web initiative is to build an infrastructure which allows applications to use data provided by large networks of independent data sources. Aggregating data from different sources always raises questions about data quality and data trustworthiness. Before the gathered information can be used, its quality and trustworthiness has to be evaluated according to the application-specific trust requirements. This trust decision can be based on:

The main objective of the TriQL.P Trust Architecture is to support a wide range of different, subjective and task-specific trust-policies based on information from all three categories.

The key factor in a user's trust decision is her understanding why given information is fulfilling her trust requirements. Explanation trees try to facilitate this understanding. Explanation trees contain information why query results are matching a given trust policy. Using this information, it is possible to implement something like Tim Berners-Lee's "Oh, yeah?"-button [BernersLee97], meaning that a user can click on every piece of information within an application and get an explanation why she should trust the information.

The TriQL.P architecture has the following four layers:

  1. A Information Integration Layer which handles the aggregation of information from different sources and adds provenance metadata to the information.
  2. A Repository Layer which stores the aggregated information. Graphs are stored in the knowledge base without evaluating their trustworthiness. Thus, the knowledge base will contain contradictionary information and different opinions on the same topic.
  3. The Query and Trust Evaluation Layer which handles the actual trust decisions using TriQL.P.
  4. The Application and Explanation Layer on which the retrieved information is used within an application context and which provides functionality to browse through explanation trees.

More information about the ideas behind TriQL.P is found in [BiOl04].


2. Building Blocks

The TriQL.P Trust Architecture consists of the following building blocks:

 

 


3. Current Development Status

The TriQL.P Trust Architecture is currently being implemented on top of NG4J.

3.1. Download

The current version of the code is found in the NG4J CVS repository http://cvs.sourceforge.net/viewcvs.py/ng4j/ng4j/src/de/fuberlin/wiwiss/trust/

Version Comment Release Date
V0.01 Initial version submitted to CVS.
The engine understands TPL policies and returns query results and explanations for policies that are only using graph patterns. It doesn't support COUNT() and METRIC() yet.
2005-02-16

 

3.2 Using the TriQL.P Trust Engine

The following code uses a graph set about financial institutions and financial news as example data.

The TPL policy suite below contains several trust policies that applications might want to use in a financial scenario.

The following code loads the example data and policy suite. Afterwards, it queries the data about all rdf:type triples using fin:Policy1 "Trust only information published by rating agencies". The query results are displayed together with their explanations.

....
 
// Load Trust Policy Suite
Model tplFile = ModelFactory.createDefaultModel();
tplFile.read("file:examples/finPolicies.n3", "N3");
PolicySuite suite = new PolicySuiteFromRDFBuilder(tplFile.getGraph()).buildPolicySuite();
 
// Load Example Data
NamedGraphSet source = new NamedGraphSetImpl();
source.read("file:examples/finData2.trig", "TRIG");
 
// Select Trust Policy
TrustPolicy policy = suite.getTrustPolicy("http://www.fu-berlin/suhl/bizer/financialscenario/policies/Policy1");  
// Run a Query against the Example Data using the Policy

TrustEngine trusted = new TrustEngine(source);
QueryResult result = trusted.find(
new Triple(Node.ANY, RDF.Nodes.type, Node.ANY), policy);
 
// Output Query Results
Iterator it = result.tripleIterator();
while (it.hasNext()) {
System.out.println(it.next());
}
 
// Output Explanations for all Triples
it = result.tripleIterator();
while (it.hasNext()) {
System.out.println("# ===============================================");
Triple triple = (Triple) it.next();
Explanation explanation = result.explain(triple);
Model m = ModelFactory.createDefaultModel();
m.getGraph().getBulkUpdateHandler().add(explanation.toRDF());
m.setNsPrefixes(PrefixMapping.Standard);
m.setNsPrefix("exp", EXP.getURI());
m.write(System.out, "N3");
}
 
....

When run, the example code will write this output to System.out.

 


4. Feedback

We are very interested in hearing your opinion about the TriQL.P Trust Architecture. Please send comments to:

Chris Bizer
chris@bizer.de
www.bizer.de

 


5. References

[Named-Graphs]
Named Graphs, http://www.w3.org/2004/03/trix/
[RDQL]
RDQL - A Query Language for RDF, Andy Seaborne, W3C Member Submission 9 January 2004. http://www.w3.org/Submission/2004/SUBM-RDQL-20040109/
[TriG]
The TriG Syntax, Christian Bizer, 2004. http://www.wiwiss.fu-berlin.de/suhl/bizer/TriG/
[TriQL]
The TriQL - A Query Language for Named Graphs, Christian Bizer, 2004. http://www.wiwiss.fu-berlin.de/suhl/bizer/TriQL/
[RDF-SYNTAX]
RDF/XML Syntax Specification (Revised), Beckett D. (Editor), W3C Recommendation, 10 February 2004. This version is http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/. The latest version is http://www.w3.org/TR/rdf-syntax-grammar/.
[BuSaKh01]
Peter Buneman, Sanjeev Khanna, Wang-Chiew Tan: Why and Where: A Characterization of Data Provenance. http://db.cis.upenn.edu/DL/whywhere.pdf
[GoHePa03]
J. Golbeck, J. Hendler, B. Parsia: Trust Networks on the Semantic Web. http://mindswap.org/papers/Trust.pdf
[RiAgDo03]
M. Richardson, R. Agrawal, P. Domingos: Trust Management for the Semantic Web. http://www.cs.washington.edu/homes/mattr/doc/iswc2003/iswc2003.pdf
[Berners-Lee97]
Tim Berners-Lee: Cleaning up the User Interface, Section - The "Oh, yeah?"-Button. http://www.w3.org/DesignIssues/UI.html
[BiOl04]
Christian Bizer, Radoslaw Oldakowski: Using Context- and Content-Based Trust Policies on the Semantic Web. WWW2004, New York, May 2004. http://www.wiwiss.fu-berlin.de/suhl/bizer/SWTSGuide/p747-bizer.pdf
[CaBiHaSt04]
J. Carroll, C. Bizer, P. Hayes, P. Strickler: Named Graphs, Provenance and Trust. http://www.wiwiss.fu-berlin.de/suhl/bizer/SWTSGuide/carroll-ISWC2004.pdf
[Marchiori04]
Massimo Marchiori: W5: The Five W's of the World Wide Web. http://www.w3.org/People/Massimo/papers/2004/w5_04.pdf
[CuWi99]
Yingwei Cui, Jennifer Widom: Practical Lineage Tracing in Data Warehouses. http://citeseer.nj.nec.com/cache/papers/cs/1704/http:zSzzSzwww-db.stanford.eduzSzpubzSzpaperszSztrace.pdf/cui99practical.pdf
[McGuinnessDaSilva03]
L. McGuinness, P. da Silva: Infrastructure for Web Explanations - ISWC 2003. http://www.cs.toronto.edu/semanticweb/resource/reference/iswc03bestpapers/iswc03-infrastructure-web-explanations.pdf
More references to resources about the trust and security issues arising from the Semantic Web are found in the
Semantic Web Trust and Security Resource Guide.


$Date: 2005/01/15 18:34:00 $
$Id: index.html,v 1.1 2005/01/15 18:34:00 bizer Exp $