@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

rdfs:label a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/cp/owl/region.owl#hasRegion> a owl:ObjectProperty .

<http://www.essepuntato.it/2010/06/literalreification/hasLiteral> a owl:ObjectProperty;
  rdfs:comment "It connects individuals of any class to a reified literal."@en;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/region.owl#hasRegion>;
  rdfs:label "has literal"@en;
  owl:inverseOf <http://www.essepuntato.it/2010/06/literalreification/isLiteralOf>;
  rdfs:range <http://www.essepuntato.it/2010/06/literalreification/Literal> .

<http://purl.org/spar/literal> a owl:Ontology;
  <http://purl.org/dc/elements/1.1/creator> "Silvio Peroni", "Aldo Gangemi", "Fabio Vitali";
  <http://purl.org/dc/elements/1.1/description> """Recently within the Semantic Web community a new topic has been actively discussed: whether and how to allow literals to be subjects of RDF statements (http://www.w3.org/2001/sw/wiki/Literals as Subjects). This discussions failed to provide a unique and clear indication of how to proceed in that regard.

Although one of the suggestions coming out of the discussion was to explicitly include the proposal in a (future) specification of RDF, this topic is not actually new, particularly in ontology modelling. The needs to describe “typical” literals (specially strings) as individuals of a particular class has been addressed by a lot of models in past, such as Common Tag (through the class Tag), SIOC (through the classes Category and Tag), SKOS-XL (through the class Label), and LMM (through the class Expression). 

After considering the above-mentioned models and other related and inspiring ones, we have developed a pattern called literal reification to address this issue. It allows to express literal values as proper ontological individuals so as to use them as subject/object of any assertion within OWL models."""@en,
    <http://dwellonit.svn.sourceforge.net/svnroot/dwellonit/LiteralReification/literalreification_new.png>;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasUnitTest>
    """SELECT DISTINCT ?entity ?property
WHERE {
	?literal a litre:Literal .
	{ ?literal ?property ?entity } UNION { ?entity ?property ?literal }
}"""@en;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#relatedCPs>
    "http://www.ontologydesignpatterns.org/cp/owl/region.owl"^^xsd:anyURI;
  <http://purl.org/dc/elements/1.1/title> "Literal Reification pattern";
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasIntent> "This pattern promotes any literal as “first class object” in OWL by reifying it as a proper individual of the class litre:Literal."@en;
  <http://purl.org/dc/elements/1.1/date> "2011-03-23";
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasComponent>
    "http://www.ontologydesignpatterns.org/cp/owl/region.owl"^^xsd:anyURI;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#coversRequirements>
    """What is the context in which entities refer to a particular literal value?
What is the meaning of a particular value considering the context in which it is used?"""@en;
  owl:imports <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl>,
    <http://www.ontologydesignpatterns.org/cp/owl/region.owl>;
  rdfs:comment "The pattern literal reification is a modelling technique to address scenarios in which we need to bless particular literals, usually when applying data properties, in order to use them as subjects and/or full-fledged objects of semantic assertions."@en;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#isSpecializationOf>
    "http://www.ontologydesignpatterns.org/cp/owl/region.owl"^^xsd:anyURI;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#scenarios> """Modelling domains concerning descriptive tags, in which each tag may have more than one meaning depending on the context in which it is used.
Extending quickly the capabilities of a model by adding the possibility to make assertions on values, previously referred through data properties, without modifying it."""@en .

_:genid-30d046aca2b8444099191a258e53ac534198-75DF83E918BCB08344D7C981C533E730 a <http://www.w3.org/2003/11/swrl#DatavaluedPropertyAtom>;
  <http://www.w3.org/2003/11/swrl#propertyPredicate> <http://www.essepuntato.it/2010/06/literalreification/hasLiteralValue>;
  <http://www.w3.org/2003/11/swrl#argument2> <urn:swrl#v>;
  <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#y> .

<http://www.essepuntato.it/2010/06/literalreification/hasLiteralValue> a owl:FunctionalProperty,
    owl:DatatypeProperty;
  rdfs:domain <http://www.essepuntato.it/2010/06/literalreification/Literal>;
  rdfs:comment "It is used to specify the literal value that an individual of litre:Literal represents."@en;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/region.owl#hasRegionDataValue>;
  rdfs:range rdfs:Literal;
  rdfs:label "has literal value"@en .

<http://www.essepuntato.it/2010/06/literalreification/hasSameLiteralValueAs> a owl:SymmetricProperty,
    owl:ObjectProperty, owl:TransitiveProperty;
  rdfs:subPropertyOf owl:topObjectProperty;
  rdfs:range <http://www.essepuntato.it/2010/06/literalreification/Literal>;
  rdfs:comment "It relates the reified literal to another one that has the same literal value."@en;
  rdfs:label "has same literal value as"@en;
  rdfs:domain <http://www.essepuntato.it/2010/06/literalreification/Literal> .

_:genid-30d046aca2b8444099191a258e53ac534198-35D356FAB9B96CD11CD5F5330FD40798 a <http://www.w3.org/2003/11/swrl#DatavaluedPropertyAtom>;
  <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#x>;
  <http://www.w3.org/2003/11/swrl#propertyPredicate> <http://www.essepuntato.it/2010/06/literalreification/hasLiteralValue>;
  <http://www.w3.org/2003/11/swrl#argument2> <urn:swrl#v> .

_:genid-30d046aca2b8444099191a258e53ac534198-3C80AE0B4A5854407F4EC64EC362CD1F a <http://www.w3.org/2003/11/swrl#IndividualPropertyAtom>;
  <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#x>;
  <http://www.w3.org/2003/11/swrl#argument2> <urn:swrl#y>;
  <http://www.w3.org/2003/11/swrl#propertyPredicate> <http://www.essepuntato.it/2010/06/literalreification/hasSameLiteralValueAs> .

_:genid-30d046aca2b8444099191a258e53ac534198-B309F8884F2FC6366918FBE1D8F66126 a <http://www.w3.org/2003/11/swrl#AtomList>;
  rdf:first _:genid-30d046aca2b8444099191a258e53ac534198-35D356FAB9B96CD11CD5F5330FD40798;
  rdf:rest rdf:nil .

<http://www.essepuntato.it/2010/06/literalreification/isLiteralOf> a owl:ObjectProperty;
  rdfs:label "is literal of"@en;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/region.owl#isRegionFor>;
  rdfs:domain <http://www.essepuntato.it/2010/06/literalreification/Literal>;
  rdfs:comment "It connects the reified literal to the individuals that are using it."@en .

<urn:swrl#y> a <http://www.w3.org/2003/11/swrl#Variable> .

_:genid-30d046aca2b8444099191a258e53ac534198-8A6F87ABE34A739963AB3D1B381DC982 a <http://www.w3.org/2003/11/swrl#AtomList>;
  rdf:first _:genid-30d046aca2b8444099191a258e53ac534198-3C80AE0B4A5854407F4EC64EC362CD1F;
  rdf:rest _:genid-30d046aca2b8444099191a258e53ac534198-2A0D50F5354C6CD7D95F05F5E576110A .

_:genid-30d046aca2b8444099191a258e53ac534198-2A0D50F5354C6CD7D95F05F5E576110A a <http://www.w3.org/2003/11/swrl#AtomList>;
  rdf:first _:genid-30d046aca2b8444099191a258e53ac534198-75DF83E918BCB08344D7C981C533E730;
  rdf:rest rdf:nil .

rdfs:comment a owl:AnnotationProperty .

<http://www.essepuntato.it/2010/06/literalreification/Literal> a owl:Class;
  rdfs:comment "It describes reified literals, where the literal value they represent is speficied through the property litre:hasLiteralValue. Each individual of this class must always have a specified value."@en;
  rdfs:label "literal"@en;
  owl:equivalentClass _:genid-30d046aca2b8444099191a258e53ac534198-2F63B83E9EEE9E7971093514BF1F2F88;
  rdfs:subClassOf <http://www.ontologydesignpatterns.org/cp/owl/region.owl#Region> .

_:genid-30d046aca2b8444099191a258e53ac534198-2F63B83E9EEE9E7971093514BF1F2F88 a owl:Restriction;
  owl:cardinality "1"^^xsd:nonNegativeInteger;
  owl:onProperty <http://www.essepuntato.it/2010/06/literalreification/hasLiteralValue> .

<http://www.semanticweb.org/owlapi#nodeID> a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/cp/owl/region.owl#isRegionFor> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasUnitTest>
  a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#isSpecializationOf>
  a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/cp/owl/region.owl#Region> a owl:Class .

<http://purl.org/dc/elements/1.1/creator> a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasComponent>
  a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasIntent> a
    owl:AnnotationProperty .

_:genid-30d046aca2b8444099191a258e53ac534198-A073618FF61107403D8E885ADB3B0063 a <http://www.w3.org/2003/11/swrl#Imp>;
  <http://www.w3.org/2003/11/swrl#body> _:genid-30d046aca2b8444099191a258e53ac534198-8A6F87ABE34A739963AB3D1B381DC982;
  <http://www.w3.org/2003/11/swrl#head> _:genid-30d046aca2b8444099191a258e53ac534198-B309F8884F2FC6366918FBE1D8F66126 .

<http://purl.org/dc/elements/1.1/title> a owl:AnnotationProperty .

<http://purl.org/dc/elements/1.1/description> a owl:AnnotationProperty .

<http://purl.org/dc/elements/1.1/date> a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#relatedCPs>
  a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#coversRequirements>
  a owl:AnnotationProperty .

<urn:swrl#v> a <http://www.w3.org/2003/11/swrl#Variable> .

<urn:swrl#x> a <http://www.w3.org/2003/11/swrl#Variable> .

<http://purl.org/dc/elements/1.1/contributor> a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/cp/owl/region.owl#hasRegionDataValue> a owl:DatatypeProperty .

owl:topObjectProperty a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#scenarios> a
    owl:AnnotationProperty .
