Copyright © 2012 Rakebul Hasan and Fabien Gandon
This work is licensed under a Creative Commons Attribution License. This copyright applies to the Ratio4TA Vocabulary Specification and accompanying documentation in RDF.Ratio4TA uses W3C's open and freely available Web standards: RDF technology and The PROV Ontology. Ratio4TA also uses the Named Graphs Vocabulary.
The Semantic Web applications use inferencial capibilities and distributed data to compute their results. These applications should provide explanations about how they obtian their results to ensure their effectiveness and increase user acceptance. Justifications enable generation of such explanations. Ratio4TA (interlinked justifications for triple assertions) is a lightweight vocabulary for encoding justifications. Ratio4TA specializes W3C PROV Ontology (PROV-O). As a result, justifications described using Ratio4TA are easily processable according to the W3C PROV standards.
Ratio4TA is an OWL ontology for describing justifications. Justifications are metadata about how a given piece data is obtained. Ratio4TA allows data publishers to publish metadata about their published data. Applications can describe their reasoning processes and links between their consumed and produced data using Ratio4TA.
Ratio4TA facilitates explanation of reasoning processes in a Web-scale. Applications can publish their data along with justification related metadata as Linked Data using Ratio4TA. Other applications can consume these data with justification metadata and provide explanations about their consumed data - generated from the justification metadata of the consumed data. In this way, applications can provide explanations of distributed reasoning processes by following the links between justifications.
Ratio4TA extends the W3C PROV Ontology (PROV-O Working Draft 03 May 2012). This promotes interoperability by enabling data consumers process justification metadata according to W3C PROV standards.
The figure below shows the classes and properties ofRatio4TA.
The boxes highlighted black show the terms of Ratio4TA in the figure above. In the rest of the document, we will provide an example encoding of justification, and provide definitions of the terms in Ratio4TA.
This example shows how an application can use Ratio4TA to produce justifications. The example application consumes data from DBPedia and GeoNames and infers new information. We show how to encode justifications using Ratio4TA in this scenario.
The following code segment shows the data that our example application consumes from DBPedia. Note that this data is inside a dereferenceable named graph which allows us to refer to this piece of data from justifications.
# From Dbpedia lodapp:inputData1 { dbpedia:Philadelphia owl:sameAs geonames:4560349 . }
The application also consumes the following GeoNames data.
# From GeoNames lodapp:inputData2 { geonames:4560349 gn:parentFeature geonames:5205788. } # geonames:4560349 is the GeoNames concept for Philadelphia . # geonames:5205788 is the GeoNames concept for Philadelphia County .
The application applies a rule to its consumed data to infer new information. The rule roughly translates to natural language as following:
IF ANY PLACE ?A IS SAME AS ?B AND ?B HAS A PARENT FEATURE ?C THEN ?A HAS A PARENT FEATURE ?C.
The application infers the following statement applying this rule.
# Derived lodapp:data1 { dbpedia:Philadelphia gn:parentFeature geonames:5205788. }
This application can use Ratio4TA to describe this derivation process. In the following code segment an encoding of this process using Ratio4TA. We use r4ta
as the namespace prefix for the terms of Ratio4TA in the example encoding.
# Justification lodapp:justification1 { # Type declarations lodapp:justification1 r4ta:justifies lodapp:data1 . lodapp:justification1 rdf:type r4ta:JustificationAccount . lodapp:reasoningProcess1 rdf:type r4ta:ReasoningProcess . lodapp:corese rdf:type r4ta:SoftwareApplication . lodapp:geoFeatureRule rdf:type r4ta:Rule . lodapp:result1 rdf:type r4ta:Result . lodapp:data1 rdf:type r4ta:OutputData . lodapp:inputData1 rdf:type r4ta:InputData . lodapp:inputData2 rdf:type r4ta:InputData . lodapp:derivation1 rdf:type r4ta:DataDerivation . # Reasoning process lodapp:reasoningProcess1 r4ta:performedBy lodapp:corese . lodapp:reasoningProcess1 r4ta:usedData lodapp:inputData1. lodapp:reasoningProcess1 r4ta:usedData lodapp:inputData2. lodapp:reasoningProcess1 r4ta:computed lodapp:result1 . lodapp:reasoningProcess1 r4ta:produced lodapp:data1 . # Computed result lodapp:result1 r4ta:resultReasoner lodapp:corese . # Output data lodapp:data1 r4ta:derivedFrom lodapp:inputData1 . lodapp:data1 r4ta:derivedFrom lodapp:inputData2 . lodapp:data1 r4ta:belongsTo lodapp:result1 . lodapp:data1 r4ta:derivedBy lodapp:derivation1 . # Data derivation lodapp:derivation1 r4ta:usedRule lodapp:geoFeatureRule . lodapp:derivation1 r4ta:wasInvolvedInComputing lodapp:result1 . lodapp:derivation1 r4ta:derivationReasoner lodapp:corese . lodapp:derivation1 r4ta:performedAsPartOf lodapp:reasoningProcess1 . }
From these justification metadata, we can trace back to the data from which the new statement was derived.
IRI: http://ns.inria.fr/ratio4ta/v2#Data
A data is a set of RDF statements.
IRI: http://ns.inria.fr/ratio4ta/v2#DataDerivation
A data derivation represents a derivation that is performed as part of a reasoning process.
IRI: http://ns.inria.fr/ratio4ta/v2#InputData
An input data represents an input data (a set of RDF statements) used by a reasoning process.
IRI: http://ns.inria.fr/ratio4ta/v2#JustificationAccount
A justification account is a set of RDF statement which justify how a data was derived.
IRI: http://ns.inria.fr/ratio4ta/v2#OutputData
An output data represents an output data by a reasoning process.
IRI: http://ns.inria.fr/ratio4ta/v2#ReasoningProcess
A reasoning process represents a reasoning process of a software application. A reasoning process uses input data and computes results. Each of these computed results includes output data. Data derivations may be performed as part of a reasoning process which may lead to producing new data that were not explicitly given in the input data.
IRI: http://ns.inria.fr/ratio4ta/v2#Result
A result represents a result computed by a reasoning proces.
IRI: http://ns.inria.fr/ratio4ta/v2#Rule
A rule represents a rule that a reasoning process uses for a data derivation.
IRI: http://ns.inria.fr/ratio4ta/v2#SoftwareApplication
A software application consumes and produces data.
IRI: http://ns.inria.fr/ratio4ta/v2#belongsTo
IRI: http://ns.inria.fr/ratio4ta/v2#computed
IRI: http://ns.inria.fr/ratio4ta/v2#contains
A reasoning process uses input data and computes results. Each of these computed results includes output data. The contains property specifies a result contains an output data.
IRI: http://ns.inria.fr/ratio4ta/v2#derivationReasoner
A software application performs derivations. The derivationReasoner property specifies a data derivation performed by a software application.
IRI: http://ns.inria.fr/ratio4ta/v2#derivedBy
A data derivation uses rules and derives output data. The derivedBy property specifies an output data derived by a data derivation.
IRI: http://ns.inria.fr/ratio4ta/v2#derivedFrom
A data derivation transforms a data into another, constructs a data into another, or updates a data, resulting in a new one. Note that by data we mean an instance of the Data class. The derivedFrom property specifies a data derived from a data.
IRI: http://ns.inria.fr/ratio4ta/v2#justifiedBy
A justification account contains statements about how an instance of data was derived. The justifiedBy property specifies a data justified by a justification account.
IRI: http://ns.inria.fr/ratio4ta/v2#justifies
A justification account contains statements about how an instance of data was derived. The justifies property specifies a justification account justifies a data.
IRI: http://ns.inria.fr/ratio4ta/v2#performedAsPartOf
A reasoning process performs data derivations. The performedAsPartOf specifies a data derivation is performed as part of a reasoning process.
IRI: http://ns.inria.fr/ratio4ta/v2#performedBy
A software application performs a reasoning process. The performedBy property specifies a reasoning process is performed by a software application.
IRI: http://ns.inria.fr/ratio4ta/v2#produced
A reasoning process computes results and a computed result contains output data. The produced property specifies a reasoning process produced an instance of output data.
IRI: http://ns.inria.fr/ratio4ta/v2#resultReasoner
A software application performs reasoning to computes results. The resultReasoner property specifies result has an associated software application.
IRI: http://ns.inria.fr/ratio4ta/v2#summarizationOf
A summarized justification can contain the most important information from several justifications. The summarizationOf property specifies a justification account is a summarization of a justification account. Since a summarized justification account is a summary of multiple justification accounts, there will be multiple statements describing the links between a summarized justification account and its original justification accounts using this property.
IRI: http://ns.inria.fr/ratio4ta/v2#usedData
A reasoning process uses input data to compute its results. The usedData property specifies a reasoning process used an instance of input data.
IRI: http://ns.inria.fr/ratio4ta/v2#usedRule
Data derivations use rules to perform derivations. The usedRule property specifies a data derivation used a rule.
IRI: http://ns.inria.fr/ratio4ta/v2#wasInvolvedComputing
A reasoning process performs data derivations to compute results. The wasInvolvedComputing property specifies a data derivation was involved in computing a result.
This visual layout has been adapted from the FOAF Vocabulary Specification, the PRISSMA Vocabulary Specification, and LODE, Live OWL Documentation Environment.