Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(xmlupload): serialise all values with rdflib #1287

Merged
merged 63 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
5a58794
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
8314eb3
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
eb2a813
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
4cc604f
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
af62e0b
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
2299e26
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
2063da8
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
49c2f25
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
4547371
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
f336092
change
Nora-Olivia-Ammann Nov 20, 2024
e64929f
remove redundant code
Nora-Olivia-Ammann Nov 20, 2024
7f6b350
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
77c483c
link
Nora-Olivia-Ammann Nov 20, 2024
8483a13
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
d6fa0fe
-
Nora-Olivia-Ammann Nov 20, 2024
be0dc7b
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
11cf1c1
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
88d1830
-
Nora-Olivia-Ammann Nov 20, 2024
57f72da
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
8b0909f
Update serialise_rdf_value.py
Nora-Olivia-Ammann Nov 20, 2024
2850879
remove boolean
Nora-Olivia-Ammann Nov 20, 2024
5048b93
make interval rdf
Nora-Olivia-Ammann Nov 20, 2024
c2e021e
remove serialise value
Nora-Olivia-Ammann Nov 20, 2024
846d73a
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
f21b52c
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
ece186d
change value transformers
Nora-Olivia-Ammann Nov 20, 2024
2cb1213
move tests
Nora-Olivia-Ammann Nov 20, 2024
44fdec8
Update test_value_transformers.py
Nora-Olivia-Ammann Nov 20, 2024
a043d63
linting
Nora-Olivia-Ammann Nov 20, 2024
e528bc9
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
34eb344
add test
Nora-Olivia-Ammann Nov 20, 2024
7a4af49
Update test_transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
ef828cd
add tests
Nora-Olivia-Ammann Nov 20, 2024
af53750
Update test_transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
5fbf033
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
0e4ef8e
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
81b9c85
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
52bca42
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
d400439
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
2143bee
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
b36d950
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
eabbd6e
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
453fe40
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
8f46b58
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
d7802ec
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
f952e08
Commit all changes
Nora-Olivia-Ammann Nov 20, 2024
438ba5c
Update test_transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
f17dd88
Update test_transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
340c3d4
Update test_value_transformers.py
Nora-Olivia-Ammann Nov 20, 2024
dcaccc9
-
Nora-Olivia-Ammann Nov 20, 2024
1fb5046
Update test_value_transformers.py
Nora-Olivia-Ammann Nov 20, 2024
2ecbcc2
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
633fd72
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
c75c0db
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 20, 2024
7593e07
Update test_resource_creation.py
Nora-Olivia-Ammann Nov 20, 2024
02a3ac0
add error handling
Nora-Olivia-Ammann Nov 21, 2024
fc71956
change tests
Nora-Olivia-Ammann Nov 21, 2024
e6fdb66
Update test_resource_creation.py
Nora-Olivia-Ammann Nov 21, 2024
72b2c3f
Update test_transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 21, 2024
9fda32b
Update test_transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 21, 2024
24b5ba1
Update test_transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 21, 2024
030f1df
Update transform_resource_and_values_for_upload.py
Nora-Olivia-Ammann Nov 21, 2024
c323380
typing
Nora-Olivia-Ammann Nov 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,56 +1,44 @@
from abc import ABC
from abc import abstractmethod
from __future__ import annotations

from dataclasses import dataclass

from rdflib import RDF
from rdflib import BNode
from rdflib import Graph
from rdflib import Literal
from rdflib import Namespace
from rdflib import URIRef

KNORA_API = Namespace("http://api.knora.org/ontology/knora-api/v2#")


@dataclass(frozen=True)
class ValueRDF(ABC):
resource_bn: BNode
prop_name: URIRef
@dataclass
Nora-Olivia-Ammann marked this conversation as resolved.
Show resolved Hide resolved
class TransformedValue:
value: Literal | URIRef
permissions: Literal | None
comment: Literal | None

@abstractmethod
def as_graph(self) -> Graph:
"""Creates the value as rdflib graph"""

def _get_generic_graph(self, val_bn: BNode) -> Graph:
g = Graph()
g.add((self.resource_bn, self.prop_name, val_bn))
if self.permissions:
g.add((val_bn, KNORA_API.hasPermissions, self.permissions))
if self.comment:
g.add((val_bn, KNORA_API.valueHasComment, self.comment))
return g


class BooleanValueRDF(ValueRDF):
value: Literal

def as_graph(self) -> Graph:
val_bn = BNode()
g = self._get_generic_graph(val_bn)
g.add((val_bn, RDF.type, KNORA_API.BooleanValue))
g.add((val_bn, KNORA_API.booleanValueAsBoolean, self.value))
return g


class IntValueRDF(ValueRDF):
value: Literal

def as_graph(self) -> Graph:
val_bn = BNode()
g = self._get_generic_graph(val_bn)
g.add((val_bn, RDF.type, KNORA_API.IntValue))
g.add((val_bn, KNORA_API.intValueAsInt, self.value))
return g
prop_name: URIRef
permissions: str | None
comment: str | None


@dataclass
class RDFPropTypeInfo:
Nora-Olivia-Ammann marked this conversation as resolved.
Show resolved Hide resolved
knora_type: URIRef
knora_prop: URIRef


@dataclass
class Interval:
start: Literal
end: Literal


rdf_prop_type_mapper = {
"boolean": RDFPropTypeInfo(KNORA_API.BooleanValue, KNORA_API.booleanValueAsBoolean),
"color": RDFPropTypeInfo(KNORA_API.ColorValue, KNORA_API.colorValueAsColor),
"decimal": RDFPropTypeInfo(KNORA_API.DecimalValue, KNORA_API.decimalValueAsDecimal),
"geometry": RDFPropTypeInfo(KNORA_API.GeomValue, KNORA_API.geometryValueAsGeometry),
"geoname": RDFPropTypeInfo(KNORA_API.GeonameValue, KNORA_API.geonameValueAsGeonameCode),
"integer": RDFPropTypeInfo(KNORA_API.IntValue, KNORA_API.intValueAsInt),
"link": RDFPropTypeInfo(KNORA_API.LinkValue, KNORA_API.linkValueHasTargetIri),
"list": RDFPropTypeInfo(KNORA_API.ListValue, KNORA_API.listValueAsListNode),
"simpletext": RDFPropTypeInfo(KNORA_API.TextValue, KNORA_API.valueAsString),
Nora-Olivia-Ammann marked this conversation as resolved.
Show resolved Hide resolved
"time": RDFPropTypeInfo(KNORA_API.TimeValue, KNORA_API.timeValueAsTimeStamp),
"uri": RDFPropTypeInfo(KNORA_API.UriValue, KNORA_API.uriValueAsUri),
}
264 changes: 0 additions & 264 deletions src/dsp_tools/commands/xmlupload/models/serialise/serialise_value.py

This file was deleted.

Loading