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

List of primitive datatypes #128

Closed polnischfrosch closed 6 months ago

polnischfrosch commented 7 months ago

Description:

Steps to reproduce:

Run "ListOfNumbers" test in "ToTTLTests"

        [Test]
        public static void ListOfNumbers()
        {
            List<int> numbers = new List<int>();
            numbers.Add(1);
            numbers.Add(2);
            numbers.Add(3);

            CustomObject co = new CustomObject();
            co.CustomData[m_graphSettings.TBoxSettings.CustomobjectsTypeKey] = "TestType";
            co.CustomData["testListNumbers"] = numbers;

            CSharpGraph cSharpGraph_customObj = Compute.CSharpGraph(new List<object>() { co }, m_graphSettings);
            string TTLGraph = cSharpGraph_customObj.ToTTL();

            Assert.IsTTLParsable(TTLGraph);
        }

Expected behaviour:

Test output

### http://individuals.address/bd2be111-6fae-4566-8f3c-550e2372bc58
<http://individuals.address/bd2be111-6fae-4566-8f3c-550e2372bc58> rdf:type owl:NamedIndividual ,    :TestType ;
        :BH.oM.Base.IBHoMObject.BHoM_Guid "bd2be111-6fae-4566-8f3c-550e2372bc58"^^xsd:string;
        :BH.oM.Base.IBHoMObject.CustomData "ew0KICAiJHR5cGUiOiAiQkguRW5naW5lLkFkYXB0ZXJzLlJERi5Db252ZXJ0K1R5cGVXcmFwcGVyYDFbW1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkRpY3Rpb25hcnlgMltbU3lzdGVtLlN0cmluZywgU3lzdGVtLlByaXZhdGUuQ29yZUxpYl0sW1N5c3RlbS5PYmplY3QsIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWJdXSwgU3lzdGVtLlByaXZhdGUuQ29yZUxpYl1dLCBSREZfRW5naW5lIiwNCiAgIlZhbHVlIjogew0KICAgICIkdHlwZSI6ICJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5EaWN0aW9uYXJ5YDJbW1N5c3RlbS5TdHJpbmcsIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWJdLFtTeXN0ZW0uT2JqZWN0LCBTeXN0ZW0uUHJpdmF0ZS5Db3JlTGliXV0sIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWIiLA0KICAgICJUeXBlIjogIlRlc3RUeXBlIiwNCiAgICAidGVzdExpc3ROdW1iZXJzIjogew0KICAgICAgIiR0eXBlIjogIlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLkludDMyLCBTeXN0ZW0uUHJpdmF0ZS5Db3JlTGliXV0sIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWIiLA0KICAgICAgIiR2YWx1ZXMiOiBbDQogICAgICAgIDEsDQogICAgICAgIDIsDQogICAgICAgIDMNCiAgICAgIF0NCiAgICB9DQogIH0NCn0="^^:BH.oM.Adapters.RDF.Base64JsonSerialized;
        :TestType.testListNumbers "ew0KICAiJHR5cGUiOiAiQkguRW5naW5lLkFkYXB0ZXJzLlJERi5Db252ZXJ0K1R5cGVXcmFwcGVyYDFbW1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLkludDMyLCBTeXN0ZW0uUHJpdmF0ZS5Db3JlTGliXV0sIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWJdXSwgUkRGX0VuZ2luZSIsDQogICJWYWx1ZSI6IHsNCiAgICAiJHR5cGUiOiAiU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uSW50MzIsIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWJdXSwgU3lzdGVtLlByaXZhdGUuQ29yZUxpYiIsDQogICAgIiR2YWx1ZXMiOiBbDQogICAgICAxLA0KICAgICAgMiwNCiAgICAgIDMNCiAgICBdDQogIH0NCn0="^^:BH.oM.Adapters.RDF.Base64JsonSerialized .
DiellzaElshani commented 7 months ago

Expected list of integers:


### https://uni-stuttgart.de/bd2be111-6fae-4566-8f3c-550e2372bc58
<https://uni-stuttgart.de/bd2be111-6fae-4566-8f3c-550e2372bc58> rdf:type owl:NamedIndividual ,  :TestType ;
        :BH.oM.Base.IBHoMObject.BHoM_Guid "bd2be111-6fae-4566-8f3c-550e2372bc58"^^xsd:string;
        :BH.oM.Base.IBHoMObject.CustomData "ew0KICAiJHR5cGUiOiAiQkguRW5naW5lLkFkYXB0ZXJzLlJERi5Db252ZXJ0K1R5cGVXcmFwcGVyYDFbW1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkRpY3Rpb25hcnlgMltbU3lzdGVtLlN0cmluZywgU3lzdGVtLlByaXZhdGUuQ29yZUxpYl0sW1N5c3RlbS5PYmplY3QsIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWJdXSwgU3lzdGVtLlByaXZhdGUuQ29yZUxpYl1dLCBSREZfRW5naW5lIiwNCiAgIlZhbHVlIjogew0KICAgICIkdHlwZSI6ICJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5EaWN0aW9uYXJ5YDJbW1N5c3RlbS5TdHJpbmcsIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWJdLFtTeXN0ZW0uT2JqZWN0LCBTeXN0ZW0uUHJpdmF0ZS5Db3JlTGliXV0sIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWIiLA0KICAgICJUeXBlIjogIlRlc3RUeXBlIiwNCiAgICAidGVzdExpc3ROdW1iZXJzIjogew0KICAgICAgIiR0eXBlIjogIlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLkludDMyLCBTeXN0ZW0uUHJpdmF0ZS5Db3JlTGliXV0sIFN5c3RlbS5Qcml2YXRlLkNvcmVMaWIiLA0KICAgICAgIiR2YWx1ZXMiOiBbDQogICAgICAgIDEsDQogICAgICAgIDIsDQogICAgICAgIDMNCiAgICAgIF0NCiAgICB9DQogIH0NCn0="^^:BH.oM.Adapters.RDF.Base64JsonSerialized;
        :TestType.testListNumbers <https://uni-stuttgart.de/f0978af5-3fd0-6e04-d055-f32d0ea51d17seq>. 

### https://uni-stuttgart.de/f0978af5-3fd0-6e04-d055-f32d0ea51d17seq
<https://uni-stuttgart.de/f0978af5-3fd0-6e04-d055-f32d0ea51d17seq> rdf:type owl:NamedIndividual,    :rdf:Seq;
    rdf:_1 "1"^^xsd:integer;
    rdf:_2 "2"^^xsd:integer;
    rdf:_3 "3"^^xsd:integer.

if we have a list of strings, just the last part would look different:

    rdf:_1 "Apple"^^xsd:string;
    rdf:_2 "Banana"^^xsd:string;
    rdf:_3 "Cherry"^^xsd:string.