@prefix this: . @prefix sub: . @prefix np: . @prefix dct: . @prefix rdf: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix orcid: . @prefix ns1: . @prefix prov: . @prefix foaf: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { rdf:type rdfs:label "is a - connects to class/type" . sub:anchorStatement a nt:IntroducedResource, nt:LocalResource; rdfs:label "Anchor statement for versioning" . sub:assertion a nt:AssertionTemplate; dct:description """

This template allows you to create Rosetta Statements following the metamodel described in \"Rosetta Statements: Simplifying FAIR Knowledge Graph Construction with a User-Centered Approach\".

Rosetta Statements model the structure of simple English natural language statements rather than attempting to represent a mind-independent reality. They prioritize:

  • Cognitive Interoperability: Easy to understand for domain experts
  • Findability: Supports search without requiring SPARQL knowledge
  • Semantic Interoperability: Standardized patterns for each statement type
  • User-Centered Design: Reflects natural language structure

Key Features:

  • N-ary Support: Handle statements with multiple objects (not just binary relations)
  • Dynamic Labels: Display as natural language sentences in user interfaces
  • Versioning Support: Track changes and editing history
  • Metadata Rich: Include confidence levels, negation, context, and provenance
  • Wikidata Integration: Use Wikidata terms for immediate usability

Statement Structure:

  • Subject: The main entity the statement is about
  • Predicate: Captured by the statement type/class
  • Objects: Up to 4 object positions (resources or literals)
  • Constraints: Type restrictions for each position

Example: \"This apple has a weight of 241.68 grams\" becomes a 'has-measurement' statement type with subject=apple, object1=weight (quality), object2=241.68 (value), object3=gram (unit).

This approach significantly lowers the barrier for domain experts to create FAIR knowledge graphs without requiring expertise in semantics, RDF, or ontology engineering.

"""; rdfs:label "Creating a Rosetta Statement following the natural language statement metamodel"; nt:hasNanopubLabelPattern "Rosetta Statement: ${dynamicLabelTemplate}"; nt:hasStatement sub:st01, sub:st02, sub:st03, sub:st04, sub:st05, sub:st06, sub:st07, sub:st08, sub:st09, sub:st10, sub:st11, sub:st12, sub:st13, sub:st14, sub:st15; nt:hasTag "Rosetta Statements"; nt:hasTargetNanopubType , . sub:confidenceLevel a nt:LiteralPlaceholder; rdfs:label "Confidence level (0.0-1.0)"; nt:hasDatatype xsd:decimal; nt:hasRegex "^(0(\\.\\d+)?|1(\\.0+)?)$" . sub:context a nt:ExternalUriPlaceholder; rdfs:label "Context (e.g., DOI of scholarly publication)" . sub:dynamicLabelTemplate a nt:LiteralPlaceholder; rdfs:label "Dynamic label template (e.g., 'SUBJECT has QUALITY of VALUE UNIT')"; nt:hasRegex ".{10,200}" . sub:isNegation a nt:LiteralPlaceholder; rdfs:label "\"true\" or \"false\""; nt:hasRegex "true|false" . sub:objectPosition1 a nt:ExternalUriPlaceholder; rdfs:label "First object (required or optional)" . sub:objectPosition2 a nt:ExternalUriPlaceholder; rdfs:label "Second object (optional)" . sub:objectPosition3 a nt:ExternalUriPlaceholder; rdfs:label "Third object (optional)" . sub:objectPosition4 a nt:ExternalUriPlaceholder; rdfs:label "Fourth object (optional)" . sub:sourceReference a nt:ExternalUriPlaceholder; rdfs:label "Source reference supporting this statement" . sub:st01 rdf:object ; rdf:predicate rdf:type; rdf:subject sub:statementInstance . sub:st02 rdf:object sub:statementType; rdf:predicate ; rdf:subject sub:statementInstance . sub:st03 a nt:OptionalStatement; rdf:object sub:dynamicLabelTemplate; rdf:predicate ; rdf:subject sub:statementInstance . sub:st04 rdf:object sub:subjectResource; rdf:predicate ; rdf:subject sub:statementInstance . sub:st05 a nt:OptionalStatement; rdf:object sub:subjectLabel; rdf:predicate rdfs:label; rdf:subject sub:subjectResource . sub:st06 rdf:object sub:objectPosition1; rdf:predicate ; rdf:subject sub:statementInstance . sub:st07 a nt:OptionalStatement; rdf:object sub:objectPosition2; rdf:predicate ; rdf:subject sub:statementInstance . sub:st08 a nt:OptionalStatement; rdf:object sub:objectPosition3; rdf:predicate ; rdf:subject sub:statementInstance . sub:st09 a nt:OptionalStatement; rdf:object sub:objectPosition4; rdf:predicate ; rdf:subject sub:statementInstance . sub:st10 a nt:OptionalStatement; rdf:object sub:confidenceLevel; rdf:predicate ; rdf:subject sub:statementInstance . sub:st11 a nt:OptionalStatement; rdf:object sub:context; rdf:predicate ; rdf:subject sub:statementInstance . sub:st12 a nt:OptionalStatement; rdf:object sub:isNegation; rdf:predicate ; rdf:subject sub:statementInstance . sub:st13 a nt:OptionalStatement, nt:RepeatableStatement; rdf:object sub:sourceReference; rdf:predicate ; rdf:subject sub:statementInstance . sub:st14 a nt:OptionalStatement; rdf:object sub:version; rdf:predicate ; rdf:subject sub:statementInstance . sub:st15 a nt:OptionalStatement; rdf:object sub:statementInstance; rdf:predicate ; rdf:subject sub:anchorStatement . sub:statementInstance a nt:EmbeddedResource, nt:LocalResource; rdfs:label "The Rosetta Statement instance" . sub:statementType a nt:GuidedChoicePlaceholder; rdfs:label "Type of Rosetta Statement (predicate-based classification)"; nt:possibleValuesFromApi "https://w3id.org/np/l/nanopub-query-1.1/api/find-things?type=https://w3id.org/rosetta/RosettaStatementClass" . sub:subjectLabel a nt:LiteralPlaceholder; rdfs:label "Human-readable label for subject"; nt:hasRegex ".{1,100}" . sub:subjectResource a nt:ExternalUriPlaceholder; rdfs:label "Subject resource (Wikidata URI or ontology term)" . sub:version a nt:LiteralPlaceholder; rdfs:label "Version identifier"; nt:hasRegex ".{1,50}" . rdfs:label "Rosetta Statement - a natural language statement modeled semantically" . rdfs:label "has confidence level - degree of certainty (0-1)" . rdfs:label "has context - scholarly publication or broader context" . rdfs:label "has dynamic label - template for natural language display" . rdfs:label "has source reference - supporting evidence" . rdfs:label "has statement type - connects to Rosetta Statement class" . rdfs:label "has version - links to statement version" . rdfs:label "is negation - whether this statement is negated" . rdfs:label "has subject - connects statement to its subject resource" . } sub:provenance { sub:assertion prov:generatedAtTime "2025-06-30T14:03:35.678726"^^xsd:dateTime; prov:wasAttributedTo orcid:0000-0002-1784-2920 . } sub:pubinfo { orcid:0000-0002-1267-0234 foaf:name "Tobias Kuhn" . orcid:0000-0002-1784-2920 foaf:name "Anne Fouilloux" . this: dct:created "2025-10-16T08:55:33.513Z"^^xsd:dateTime; dct:creator orcid:0000-0002-1267-0234; dct:license ; npx:supersedes ; npx:wasCreatedAt ; rdfs:label "Creating a Rosetta Statement following the natural language statement metamodel"; prov:generatedAtTime "2025-06-30T14:03:35.678726"^^xsd:dateTime; prov:wasAttributedTo orcid:0000-0002-1784-2920; prov:wasDerivedFrom ns1:RA8c438YvDtr5A4DfmB1SmvRQoeeR74RzXYVg3HXo4dR4; nt:wasCreatedFromProvenanceTemplate ns1:RAcm8OurwUk15WOgBM9wySo-T3a5h6as4K8YR5MBrrxUc; nt:wasCreatedFromPubinfoTemplate , , , , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD4Wj537OijfOWVtsHMznuXKISqBhtGDQZfdO6pbb4hg9EHMcUFGTLbWaPrP783PHv8HMAAPjvEkHLaOHMIknqhaIa5236lfBO3r+ljVdYBElBcLvROmwG+ZGtmPNZf7lMhI15xf5TfoaSa84AFRd5J2EXekK6PhaFQhRm1IpSYtwIDAQAB"; npx:hasSignature "UzZAdWfurBvw9ncCoUUFOdh3pHVhPBBvmZMcD3xn84NzwC0mv5/Valz3NaIKzTYNCBzW18nsQwcOblQXxmd0gmOQtr+OUhQto5sJ9ea9F9sHRdextP+7G6S0WlIXPnNXmAkKuCpsEQ3Ic6D22bCLzBsyn5wow7tElbS9NgmjWOs="; npx:hasSignatureTarget this:; npx:signedBy orcid:0000-0002-1267-0234 . }