Chris Bizer, Freie Universität Berlin
Richard Cyganiak, Freie Universität
Berlin
Oliver Maresch, Technische Universität Berlin
Tobias Gauss, Freie
Universität Berlin
The TriQL.P browser is a general purpose RDF browser that supports users in exploring RDF datasets containing information from multiple information sources. Information can be filtered using a wide range of user-definable trust policies. Policies can be based on information context, information content, information or information source ratings, and on the presence or absence of digital signatures. In order to help users understand the filtering decisions, the browser can explain why a piece of information fulfils the selected trust policy.
The Semantic Web is an open, dynamic network of independent information providers all having different views of the world, different levels of knowledge, and different intentions. Thus, information found on the Semantic Web has to be seen as claims rather than as facts. Before using these claims, the information consumer has to evaluate their trustworthiness and determine the subset which he wants to trust for his specific task.
In everyday life, we use a wide range of trust policies for evaluating the trustworthiness of information [BiOl04]. These policies depend on the specific situation, our subjective preferences, our past experiences and the trust relevant information available: We might trust Andy on restaurants but not on computers, trust professors on their research field, believe foreign news only when they are reported by several independent sources and buy only from sellers on eBay who have more than 100 positive ratings.
The TriQL.P browser is a prototype which shows how a similar wide range of trust policies can be used on the Web.
The browser allows users to collect information together with provenance meta-information from the Web. The collected information can be filtered using a wide range of user-definable trust policies. In order to facilitate the user's understanding of the filtering decisions, the browser can create explanations why displayed information fulfils a selected trust policy.
The TriQL.P browser is based on the Piggy Bank [HuynhMazzocchi05] plug-in for the Firefox browser developed by the SIMILE project. Piggy Bank extracts Semantic Web content from Web content as users browse the Web. Wherever Semantic Web content is not available, Piggy Bank can invoke screenscrapers to re-structure information within web pages into Semantic Web format. The extracted information can be browsed, sorted and searched using a comfortable user-interface.
The TriQL.P browser extends Piggy Bank with the ability to:
The following screenshot shows the user interface of the TriQL.P browser. The two visible extensions to Piggy Bank are marked red.

Trust Policy Selection
The policy selection box allows users to select a policy from the policy suite currently loaded. After selecting a policy, all information in the local repository is filtered using this policy. Policies are specified using the TPL - Trust Policy Language described in Section 3.
Oh, yeah? Buttons
There is a "Oh, yeah?"-button [BernersLee97] next to each piece of information. Pressing this buttons opens a new browser window containing an explanation why the piece of information fulfils the selected trust policy.
The following screenshot shows an explanation for the policy "Trust only information that has been asserted by at least two different sources":

The links in the explanation allow the further exploration of the explanations's background:

There is a "TriQL.P Browser " menu in the "Extras" menu which allows users to:

The following chapter demonstrates how the TriQL.P browser can be used to explore Semantic Web information using different trust policies.
As running example, we are using an investor how is subscribed to a financial information service. This service collects business news, postings from business related news groups, stock quotes and company ratings from various information sources and sends them to the investor as a set of Named Graphs containing information together with provenance information about the original sources. Example dataset: FinancialScenarioData.trig Financial Data RDFS Schema used in the example dataset : finSchema.n3 Trust Policy Suite for the example: FinancialScenarioPolicies.n3 |
![]() |
Context-based trust policies use meta-information about the circumstances in which information has been claimed, e.g. who said what, when and why.
Let's assume that our investor has found an article saying that Intel ran into serious problems. In order to decide if he should trust the article, he investigates the article's background. The finds out that the article has been written by Peter Smith and queries for further information about the author.
The inconsistency that Peter Smith is American and German at the same time appears strange to our investor. He thus asks his browser to explain the provenance of both pieces of information.

The investor finds out that the statement that Peter Smith is German has been asserted by the Financial Times Deutschland, probably Peter Smith's employer. The statement that he is American has been stated by himself. As our investor thinks that people know their own nationality best, he decides to belief that Peter is American.
The investor than decides to check if the news about Intel have already affected the company's rating. As the investor prefers American rating agencies like Standard&Poor or Moody's to European ones, he changes the trust policy of his browser to "Trust information only from sources in the United States " and gets the following explanation for one rating:

After looking at the ratings, the investor checks the postings of two financial news groups for related information. As he is especially interested in the opinion of Intel employees about the problem, he decides to filter the postings using the policy "Use only information from information providers that work for Intel. The statement that an information providers works the company has to be asserted by Intel itself."

Reputation-based trust policies use ratings provided by other information consumers to infer the trustworthiness of information information or information sources.
Our investor decides to use a simple eBay-style reputation metric for filtering the articles about Intel. Using this policy he get's the following explanation for one atricle:

Our investor isn't convinced because of the small number of ratings available for this information provider using the eBay rating scheme. He thus changes his policy to the more sophisticated Tidial Trust reputation metric, which also uses another (hopefully bigger) set of ratings. Using this metric, he gets the following explanation for another article:

Some of the graphs in the dataset might be signed by the original information providers. Our investor verifies the signatures using a tool like NG4J and his set of trusted digital certificates.
Using the policy "Trust information only from graphs with a verifiable signature", he gets the following explanation why he should trust the download URL of an annual report:

The TriQL.P browser is based on:
The TriQL.P browser uses Named Graphs as internal data model and the Semantic Web Publishing Vocabulary (SWP) [CaBiHaSt05] for capturing provenance meta-information. SWP also provides terms to indicate whether a graph is asserted or quoted and to attach digital signatures to it.
Whenever the TriQL.P browser saves information from a webpage into the local repository, it creates a new named graph for this visit of the page and stores the current timestamp, the URL of the page and the authority (website URL) together with the actual information. The following TriG document contains two graphs created by saving information about a person from one webpage and the descriptions of two papers from another webpage.
@prefix swp: <http://www.w3.org/2004/03/trix/swp-2/> .
@prefix ns0: <http://www.ontoweb.org/ontology/1#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
<urn:uuid:8c845860-dce7-11d9-b9c0-00112ff60c7f> {
[] a foaf:Person ;
foaf:depiction <http://www.wiwiss.fu-berlin.de/suhl/ueber_uns/team/Fotos/Radek.jpg> ;
foaf:family_name "Oldakowski" ;
foaf:givenname "Radoslaw" ;
foaf:phone <tel:+49-30-838-52760> ;
foaf:workplaceHomepage
<http://www.wiwiss.fu-berlin.de/suhl/ueber_uns/team/radoslaw_oldakowski.htm> .
<urn:uuid:8c845860-dce7-11d9-b9c0-00112ff60c7f>
dc:date "2005-06-14T17:18:10+02:00" ;
swp:assertedBy <urn:uuid:8c845860-dce7-11d9-b9c0-00112ff60c7f> ;
swp:authority <http://www.wiwiss.fu-berlin.de> ;
swp:savedFrom <http://www.wiwiss.fu-berlin.de/suhl/ueber_uns/hauptseite_ueber_uns.htm> .
}
<urn:uuid:a2baaf80-dce7-11d9-b9c0-00112ff60c7f> {
<http://www.wiwiss.fu-berlin.de/suhl/bizer/pub/Bizer-D2RQ-ISWC2004.pdf> a ns0:Misc ;
ns0:author "Christian Bizer, Andy Seaborne" ;
ns0:title "D2RQ - Treating Non-RDF Databases as Virtual RDF Graphs" ;
ns0:url "http://www.wiwiss.fu-berlin.de/suhl/bizer/pub/Bizer-D2RQ-ISWC2004.pdf" ;
ns0:year "2004" .
<http://www.wiwiss.fu-berlin.de/suhl/bizer/pub/Bizer-NG4J-ESWC2005.pdf> a ns0:Misc ;
ns0:author "Christian Bizer, Richard Cyganiak, Rowland Watkins" ;
ns0:title "NG4J – Named Graphs API for Jena" ;
ns0:url "http://www.wiwiss.fu-berlin.de/suhl/bizer/pub/Bizer-NG4J-ESWC2005.pdf" ;
ns0:year "2005" .
<urn:uuid:a2baaf80-dce7-11d9-b9c0-00112ff60c7f>
dc:date "2005-06-14T17:18:57+02:00" ;
swp:assertedBy <urn:uuid:a2baaf80-dce7-11d9-b9c0-00112ff60c7f> ;
swp:authority <http://www.wiwiss.fu-berlin.de> ;
swp:savedFrom <http://www.wiwiss.fu-berlin.de/suhl/forschung/publikationen.htm> .
}
The TriQL.P browser uses policies to translate from queries against an imagined trusted graph into queries against the entire untrusted repository. Policies are expressed as query templates containing explanation templates.
The TPL - Trust Policy Language is used to define trust policies (TPL - RDFS Schema.n3). A trust policy consists of
The following policy accepts only information that have been asserted by at least two different sources.
:Policy6 rdf:type tpl:TrustPolicy ; tpl:policyName "At least two sources" ; tpl:policyDescription "Trust only information that has been asserted
by at least two different sources."; tpl:textExplanation "it was stated by at least two different sources. The sources are:" ; tpl:graphPattern [ tpl:pattern "(?GRAPH swp:assertedBy ?warrant . ?warrant swp:authority ?authority)"; tpl:textExplanation "@@?authority@@" ; ] ; tpl:constraint "COUNT(?authority) >= 2" .
The graph patterns and constraints of the policy are combined with a query triple pattern from the browser at run-time, resulting into a complete TriQL.P query. The following figure shows how a TriQL.P query for retrieving information about ex:Chris is build by combining a query triple pattern and a trust policy. The TriQL.P query is executed against the whole
untrusted repository. Afterwards, the ?PRED and ?OBJ variable bindings are combined with the query triple into result triples fulfilling the policy.

TPL uses a set of special variables to connect the policy part of a query with the query triple patterns from the browser.
| Variable | Description |
|---|---|
?GRAPH |
Name of graphs containing the query triple pattern. |
?SUBJ |
Subject of the query triple pattern. |
?PRED |
Predicate of the query triple pattern. |
?OBJ |
Object of the query triple pattern. |
?USER |
URI of the current user. |
The TriQL.P query language is an extension of TriQL. TriQL is similar to but predates SPARQL. The basic idea of TriQL is to use graph patterns to query across multiple graphs. In addition to basic graph pattern matching, TriQL.P offers two language constructs which are useful for expressing trust policies:
Metrics are implemented as plug-ins into the TriQL.P query engine. There are currently four metric plug-ins available: eBay, Tidal Trust, Appleseed and Pagerank.The metrics and their input parameters are described in trustMetrics.n3. The first three metrics require explicit ratings. The Pagerank metric avoids the necessity of explicit ratings but allows common RDF predicates like foaf:knows or rdf:seeAlso to be used for ranking.
The following example shows how the TidialTrust metric is used to retrieve information about Chris from authors which have a trust value above 0.5:
SELECT ?pred, ?obj
WHERE ?graph ( ex:Chris, ?pred, ?obj )
(?graph swp:assertedBy ?warrant .
?warrant swp:authority ? authority )
AND METRIC(tpl:TidalTrustMetric, ?USER, ?author, 0.5) .
Further TriQL.P example queries realizing different trust policies are found in TriQL.P - A Query Language for Querying Named Graphs Published by Untrustworthy Sources.
Each ‘Oh, yeah?’ button in the browser’s user interface corresponds to one trusted RDF triple. Clicking the button displays the explanation why this triple fulfils the selected trust policy. The explanation is generated using the tpl:textExplanation templates included in the policy definition.
Whenever the TriQL.P engine is asked to produce triples fulfilling a policy, it stores all variable bindings that matched the TriQL.P query. When asked to explain a decision, the engine groups the bindings into a justification tree according to the structure of the graph patterns in the policy. For generating the final explanation, the bindings are inserted into the tpl:textExplanation templates.

In addition to this basic explanation mechanism, METRIC() plug-ins generate their own explanations about their internal calculation process and the information used within this process.
More TPL policies are found in FinancialScenarioPolicies.n3
In order to run the TriQL.P browser, you have to install the TriQLP-Browser.xpi extension into your Firefox browser.
To testdrive the TriQL.P browser you can load our example data:
| Version | Comment | Release Date |
|---|---|---|
| V0.2 | Replaced MySQL with the
HSQLDB
database in order to make the installation easier. |
2005-08-17 |
| V0.1 | Initial release. |
2005-07-15 |
Status of the code
The TriQL.P browser is still a prototype. It works, but:
The following people have contributed to the development of the TriQL.P browser:
We are very interested in your opinion about the browser and thankful for additional ideas. Please send comments to:
Chris Bizer
chris@bizer.de
http://www.bizer.de/
Doap description of the project: doap-triqlp-browser.rdf
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/08/17 18:34:00 $
$Id: index.html,v 1.2 2005/08/17 18:34:00
bizer Exp $