Exemplo n.º 1
0
 def test_get_data_table_name(self):
     """Test getting the name of a data table from data type."""
     self.assertEqual(get_data_table_name(rdflib.XSD.integer),
                      data_tbl("XSD_integer"))
     self.assertEqual(get_data_table_name(rdflib.OWL.rational),
                      data_tbl("OWL_rational"))
     self.assertEqual(get_data_table_name(rdflib.RDF.PlainLiteral),
                      data_tbl("RDF_PlainLiteral"))
     self.assertEqual(get_data_table_name(rdflib.RDFS.Literal),
                      data_tbl("RDFS_Literal"))
     self.assertEqual(
         get_data_table_name(rdflib_cuba["_datatypes/VECTOR-2-2"]),
         data_tbl("VECTOR-2-2"))
     self.assertRaises(NotImplementedError, get_data_table_name,
                       rdflib.SKOS.prefLabel)
Exemplo n.º 2
0
    def _initialize(self):
        self.check_schema()
        self._default_create(self.NAMESPACES_TABLE)
        self._default_create(self.CUDS_TABLE)
        self._default_create(self.ENTITIES_TABLE)
        self._default_create(self.TYPES_TABLE)
        self._default_create(self.RELATIONSHIP_TABLE)
        self._load_namespace_indexes()

        from osp.core.utils import get_custom_datatypes
        datatypes = get_custom_datatypes() | {
            rdflib.XSD.integer, rdflib.XSD.boolean, rdflib.XSD.float,
            rdflib.XSD.string
        }
        for datatype in datatypes:
            self._do_db_create(
                table_name=get_data_table_name(datatype),
                columns=self.TRIPLESTORE_COLUMNS,
                datatypes={
                    "o": datatype,
                    **self.DATATYPES[self.DATA_TABLE_PREFIX]
                },
                primary_key=self.PRIMARY_KEY[self.DATA_TABLE_PREFIX],
                generate_pk=self.DATA_TABLE_PREFIX in self.GENERATE_PK,
                foreign_key=self.FOREIGN_KEY[self.DATA_TABLE_PREFIX],
                indexes=self.INDEXES[self.DATA_TABLE_PREFIX])
Exemplo n.º 3
0
 def test_get_data_table_name(self):
     """Test getting the name of a data table from data type."""
     self.assertEqual(get_data_table_name(rdflib.XSD.integer),
                      data_tbl("XSD_integer"))
     self.assertEqual(
         get_data_table_name(
             rdflib.URIRef("http://www.w3.org/2002/07/owl#rational")),
         data_tbl("OWL_rational"),
     )
     # Replaced rdflib.OWL.rational with URIRef('...'), as it seems to
     # have disappeared in rdflib 6.0.0.
     # TODO: return to original form when a fix for rdflib is available.
     self.assertEqual(
         get_data_table_name(rdflib.RDF.PlainLiteral),
         data_tbl("RDF_PlainLiteral"),
     )
     self.assertEqual(get_data_table_name(rdflib.RDFS.Literal),
                      data_tbl("RDFS_Literal"))
     self.assertEqual(
         get_data_table_name(rdflib_cuba["_datatypes/VECTOR-2-2"]),
         data_tbl("VECTOR-2-2"),
     )
     self.assertRaises(NotImplementedError, get_data_table_name,
                       rdflib.SKOS.prefLabel)
Exemplo n.º 4
0
    def migrate_data_triple_0_1(self, attr, datatype, cuds_idx, value):
        """Migrate a single data triple from v0 to v1."""
        from osp.core.session.db.sql_util import get_data_table_name

        ns_idx = self.get_ns_idx_0_1(attr.namespace.get_iri())
        attr_idx = self.get_entity_idx_0_1(ns_idx, attr)
        self.session._do_db_insert(
            get_data_table_name(datatype),
            ["s", "p", "o"],
            [cuds_idx, attr_idx, value],
            {
                "s": INT,
                "p": INT,
                "o": datatype
            },
        )
Exemplo n.º 5
0
 def data_table(datatype):
     return (get_data_table_name(datatype),
             dict(**self.DATATYPES[self.DATA_TABLE_PREFIX], o=datatype))