BHoM / RDF_Prototypes

Research project of the Cluster of Excellence "Integrative Computational Design and Construction for Architecture" (IntCDC) https://www.intcdc.uni-stuttgart.de/ **Project Name**: Knowledge Representation for Multi-Disciplinary Co-Design of Buildings. https://www.intcdc.uni-stuttgart.de/research/research-projects/rp-20/
GNU Lesser General Public License v3.0
9 stars 4 forks source link

TTL: List of Custom Types gets serialized as Base64 instead of appearing as `seq` #88

Closed DiellzaElshani closed 1 year ago

DiellzaElshani commented 1 year ago

Description:

Nested Objects end up as serialize To Base64 making a huge graph result with one single individual. Here is one example of trying to convert a City object which has two properties:Name and Buildings. While there are 22 Buildings none of them in known as an owl:individual. Buildings become ontology classes though.

Edited by @alelom : after deciphering the issue, the problem appears to be the following: when a Custom Type with a property that is a List of more than 1 Custom Types is input, the TTL encodes the List of Custom Types as a Base64Serialized DataProperty. Instead, the list of Custom Types should show as a seq of entries (rdf_0, rdf_1, etc).

Edited the title to reflect the problem.

Steps to reproduce:

See screenshots, and below zip which contains the TTL and gh file.

image image

Expected behaviour:

A list of Custom Types should show as a seq of entries (rdf_0, rdf_1, etc).

Test file(s):

bug.zip

alelom commented 1 year ago

This is what I get on main:

#################################################################
#    Individuals
#################################################################

# ABoxSettings:
# IndividualsBaseAddress: http://individuals.Address

### http://individuals.address/de297c2b-13f4-4a74-b36e-705b03c9554f
<http://individuals.address/de297c2b-13f4-4a74-b36e-705b03c9554f> rdf:type owl:NamedIndividual ,
        :City ;
        :City.HasBuilding <http://individuals.address/88b62627-57e4-4c44-afef-a683d9f5887a>  .

### http://individuals.address/88b62627-57e4-4c44-afef-a683d9f5887a
<http://individuals.address/88b62627-57e4-4c44-afef-a683d9f5887a> rdf:type owl:NamedIndividual ,
        :Building ;
        :Building.BuildingVolume "ew0KICAiJHR5cGUiOiAiQkguRW5naW5lLkFkYXB0ZXJzLlJERi5Db252ZXJ0K1R5cGVXcmFwcGVyYDFbW0JILm9NLkdlb21ldHJ5LlNwaGVyZSwgR2VvbWV0cnlfb01dXSwgUkRGX0VuZ2luZSIsDQogICJWYWx1ZSI6IHsNCiAgICAiJHR5cGUiOiAiQkgub00uR2VvbWV0cnkuU3BoZXJlLCBHZW9tZXRyeV9vTSIsDQogICAgIkNlbnRyZSI6IHsNCiAgICAgICIkdHlwZSI6ICJCSC5vTS5HZW9tZXRyeS5Qb2ludCwgR2VvbWV0cnlfb00iLA0KICAgICAgIlgiOiAwLjI1NDA2NTI1MjUxMzQzMjcsDQogICAgICAiWSI6IDAuNjUwOTk1MTc3ODY1NTUzNywNCiAgICAgICJaIjogMC4xNzUwNzE1Nzk1MjY5MjY3Ng0KICAgIH0sDQogICAgIlJhZGl1cyI6IDAuNjQ3OTU3OTc0NjQ4MDc3OQ0KICB9DQp9"^^:BH.oM.Adapters.RDF.Base64JsonSerialized;
        :Building.Sunlighthours "ew0KICAiJHR5cGUiOiAiQkguRW5naW5lLkFkYXB0ZXJzLlJERi5Db252ZXJ0K1R5cGVXcmFwcGVyYDFbW1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLkludDMyLCBTeXN0ZW0uUHJpdmF0ZS5Db3JlTGliXV0sIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWJdXSwgUkRGX0VuZ2luZSIsDQogICJWYWx1ZSI6IHsNCiAgICAiJHR5cGUiOiAiU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uSW50MzIsIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWJdXSwgU3lzdGVtLlByaXZhdGUuQ29yZUxpYiIsDQogICAgIiR2YWx1ZXMiOiBbDQogICAgICA5NjMzNDg4NTksDQogICAgICA2MzgwODAyMDMsDQogICAgICAtNTI3MjkwMTQ2DQogICAgXQ0KICB9DQp9"^^:BH.oM.Adapters.RDF.Base64JsonSerialized .
alelom commented 1 year ago

For the record, after my previous test, with @DiellzaElshani we clarified that this issue appears only for Lists of Custom Types. I edited the title and the description to clarify.