This reverts commit 41d79d734c
.
pull/221/head
parent
6bc714d923
commit
cec55b22de
@ -1,242 +0,0 @@ |
||||
from typing import Union |
||||
|
||||
from .pyoxigraph import NamedNode as PyNamedNode |
||||
from .pyoxigraph import BlankNode as PyBlankNode |
||||
from .pyoxigraph import Literal as PyLiteral |
||||
from .pyoxigraph import Triple as PyTriple |
||||
from .pyoxigraph import Quad as PyQuad |
||||
from .pyoxigraph import DefaultGraph as PyDefaultGraph |
||||
|
||||
|
||||
class NamedNode(PyNamedNode): |
||||
"""An RDF `node identified by an IRI <https://www.w3.org/TR/rdf11-concepts/#dfn-iri>`_. |
||||
|
||||
:param value: the IRI as a string. |
||||
:raises ValueError: if the IRI is not valid according to `RFC 3987 <https://tools.ietf.org/rfc/rfc3987>`_. |
||||
|
||||
The :py:func:`str` function provides a serialization compatible with N-Triples, Turtle, and SPARQL: |
||||
|
||||
>>> str(NamedNode('http://example.com')) |
||||
'<http://example.com>' |
||||
""" |
||||
|
||||
def __init__(self, value: str) -> None: |
||||
... |
||||
|
||||
@property |
||||
def value(self) -> str: |
||||
"""the named node IRI. |
||||
|
||||
>>> NamedNode("http://example.com").value |
||||
'http://example.com' |
||||
""" |
||||
return super().value |
||||
|
||||
|
||||
class BlankNode(PyBlankNode): |
||||
"""An RDF `blank node <https://www.w3.org/TR/rdf11-concepts/#dfn-blank-node>`_. |
||||
|
||||
:param value: the `blank node ID <https://www.w3.org/TR/rdf11-concepts/#dfn-blank-node-identifier>`_ (if not present, a random blank node ID is automatically generated). |
||||
:raises ValueError: if the blank node ID is invalid according to NTriples, Turtle, and SPARQL grammars. |
||||
|
||||
The :py:func:`str` function provides a serialization compatible with NTriples, Turtle, and SPARQL: |
||||
|
||||
>>> str(BlankNode('ex')) |
||||
'_:ex' |
||||
""" |
||||
|
||||
def __init__(self, value: Union[str, None] = None) -> None: |
||||
... |
||||
|
||||
@property |
||||
def value(self) -> str: |
||||
"""the `blank node ID <https://www.w3.org/TR/rdf11-concepts/#dfn-blank-node-identifier>`_. |
||||
|
||||
>>> BlankNode("ex").value |
||||
'ex'""" |
||||
return super().value |
||||
|
||||
|
||||
class Literal(PyLiteral): |
||||
"""An RDF `literal <https://www.w3.org/TR/rdf11-concepts/#dfn-literal>`_. |
||||
|
||||
:param value: the literal value or `lexical form <https://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form>`_. |
||||
:param datatype: the literal `datatype IRI <https://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri>`_. |
||||
:param language: the literal `language tag <https://www.w3.org/TR/rdf11-concepts/#dfn-language-tag>`_. |
||||
:raises ValueError: if the language tag is not valid according to `RFC 5646 <https://tools.ietf.org/rfc/rfc5646>`_ (`BCP 47 <https://tools.ietf.org/rfc/bcp/bcp47>`_). |
||||
|
||||
The :py:func:`str` function provides a serialization compatible with NTriples, Turtle, and SPARQL: |
||||
|
||||
>>> str(Literal('example')) |
||||
'"example"' |
||||
>>> str(Literal('example', language='en')) |
||||
'"example"@en' |
||||
>>> str(Literal('11', datatype=NamedNode('http://www.w3.org/2001/XMLSchema#integer'))) |
||||
'"11"^^<http://www.w3.org/2001/XMLSchema#integer>' |
||||
""" |
||||
|
||||
def __init__( |
||||
self, |
||||
value: str, |
||||
datatype: Union[NamedNode, None] = None, |
||||
language: Union[str, None] = None, |
||||
) -> None: |
||||
... |
||||
|
||||
@property |
||||
def datatype(self) -> NamedNode: |
||||
"""the literal `datatype IRI <https://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri>`_. |
||||
|
||||
>>> Literal('11', datatype=NamedNode('http://www.w3.org/2001/XMLSchema#integer')).datatype |
||||
<NamedNode value=http://www.w3.org/2001/XMLSchema#integer> |
||||
>>> Literal('example').datatype |
||||
<NamedNode value=http://www.w3.org/2001/XMLSchema#string> |
||||
>>> Literal('example', language='en').datatype |
||||
<NamedNode value=http://www.w3.org/1999/02/22-rdf-syntax-ns#langString> |
||||
""" |
||||
return super().datatype |
||||
|
||||
@property |
||||
def language(self) -> Union[str, None]: |
||||
"""the literal `language tag <https://www.w3.org/TR/rdf11-concepts/#dfn-language-tag>`_. |
||||
|
||||
>>> Literal('example', language='en').language |
||||
'en' |
||||
>>> Literal('example').language |
||||
""" |
||||
return super().language |
||||
|
||||
@property |
||||
def value(self) -> str: |
||||
"""the literal value or `lexical form <https://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form>`_. |
||||
|
||||
>>> Literal("example").value |
||||
'example' |
||||
""" |
||||
return super().value |
||||
|
||||
|
||||
class Triple(PyTriple): |
||||
"""An RDF `triple <https://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple>`_. |
||||
|
||||
:param subject: the triple subject. |
||||
:param predicate: the triple predicate. |
||||
:param object: the triple object. |
||||
|
||||
The :py:func:`str` function provides a serialization compatible with NTriples, Turtle, and SPARQL: |
||||
|
||||
>>> str(Triple(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1'))) |
||||
'<http://example.com> <http://example.com/p> "1"' |
||||
|
||||
A triple could also be easily destructed into its components: |
||||
|
||||
>>> (s, p, o) = Triple(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1')) |
||||
""" |
||||
|
||||
def __init__( |
||||
self, |
||||
subject: Union[NamedNode, BlankNode, "Triple"], |
||||
predicate: NamedNode, |
||||
object: Union[NamedNode, BlankNode, Literal, "Triple"], |
||||
) -> None: |
||||
... |
||||
|
||||
@property |
||||
def subject(self) -> Union[NamedNode, BlankNode, "Triple"]: |
||||
"""the triple subject. |
||||
|
||||
>>> Triple(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1')).subject |
||||
<NamedNode value=http://example.com> |
||||
""" |
||||
return super().subject |
||||
|
||||
@property |
||||
def predicate(self) -> NamedNode: |
||||
"""the triple predicate. |
||||
|
||||
>>> Triple(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1')).predicate |
||||
<NamedNode value=http://example.com/p> |
||||
""" |
||||
return super().predicate |
||||
|
||||
@property |
||||
def object(self) -> Union[NamedNode, BlankNode, Literal, "Triple"]: |
||||
"""the triple object. |
||||
|
||||
>>> Triple(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1')).object |
||||
<Literal value=1 datatype=<NamedNode value=http://www.w3.org/2001/XMLSchema#string>> |
||||
""" |
||||
return super().object |
||||
|
||||
|
||||
class Quad(PyQuad): |
||||
""" |
||||
An RDF `triple <https://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple>`_. |
||||
in a `RDF dataset <https://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset>`_. |
||||
|
||||
:param subject: the quad subject. |
||||
:param predicate: the quad predicate. |
||||
:param object: the quad object. |
||||
:param graph: the quad graph name. If not present, the default graph is assumed. |
||||
|
||||
The :py:func:`str` function provides a serialization compatible with NTriples, Turtle, and SPARQL: |
||||
|
||||
>>> str(Quad(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1'), NamedNode('http://example.com/g'))) |
||||
'<http://example.com> <http://example.com/p> "1" <http://example.com/g>' |
||||
|
||||
>>> str(Quad(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1'), DefaultGraph())) |
||||
'<http://example.com> <http://example.com/p> "1"' |
||||
|
||||
A quad could also be easily destructed into its components: |
||||
|
||||
>>> (s, p, o, g) = Quad(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1'), NamedNode('http://example.com/g')) |
||||
""" |
||||
|
||||
def __init__( |
||||
self, |
||||
subject: Union[NamedNode, BlankNode, Triple], |
||||
predicate: NamedNode, |
||||
object: Union[NamedNode, BlankNode, Literal, Triple], |
||||
graph: Union[NamedNode, BlankNode, "DefaultGraph", None] = None, |
||||
) -> None: |
||||
... |
||||
|
||||
@property |
||||
def subject(self) -> Union[NamedNode, BlankNode, Triple]: |
||||
"""the quad subject. |
||||
|
||||
>>> Quad(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1'), NamedNode('http://example.com/g')).subject |
||||
<NamedNode value=http://example.com> |
||||
""" |
||||
return super().subject |
||||
|
||||
@property |
||||
def predicate(self) -> NamedNode: |
||||
"""the quad predicate. |
||||
|
||||
>>> Quad(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1'), NamedNode('http://example.com/g')).predicate |
||||
<NamedNode value=http://example.com/p> |
||||
""" |
||||
return super().predicate |
||||
|
||||
@property |
||||
def object(self) -> Union[NamedNode, BlankNode, Literal, Triple]: |
||||
"""the quad object. |
||||
|
||||
>>> Quad(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1'), NamedNode('http://example.com/g')).object |
||||
<Literal value=1 datatype=<NamedNode value=http://www.w3.org/2001/XMLSchema#string>> |
||||
""" |
||||
return super().object |
||||
|
||||
@property |
||||
def graph_name(self) -> Union[NamedNode, BlankNode, "DefaultGraph"]: |
||||
"""the quad graph name. |
||||
|
||||
>>> Quad(NamedNode('http://example.com'), NamedNode('http://example.com/p'), Literal('1'), NamedNode('http://example.com/g')).graph_name |
||||
<NamedNode value=http://example.com/g> |
||||
""" |
||||
return super().graph_name |
||||
|
||||
|
||||
class DefaultGraph(PyDefaultGraph): |
||||
"""The RDF `default graph name <https://www.w3.org/TR/rdf11-concepts/#dfn-default-graph>`_.""" |
Loading…
Reference in new issue