Provenance Best Practice

From ITS
Jump to: navigation, search

Scope

This best practice document explains how the provRef data attribute of the ITS2.0 Provance data category can be used in conjunction with external provance records conformant to the W3C PROV recommendation.

The ITS2.0 Provenance data category allows inline identification of people, organisations and tools/services that were involved in the translation or translation revision of the annotated content. The inline provenance annotation does not support recording of the timing of translation or translation revision, additional attributes related to those activites nor record provenance information related to other types of activities related to internationalization and localization. For such use cases the provRef attribute can be used to point to such information in external provenance records. The ITS specification recommends the use of the W3C PROV specification for such records. This note therefore describes best practice for structuring PROV conformant external records.

The W3C Provenance Working Group

The Provenance WG has produces a set of specifications commonly referred to as 'PROV'. It consists of:

  • A PROV Primer
  • PROV-DM, the PROV data model for provenance
  • PROV-CONSTRAINTS, a set of constraints applying to the PROV data model
  • [1], a notation for provenance aimed at human consumption
  • PROV-O, the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF
  • PROV-AQ, the mechanisms for accessing and querying provenance

As there is a growing interest in the use of RDF by the L10N and I18N community, the rest of this document will focus on the use of the RDF mapping of PROV.

The data category identifies the selected content as corresponding to an entity in a provenance record by specifying the provenance URI of that entity as specified in PROV-AQ. Such an entity provenance record can possess additional attributes characterizing the content it represents. Entities in a provenance record can be associated with provenance activities, representing processes that either made use of or generated the entity. Example activity types could include: named entity recognition; source QA; machine translation; postediting or target QA. Provenance records can also specify agents that play a role in an activity, therefore have some responsibility for the activity having taken place and as a result can have that responsibility expressed by the entity being attributed to the agent. Examples of agent types could be: people acting as translators or posteditors; pieces of software such as machine translation engines, text analytics services or CAT tools; or organizations such as Language Service Providers. Provenance records can also associate timings with entity generation and usage events as well as derivative or collection relationships between entities.

External Provenance Usage Scenarios

This best practice document introduces the following ITS usage scenarios that can be complemented by use of external provenance records.

  • translation and translation agent review using the ITS provenance category
  • localisation quality assurance review recorded in external provenance records

This document also describes how external provenance records can be used with ITS mapped onto XLIFF.

It also indicates how external provenance records can be use with content that doesn't correspond to inline ITS markup. This is accomplished by using elements of the NLP Interchange Format.

Finally, it also explains how to interlink external provenance records that are related to the same content in a L10N workflow but are stored in different triple stores.

Example: Extended translation and translation review provenance

Best Practice Guidelines

Interlinking PROV record across Triple stores

It is possible for multiple entity provenance records pertaining to the same content to co-exist. This may be because two organizations record differing views of the provenance of the same content. For example, a localization client may view the whole localization workflow resulting in translated content as a single step, whereas a language service provider may record details of the QA process conducted prior to the that same content being delivered. Therefore, document content may be associated with more than one entity provenance-URI, each potentially from a different provenance store.

Example: RDF-PROV for linking multi-vendor quality reports

This example demonstrates how the Resource Description Framework (RDF) can can be used of integrate quality information from multiple sources. This is a prototype used to assess the viability of RDF for this role

In this use case addresses the following problems:

  • Integrate quality information from differ QA tools that are only available in different data schema
    • Benefit: Provide a single, but flexible, data schema so that QA data siloes from different tools can be integrated then then queried as a whole. This decouples the cost of generating job-level QA reports from the design of the value chain, the associated tool choices and resulting data siloes.
    • Benefit: This offers the potential for linking live quality data source across the value chain, specifically being able to link cusomter quality assessment to service provider assessments.
    • Benefit: Allows additional horizontal quality analyses by queries across multiple data sources, e.g. of errors per document, per language, per translator etc.

Example: RDF-PROV from XLIFF/ITS Roundtrip

This example shows how the use of ITS within an XLIFF-based workflow should map onto the PROV model. The example shows the PROV model in turtle format at each of the following stages of mapping an English file into French.

The following best practice has been adopted in this example:

  1. The provenance for each activity step is recorded in a separate bundle.
  2. All generated entities are given application specific sub-classes.
  3. Within each bundle, all provenance entity records that result from activity by the same agent are placed in a single collection, and their shared agent association is made to the collection rather than repeated to each member of the collection.

Extraction

Extracting the localizable content from the source file results in XLIFF file EXb-xliff-prov-rt-post-extract.xlf

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix its: <http://www.w3.org/2005/11/its/rdf#> .
@prefix itstype: <http://www.w3.org/TR/its-2.0/its#> .
@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .
@prefix str: <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix pl10n: <http://www.cngl.ie/ontologies/prov/l10n/rdf#> .
@prefix src: <https://github.com/finnle/ITS-2.0-Testsuite/blob/master/its2.0/xliffsamples/roundtrip-example/EX-xliff-prov-rt-1-src.html#>
@prefix :     <http://example.org#> .

:extract-bndl1 a prov:Bundle;
   prov:generatedAtTime "2012-05-24T09:30:00"^^xsd:dateTime;
   prov:wasAttributedTo :xliffProvLogger;
   
   a prov:Collection;
   prov:hadMember :xliffProvLogger, :c1;
.   

:xliffProvLogger
   a prov:SoftwareAgent;
   itsrdf:tool "CMS-LION"^^itstype:its-tool.type;
.

:c1 a prov:Collection;
     prov:hadMember  :su1, :su2, :su3;
. 

:su1 a pl10n:SourceUnit;
   prov:wasDerivedFrom src:offset_xxx_yyy;
   str:anchorOf "ITS, XLIFF and PROV Example";
   itsrdf:translate "no"^^itstype:its-translate.type
.

:su2 a pl10n:SourceUnit;
   prov:wasDerivedFrom src:offset_xxx_yyy;
   str:anchorOf "Have you ever dreamed of stepping on each of the six continents around the planet during a single, amazing trip? Our <g id="1">Around the World in 80 Days</g> travel package is specifically designed for this."
.

:su3 a pl10n:SourceUnit;
   prov:wasDerivedFrom src:offset_xxx_yyy;
   str:anchorOf "From the canyons of Arizona, to the Khmer temples deep in the jungle; from the tropical beaches of Queensland to the glaciers of Antarctica; or from the wild savanna of Africa to mysterious castles in the forests of Bohemia, our offer takes you in some of the most amazing places on our planet. In 80 days, you will see more of the world than most see through their entire lifetime!"
.

Segmentation

Segmenting the content results in XLIFF file EXc-xliff-prov-rt-post-seg.xlf

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix its: <http://www.w3.org/2005/11/its/rdf#> .
@prefix itstype: <http://www.w3.org/TR/its-2.0/its#> .
@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .
@prefix str: <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix pl10n: <http://www.cngl.ie/ontologies/prov/l10n/rdf#> .
@prefix src: <https://github.com/finnle/ITS-2.0-Testsuite/blob/master/its2.0/xliffsamples/roundtrip-example/EX-xliff-prov-rt-1-src.html#>
@prefix :     <http://example.org#> .
 
:segment-bndl2 a prov:Bundle;
   prov:generatedAtTime "2012-05-24T09:35:00"^^xsd:dateTime;
   prov:wasAttributedTo :xliffProvLogger;
   
   a prov:Collection;
   prov:hadMember :xliffProvLogger, :c2;
.   

:xliffProvLogger
   a prov:SoftwareAgent;
   itsrdf:tool "CMS-LION"^^itstype:its-tool.type;
.

:c2 a prov:Collection;
   prov:hadMember :s1, :s2, :s3, :s4, :s5;
   prov:wasGeneratedBy 
. 

:s1 a pl10n:Segment;
   prov:wasDerivedFrom :su1:offset_0_26;
   str:anchorOf "ITS, XLIFF and PROV Example";
   itsrdf:translate "no"^^itstype:its-translate.type;
.

:s2 a pl10n:Segment;
   prov:wasDerivedFrom :su2:offset_0_111;
   str:anchorOf "Have you ever dreamed of stepping on each of the six continents around the planet during a single, amazing trip?"
.

:s3 a pl10n:Segment;
   prov:wasDerivedFrom :su2:offset_113_219;
   str:anchorOf "Our <g id="1">Around the World in 80 Days</g> travel package is specifically designed for this."
.

:s4 a pl10n:Segment;
   prov:wasDerivedFrom :su3:offset_0_293;
   str:anchorOf "From the canyons of Arizona, to the Khmer temples deep in the jungle; from the tropical beaches of Queensland to the glaciers of Antarctica; or from the wild savanna of Africa to mysterious castles in the forests of Bohemia, our offer takes you in some of the most amazing places on our planet. "
.

:s5 a pl10n:Segment;
   prov:wasDerivedFrom :su3:offset_295_382;
   str:anchorOf "In 80 days, you will see more of the world than most see through their entire lifetime!"
.

Text Analysis

Text analysis of the content results in XLIFF file EXd-xliff-prov-rt-post-ta.xlf

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix its: <http://www.w3.org/2005/11/its/rdf#> .
@prefix itstype: <http://www.w3.org/TR/its-2.0/its#> .
@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .
@prefix str: <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix pl10n: <http://www.cngl.ie/ontologies/prov/l10n/rdf#> .
@prefix src: <https://github.com/finnle/ITS-2.0-Testsuite/blob/master/its2.0/xliffsamples/roundtrip-example/EX-xliff-prov-rt-1-src.html#>
@prefix :     <http://example.org#> .

:textAnalysis-bndl3 a prov:Bundle;
   prov:generatedAtTime "2012-05-24T09:40:00"^^xsd:dateTime;
   prov:wasAttributedTo :xliffProvLogger;
   
   a prov:Collection;
   prov:hadMember :xliffProvLogger, :c3, :taservice1;
.   

:xliffProvLogger
   a prov:SoftwareAgent;
   itsrdf:tool "CMS-LION"^^itstype:its-tool.type;
.

# Agent name is derived from the annotatorsRef value to taConfidence.

:taservice1
   a prov:SoftwareAgent;
   itsrdf:toolRef "http://enrycher.ijs.si"^^itstype:its-toolRef.type;
.

:c3 a prov:Collection;
   prov:hadMember :ta1, :ta2, :ta3;
   prov:generatedAtTime "2012-05-24T09:40:00"^^xsd:dateTime;
   prov:wasAttributedTo :taservice1;
. 

:ta1 a pl10n:AnalysedText;
    prov:wasDerivedFrom :s4:offset_20_26;
    str:anchorOf "Arizona";
    itsrdf:taConfidence "0.7"^^itstype:its-taConfidence.type;
    itsrdf:taClassRef "http://nerd.eurecom.fr/ontology#Place"^^itstype:its-taClassRef.type;
    itsrdf:taIdentRef "http://dbpedia.org/resource/Arizona"^^itstype:its-taIdentRef.type;
.

:ta2 a pl10n:AnalysedText;
    prov:wasDerivedFrom :s4:offset_106_126;
    str:anchorOf "Antarctica";
    itsrdf:taConfidence "0.7"^^itstype:its-taConfidence.type;
    itsrdf:taClassRef "http://nerd.eurecom.fr/ontology#Place"^^itstype:its-taClassRef.type;
    itsrdf:taIdentRef "http://dbpedia.org/resource/Antarctica"^^itstype:its-taIdentRef.type;
.

:ta3 a pl10n:AnalysedText;
    prov:wasDerivedFrom :s4:offset_196_201;
    str:anchorOf "Africa";
    itsrdf:taConfidence "0.7"^^itstype:its-taConfidence.type;
    itsrdf:taClassRef "http://nerd.eurecom.fr/ontology#Place"^^itstype:its-taClassRef.type;
    itsrdf:taIdentRef "http://dbpedia.org/resource/Africa"^^itstype:its-taIdentRef.type;
.

Terminology Extraction

Terminology of the content results in XLIFF file EXe-xliff-prov-rt-post-term.xlf

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix its: <http://www.w3.org/2005/11/its/rdf#> .
@prefix itstype: <http://www.w3.org/TR/its-2.0/its#> .
@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .
@prefix str: <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix pl10n: <http://www.cngl.ie/ontologies/prov/l10n/rdf#> .
@prefix src: <https://github.com/finnle/ITS-2.0-Testsuite/blob/master/its2.0/xliffsamples/roundtrip-example/EX-xliff-prov-rt-1-src.html#>
@prefix :     <http://example.org#> .

:termExtract-bndl4 a prov:Bundle;
   prov:generatedAtTime "2012-05-24T10:30:00"^^xsd:dateTime;
   prov:wasAttributedTo :xliffProvLogger;
   
   a prov:Collection;
   prov:hadMember :xliffProvLogger, :c4, termExtractor1;
.   

:xliffProvLogger
   a prov:SoftwareAgent;
   itsrdf:tool "CMS-LION"^^itstype:its-tool.type;
.

:termExtractor1
   a prov:SoftwareAgent;
   itsrdf:toolRef "http://www.cngl.ie/termchecker"^^itstype:its-tool.type;
.

:c4 a prov:Collection;
   prov:generatedAtTime "2012-05-24T09:40:00"^^xsd:dateTime;
   prov:wasAttributedTo :termExtractor1;
   prov:hadMember :trm1, :trm2, :trm3, :trm4;
. 

:trm1 a pl10n:Term;
    prov:wasDerivedFrom :ta1;
    str:anchorOf "Arizona";
    pl10n:hadTranslation "Arizona"
.

:trm2 a pl10n:Term;
    prov:wasDerivedFrom :ta2;
    str:anchorOf "Antarctica";
    pl10n:hadTranslation "Antarctique"
.

:trm3 a pl10n:Term;
    prov:wasDerivedFrom :ta3;
    str:anchorOf "Africa";
    pl10n:hadTranslation "Afrique"
.

:trm4 a pl10n:Term;
    prov:wasDerivedFrom :seg4:offset_216_223;
    str:anchorOf "Bohemia";
    pl10n:hadTranslation "Bohême"
.

Machine Translation #1

Machine translation of the content using Matrex results in XLIFF file EXf-xliff-prov-rt-post-MT-matrex.xlf

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix its: <http://www.w3.org/2005/11/its/rdf#> .
@prefix itstype: <http://www.w3.org/TR/its-2.0/its#> .
@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .
@prefix str: <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix pl10n: <http://www.cngl.ie/ontologies/prov/l10n/rdf#> .
@prefix src: <https://github.com/finnle/ITS-2.0-Testsuite/blob/master/its2.0/xliffsamples/roundtrip-example/EX-xliff-prov-rt-1-src.html#>
@prefix :     <http://example.org#> .

:mt-bndl5 a prov:Bundle;
   prov:generatedAtTime "2012-05-24T10:50:00"^^xsd:dateTime;
   prov:wasAttributedTo :xliffProvLogger;
   a prov:Collection;
   prov:hadMember :xliffProvLogger, :c5, :mt1, :mtProvider1;
.   

:xliffProvLogger
   a prov:SoftwareAgent;
   itsrdf:tool "CMS-LION"^^itstype:its-tool.type;
.

:mt1
   a prov:SoftwareAgent;
   itsrdf:tool "matrexv2"^^itstype:its-tool.type;
.

:mtProvider1
   a prov:Organisation;
   itsrdf:orgRef "http://www.cngl.ie"^^itstype:its-orgref.type;
.
:c5 a prov:Collection;
   prov:wasAttributedto :mt1;
   prov:wasAttributedto :mtProvider1;
   prov:hadMember :trn1, :trn2, :trn3, :trn4;
. 

:trn1 a pl10n:Translation;
   pl10n:wasTranslatedFrom :s2;
   itsrdf:mtconfidence "0.345"^^itstype:its-mtConfidence.type;
   str:anchorOf "N’avez-vous jamais rêvé de marcher sur les six continents, en un seul voyage magnifique autour de la planète ?";
.

:trn2 a pl10n:Translation;
   pl10n:wasTranslatedFrom :s4;
   itsrdf:mtconfidence "0.345"^^itstype:its-mtConfidence.type;
   str:anchorOf "Des canyons de l’Arizona, aux temples Khmers enfouis dans la jungle; des plages tropicales du Queensland aux glaciers d’Antarctique; ou de la savane africaine aux mystérieux château au cœur des forets de Bohême, notre offre vous amène aux endroits les plus incroyables de notre planète.";
.

:trn3 a pl10n:Translation;
   pl10n:wasTranslatedFrom :s5;
   itsrdf:mtconfidence "0.765"^^itstype:its-mtConfidence.type;
   str:anchorOf "En 80 jours, vous verrez plus du monde que la plupart voient dans l’espace de leur vie!" .

Machine Translation #2

Machine translation of the content using Bing results in XLIFF file EXg-xliff-prov-rt-post-MT-bing.xlf

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix its: <http://www.w3.org/2005/11/its/rdf#> .
@prefix itstype: <http://www.w3.org/TR/its-2.0/its#> .
@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .
@prefix str: <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix pl10n: <http://www.cngl.ie/ontologies/prov/l10n/rdf#> .
@prefix src: <https://github.com/finnle/ITS-2.0-Testsuite/blob/master/its2.0/xliffsamples/roundtrip-example/EX-xliff-prov-rt-1-src.html#>
@prefix :     <http://example.org#> .

:mt-bndl6 a prov:Bundle;
   prov:generatedAtTime "2012-05-24T10:55:00"^^xsd:dateTime;
   prov:wasAttributedTo :xliffProvLogger;
   
   a prov:Collection;
   prov:hadMember :xliffProvLogger, :c6, :mt2, :mtProvider2;
.   

:xliffProvLogger
   a prov:SoftwareAgent;
   itsrdf:tool "CMS-LION"^^itstype:its-tool.type;
.

:c6 a prov:Collection;
   prov:hadMember :trn5, :trn6, :trn7, :trn8;
. 

:mt2
   a prov:SoftwareAgent;
   itsrdf:tool "bingtranslate"^^itstype:its-tool.type;
.

:mtProvider2
   a prov:Organisation;
   itsrdf:orgRef "http://www.microsoft.com"^^itstype:its-orgref.type;
.
:c5 a prov:Collection;
   prov:wasAttributedto :mt2;
   prov:wasAttributedto :mtProvider2;
   prov:hadMember :trn1, :trn2, :trn3, :trn4;
. 

:trn5 a p10n:Translation;
   pl10n:wasTranslatedFrom :s2;
   str:anchorOf "N’avez-vous jamais rêvé de marcher sur les six continents, en un seul voyage magnifique autour de la planète ?";
.

:trn5 a p10n:Translation;
   pl10n:wasTranslatedFrom :s3;
   str:anchorOf "Depuis les canyons de l'Arizona, aux temples khmers profondes dans la jungle ; des plages tropicales du Queensland pour les glaciers de L'Antarctique ; ou de la savane sauvage d'Afrique à Châteaux mystérieux dans les forêts de Bohême, notre offre vous emmène dans certains endroits les plus étonnantes sur notre planète.";
.

:trn7 a pl10n:Translation;
   pl10n:wasTranslatedFrom :s4;
   str:anchorOf "Depuis les canyons de l'Arizona, aux temples khmers profondes dans la jungle ; des plages tropicales du Queensland pour les glaciers de L'Antarctique ; ou de la savane sauvage d'Afrique à Châteaux mystérieux dans les forêts de Bohême, notre offre vous emmène dans certains endroits les plus étonnantes sur notre planète.";
.

:trn8 a pl10n:Translation;
   pl10n:wasTranslatedFrom :s5;
   str:anchorOf "En 80 jours, vous pourrez voir plus de monde que la plupart Voir à travers leur vie entière !" .

Postediting

Postediting of the content using machine translation candidates results in XLIFF file EXi-xliff-prov-rt-post-PE.xlf

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix its: <http://www.w3.org/2005/11/its/rdf#> .
@prefix itstype: <http://www.w3.org/TR/its-2.0/its#> .
@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .
@prefix str: <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix pl10n: <http://www.cngl.ie/ontologies/prov/l10n/rdf#> .
@prefix src: <https://github.com/finnle/ITS-2.0-Testsuite/blob/master/its2.0/xliffsamples/roundtrip-example/EX-xliff-prov-rt-1-src.html#>
@prefix :     <http://example.org#> .

:pe-bndl7 a prov:Bundle;
   prov:generatedAtTime "2012-05-24T11:20:00"^^xsd:dateTime;
   prov:wasAttributedTo :xliffProvLogger;
   
   a prov:Collection;
   prov:hadMember :xliffProvLogger, :c7;
.   

:xliffProvLogger
   a prov:SoftwareAgent;
   itsrdf:tool "CMS-LION"^^itstype:its-tool.type;
.

:c7 a prov:Collection;
   prov:hadMember :trn9, :rev1, :rev2, :rev3, :rev4;
. 

:trn9 a p10n:Translation;
   prov:wasDerivedFrom :s1
.

:rev1 a p10n:TransRev;
   prov:wasRevisedFrom :trn1;
.

:rev2 a p10n:TransRev;
.

:rev3 a p10n:TransRev;
.

:rev4 a p10n:TransRev;
.

Translation Quality Assurance

Translation quality assurance of the content results in XLIFF file EX-xliff-prov-rt-post-lqi.xlf

Reassembly

Reassmbly of the content in the target language results in HTML5 file EXj-xliff-prov-rt-1-src.html

ITS-PROV-O Vocabulary

The basic PROV schema is structured according to the figure below (taken from the PROV Primer)

The following

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix str: <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix prov: <http://www.w3.org/ns/prov#> .

# SourceUnit is an a string extracted from a source document for the purposes of translating the text it contains.

:SourceUnit rdfs:subclassOf prov:Entity;
   rdfs:subClassOf str:String
.

# Segment is a string resulting from subdividing source content to a granularity designed to ease 
# translation. Typically this is a sentence, but may also be text from a heading 
# cell or a table.

:Segment rdfs:subclassOf prov:Entity;
   rdfs:subClassOf str:String
.

# AnalysedText is a string identified by some text analysis process
# as possessing some common semantic and/or lexical characteristics.

:AnalysedText rdfs:subclassOf prov:Entity;
   rdfs:subClassOf str:String
.
 
# Term is a string that is subject to terminology management with the
# intention of supporting consistent source content and the consistent translation 
# the source term.

:Term rdfs:subclassOf prov:Entity;
   rdfs:subClassOf str:String
.
 
# Translation is a string that was produced by translating another string from its
# source language into a specified target language 

:Translation rdfs:subclassOf prov:Entity;
   rdfs:subClassOf str:String
.

# TransRev is the revision of a string that was originally a Translation

:TransRev rdfs:subclassOf prov:Entity;
   rdfs:subClassOf str:String
.

:wasTranslatedFrom rdfs:subpropertyOf prov:wasDervivedFrom .

:hadTranslation  rdfs:subpropertyOf prov:hadDerivation .