Hi Jack,

you can execute the script up the RDF2XML step and export the resulting graph to a file to see what is actually part of that graph. I also suspect the SXML triples are not present. I assume you have a file with the sxml:element and sxml:attribute triples. Could you try to add this file to the script so that it directly becomes another import to the RDF2XML step, i.e. use ImportRDFFromWorkspace for the sxml file and then draw an edge from that file to the RDF2XML?

Holger



On 2021-07-02 9:06 am, Jack Hodges wrote:
I am doing something similar to Oleksandr and I know that this is a very old thread but such is life. I 'am' doing round tripping but here is my SM workflow:

XML source --> XML-2-RDF module --> RDF-2-RDF using SPIN Map --> Insert to KG --> DO Stuff with resuting KG --> RDF-2-RDF Reversal using SPIN Map --> RDF-2-XML module --> Export to remote.

Because (I think) the sxml tags are in the first conversion but not to my ontology, they are not there when I want to export the XML and the result is empty. I tried to watch Holger's really old movie but it no longer seems to exist. My next stop is the SM help page but any help would be appreciated.

Jack

On Thursday, March 9, 2017 at 7:08:03 AM UTC-8 [email protected] wrote:

    Hi Holger,

    thank you very much for help!

    Best regards,
    Oleksandr Mandryk


    On Thursday, March 9, 2017 at 1:11:38 AM UTC+1, Holger Knublauch
    wrote:

        Hi Oleksandr,

        we have discovered that the sml:RDFXML mode of sml:ReturnRDF
        indeed produces the same output as sml:RDFXMLAbbrev. Something
        must have changed in the underlying Jena writer's contract and
        this may have gone undetected for quite a while because most
        users have switched to Turtle or JSON-LD. I have just updated
        our code to use a different RDF/XML writer, and this fix will
        go into 5.3. The beta of 5.3 is planned for the end of this
        month, so if you urgently require a fix then I am afraid there
        is not much I can do right now.

        The alternative would be to produce the RDF triples using SWP
        - that would give you fine tuned control over the exact output
        but is of course also quite a bit of work to get right. I have
        attached an example that produces

        <rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#
        
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>"xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#
        <http://www.w3.org/2000/01/rdf-schema#>">
        <rdf:Descriptionrdf:about="http://aldi.de <http://aldi.de>">
        <rdfs:label>Test</rdfs:label>
        </rdf:Description>
        </rdf:RDF>

        using SWP. Call it using
        http://localhost:8083/tbl/swp?_viewClass=rdfXMLInSWP:Example
        <http://localhost:8083/tbl/swp?_viewClass=rdfXMLInSWP:Example>

        Another option would be to create the exact RDF/XML with some
        3rd party tool such as a Jena command line tool.

        Apologies for the inconvenience!

        Holger


        On 7/03/2017 20:48, Oleksandr Mandryk wrote:
        Hi Holger,
        thank you very much for your advice!

        I've created new SPARQLMotion script with such
        modules: spl:Argument -> sml:ApplyConstruct -> sml:ReturnRDF,
        where in  sml:ApplyConstruct I put this constructQuery:
        |
        CONSTRUCT {
        ?a ?b ?c .
        }
        WHERE {
            BIND (smf:buildURI("{?1}",?projectGraph)AS ?graphName).
            GRAPH ?graphName {
        ?a ?b ?c .
        }.
        }
        |

        and sml:RDFXMLAbbrev in sml:ReturnRDF

        but it produces the same output with sml:RDFXML.

        Also I tried to change arg:serialization
        in teamwork:ExportEntireProjectPlugin for ExportToRDF, but it
        also produces the same output as with sml:RDFXML.

        I'm working on EVN Version 5.2.0.v20160909-1520B.

        Thank you.

        Best regards,
        Oleksandr Mandryk

        On Tuesday, March 7, 2017 at 4:49:27 AM UTC+1, Holger
        Knublauch wrote:

            Try to use sml:serialization=sml:RDFXMLAbbrev at
            sml:ReturnRDF.


            In general, the main alternatives for producing arbitrary
            XML are Semantic XML (via sml:ConvertRDFToXML) or SWP.
            SWP can produce any XML, assuming you turn each XML
            element into a subclass of ui:Element and each XML
            attribute into corresponding argument properties at these
            elements.

            Holger


            On 7/03/2017 13:26, Oleksandr Mandryk wrote:
            Hi Hogler,

            as far as I remember the nested resources was the main
            issue. I haven't tried approach that you suggested but
            as I can see
            here
            http://www.topquadrant.com/sparqlmotion/lib.html#sml:ReturnRDF
            <http://www.topquadrant.com/sparqlmotion/lib.html#sml:ReturnRDF>
            there is no such property in sml:ReturnRDF.

            Could you please explain where I can specify sml:RDFXML
            / sml:RDFXMLAbbrev?

            BTW: Do we have any alternatives (just in case) to this
            approach? I mean if I would like to build totally
            different XML from taxonomy RDF what would be the most
            appropriate way to do it?

            Thank you very much!

            Best regards,
            Oleksandr Mandryk


            On Tuesday, March 7, 2017 at 4:07:44 AM UTC+1, Holger
            Knublauch wrote:

                Whether resources are nested or remain top-level is
                a configuration option in the RDF/XML writer. In
                sml:ReturnRDF, try using sml:RDFXML versus
                sml:RDFXMLAbbrev (the abbrev option will produce
                nested objects). Have you tried this or would there
                be other differences from your planned output?

                Holger

                On 7/03/2017 12:56, Oleksandr Mandryk wrote:
                Hi Hogler,
                thank you for reply!

                Actually RDF/XML is pretty different from what I
                need. The biggest issue with RDF/XML for me is
                hierarchical structure of relations between nodes,
                for example if PARENT_NODE is parent of CHILD_NODE
                in RDF/XML it will look like this:

                |
                <CHILD_NODE>

                 ... properties

                <broader>
                <PARENT_NODE>
                 ...
                <PARENT_NODE>
                </broader>


                </CHILD_NODE>
                |


                but I need something like this:

                |
                <CHILD_NODE>
                 ... properties


                <broaderid="PARENT_NODE">
                </CHILD_NODE>


                <PARENT_NODE>
                 ... properties
                <narrowerid="CHILD_NODE">
                <PARENT_NODE>
                |

                so each node should be separate XML element.
                Thanks.

                Best regards,
                Oleksandr Mandryk

                On Monday, March 6, 2017 at 11:13:00 PM UTC+1,
                Holger Knublauch wrote:



                    On 7/03/2017 0:40, Oleksandr Mandryk wrote:
                    Hi,

                    I'm trying to create a SPARQLMotion script
                    that will export specified taxonomy to the
                    custom XML output.

                    Currently my script is based no these modules:
                    *
                    *
                    *spl:Argument* -> *sml:ImportRDFFromWorkspace*
                    -> *sml:ConvertRDFToXML* -> *sml:ReturnXML*


                    But when I run this script I get only the
                    first (root) node of the specified projectGraph:

                    |
                    
<skos:Conceptxmlns:composite="http://www.topbraid.org/2007/05/composite.owl";
                    
<http://www.topbraid.org/2007/05/composite.owl>xmlns:skos="http://www.w3.org/2004/02/skos/core";
                    
<http://www.w3.org/2004/02/skos/core>skos:prefLabel=RootTestNode"/>
                    |

                    So I have a few questions:

                    1) Is my approach correct? I mean spl:Argument
                    -> sml:ImportRDFFromWorkspace ->
                    sml:ConvertRDFToXML -> sml:ReturnXML

                    2) Why I'm receiving only first node as result
                    but not all?

                    3) How to specify a custom template for the
                    XML, for example I need something like this:
                    |
                    <rdf:RDF
                    xmlns:ui="http://uispin.org/ui#";
                    <http://uispin.org/ui#>
                    xmlns:let="http://uispin.org/let#";
                    <http://uispin.org/let#>
                     ... >

                    
<rdf:Descriptionrdf:about="http://test.com/Concept_7c932ea3-2b5b-11b2-8037-eac2f42a0c5a";
                    
<http://test.com/Concept_7c932ea3-2b5b-11b2-8037-eac2f42a0c5a>>
                    
<rdfs:labelrdf:datatype="http://www.w3.org/2001/XMLSchema#string";
                    
<http://www.w3.org/2001/XMLSchema#string>>NodeLabel</rdfs:label>
                    
<rdf:typerdf:resource="http://www.w3.org/2004/02/skos/core#Concept";
                    <http://www.w3.org/2004/02/skos/core#Concept>/>

                    
<skos:broaderrdf:resource="http://test.com/#Concept_7c932e90-2b5b-11b2-8037-eac2f42a0c5a";
                    
<http://test.com/#Concept_7c932e90-2b5b-11b2-8037-eac2f42a0c5a>/>

                    
<skos:narrowerrdf:resource="http://test.com/#Concept_7c932ea8-2b5b-11b2-8037-eac2f42a0c5a";
                    
<http://test.com/#Concept_7c932ea8-2b5b-11b2-8037-eac2f42a0c5a>/>
                    
<skos:narrowerrdf:resource="http://test.com/#Concept_7c932ea5-2b5b-11b2-8037-eac2f42a0c5a";
                    
<http://test.com/#Concept_7c932ea5-2b5b-11b2-8037-eac2f42a0c5a>/>


                      ... other properties

                    </rdf:Description>

                    ...

                    </rdf:RDF>

                    |


                    This output looks very much like RDF/XML. How
                    does it differ, and could you simply use
                    sml:ReturnRDF?

                    Holger



                    Thank you very much!

                    Best regards,
                    Oleksandr Mandryk

-- You received this message because you are
                    subscribed to the Google Group "TopBraid Suite
                    Users", the topics of which include the
                    TopBraid Suite family of products and its base
                    technologies such as SPARQLMotion, SPARQL Web
                    Pages and SPIN.
                    To post to this group, send email to
                    [email protected]
                    ---
                    You received this message because you are
                    subscribed to the Google Groups "TopBraid
                    Suite Users" group.
                    To unsubscribe from this group and stop
                    receiving emails from it, send an email to
                    [email protected].
                    For more options, visit
                    https://groups.google.com/d/optout
                    <https://groups.google.com/d/optout>.

-- You received this message because you are
                subscribed to the Google Group "TopBraid Suite
                Users", the topics of which include the TopBraid
                Suite family of products and its base technologies
                such as SPARQLMotion, SPARQL Web Pages and SPIN.
                To post to this group, send email to
                [email protected]
                ---
                You received this message because you are
                subscribed to the Google Groups "TopBraid Suite
                Users" group.
                To unsubscribe from this group and stop receiving
                emails from it, send an email to
                [email protected].
                For more options, visit
                https://groups.google.com/d/optout
                <https://groups.google.com/d/optout>.

-- You received this message because you are subscribed to
            the Google Group "TopBraid Suite Users", the topics of
            which include the TopBraid Suite family of products and
            its base technologies such as SPARQLMotion, SPARQL Web
            Pages and SPIN.
            To post to this group, send email to
            [email protected]
            ---
            You received this message because you are subscribed to
            the Google Groups "TopBraid Suite Users" group.
            To unsubscribe from this group and stop receiving emails
            from it, send an email to [email protected].
            For more options, visit
            https://groups.google.com/d/optout
            <https://groups.google.com/d/optout>.

-- You received this message because you are subscribed to the
        Google Group "TopBraid Suite Users", the topics of which
        include the TopBraid Suite family of products and its base
        technologies such as SPARQLMotion, SPARQL Web Pages and SPIN.
        To post to this group, send email to [email protected]
        ---
        You received this message because you are subscribed to the
        Google Groups "TopBraid Suite Users" group.
        To unsubscribe from this group and stop receiving emails from
        it, send an email to [email protected].
        For more options, visit https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>.

--
You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/e212825c-575e-4eae-86ef-a9b612ee64adn%40googlegroups.com <https://groups.google.com/d/msgid/topbraid-users/e212825c-575e-4eae-86ef-a9b612ee64adn%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "TopBraid 
Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/topbraid-users/eca58319-46dc-fa44-6533-953598151116%40topquadrant.com.

Reply via email to