Exemplo n.º 1
0
def literal_rdf_representation(literal):
    value = str(literal.value) if literal.value else literal
    if literal.langtag:
        #  a language tag can only go with prov:InternationalizedString
        return RDFLiteral(value, lang=str(literal.langtag))
    else:
        datatype = literal.datatype
        if "base64Binary" in datatype.uri:
            value = literal.value.encode()
        return RDFLiteral(value, datatype=datatype.uri)
Exemplo n.º 2
0
def literal_rdf_representation(literal):
    value = six.text_type(literal.value) if literal.value else literal
    if literal.langtag:
        #  a language tag can only go with prov:InternationalizedString
        return RDFLiteral(value, lang=str(literal.langtag))
    else:
        datatype = literal.datatype
        if 'base64Binary' in datatype.uri:
            if six.PY2:
                value = base64.standard_b64encode(value)
            else:
                value = literal.value.encode()
        return RDFLiteral(value, datatype=datatype.uri)
Exemplo n.º 3
0
 def encode_rdf_representation(self, value):
     if isinstance(value, URIRef):
         return value
     elif isinstance(value, pm.Literal):
         return literal_rdf_representation(value)
     elif isinstance(value, datetime.datetime):
         return RDFLiteral(value.isoformat(), datatype=XSD['dateTime'])
     elif isinstance(value, pm.QualifiedName):
         return URIRef(value.uri)
     elif isinstance(value, pm.Identifier):
         return RDFLiteral(value.uri, datatype=XSD['anyURI'])
     elif type(value) in LITERAL_XSDTYPE_MAP:
         return RDFLiteral(value, datatype=LITERAL_XSDTYPE_MAP[type(value)])
     else:
         return RDFLiteral(value)
Exemplo n.º 4
0
 def to_rdf(self, g: Graph, emit_type_arc: bool = False) -> BNode:
     # _:x rdf:type owl:Restriction .
     # _:x owl:onProperty T(OPE) .
     # _:x owl:hasSelf "true"^^xsd:boolean .
     x = BNode()
     g.add((x, RDF.type, OWL.Restriction))
     g.add((x, OWL.onProperty, self.objectPropertyExpression.to_rdf(g)))
     g.add((x, OWL.hasSelf, RDFLiteral(True)))
     return x
Exemplo n.º 5
0
 def to_rdf(self, g: Graph) -> BNode:
     """
     _:x rdf:type owl:Restriction .
     _:x owl:onProperty T(OPE) .
     _:x owl:hasSelf "true"^^xsd:boolean .
     :param g: the RDF graph
     :return: a BNode
     """
     rval = BNode()
     g.add((rval, RDF.type, OWL.Restriction))
     g.add((rval, OWL.onProperty, self.objectPropertyExpression.to_rdf(g)))
     g.add((rval, OWL.hasSelf, RDFLiteral(True)))
     return rval