3 Replies Latest reply on Jan 21, 2009 12:31 PM by Randall Hauch

    Data Relationships

    Jeremy Smartt Newbie

      I noticed that your site describes that DNA can handle relationships, "understand the relationships and interdependencies", "visualize and understand the relationships between components". However, after looking through your documentation and running your examples I don't see how you can actually use DNA to discover any kind of relationships or interdependencies between different pieces of data. How does DNA do this?

        • 1. Re: Data Relationships
          Randall Hauch Master

          One way in which DNA does this is by "sequencing" content in the repository and then writing back to the repository the output of that process. For example, if a WSDL file were uploaded into the repository, a WSDL sequencer could extract the useful parts of that file (e.g., the messages, schemas, service instances, etc.) and create relationships in the repository (e.g., tying the message to a node that represents or contains the corresponding XSD schema used by the message).

          The fact that a sequencer can extract meaningful information from the uploaded files can even add tremendous value. Take the WSDL example again. A sequencer could simply construct a detailed graph representation of the messages and place that graph into the repository. Then, the repository becomes much more useful than simply a container for the WSDL files.

          Now, while we do not yet completed our JCR implementation, DNA sequencers can be used on top of Jackrabbit or other JCR implementations. For more information, see our Getting Started guide.

          Best regards,

          Randall

          • 2. Re: Data Relationships
            Jeremy Smartt Newbie

            Here is what I am actually getting at. Let's say we take the DNA examples with images and mp3s. Can you do something like the following to build relationships. In particular relationships between the data of the metadata. Notice how both the image and the mp3 have a new owner attribute. Also there is a new "Cover Art" node type that has the mp3 album as well . So, can you then build the relationship, based on the owner of an image, I can find the owners MP3s, and then from that get the cover art of the albums of the MP3s? Or can you do this with the "Graphs" or something?

            /**
            * Node type that defines the metadata for an image
            */
            [image:metadata] > nt:unstructured, mix:mimeTyped
            - image:formatName (string) mandatory
            < 'JPEG', 'GIF', 'PNG', 'BMP', 'PCX', 'IFF', 'RAS', 'PBM', 'PGM', 'PPM', 'PSD'
            - image:width (long)
            - image:height (long)
            - image:bitsPerPixel (long)
            - image:progressive (boolean)
            - image:numberOfImages (long)
            - image:physicalWidthDpi (long)
            - image:physicalHeightDpi (long)
            - image:physicalWidthInches (long)
            - image:physicalHeightInches (long)
            - foo:owner (string)

            // -------------------
            // DNA MP3 Sequencer
            // -------------------

            /**
            * Node type that defines the metadata for an MP3 audio file
            */
            [mp3:metadata] > nt:unstructured, mix:mimeTyped
            - mp3:title (string)
            - mp3:author (string)
            - mp3:album (string)
            - mp3:year (long)
            - mp3:comment (string)
            - foo:owner (string)

            /**
            * Node type that defines the metadata for a Cover Art pdf file
            */
            [pdf:metadata] > nt:unstructured, mix:mimeTyped
            - pdf:artist (string)
            - mp3:album (string)

            • 3. Re: Data Relationships
              Randall Hauch Master

              Right now the sequencing framework would not allow you to search for other information (e.g., find the owner's MP3s). We are hoping to correct that, and we'd welcome your thoughts and input. This is a very good use case.

              Feel free to add a feature request to our JIRA. Just be sure to be as complete as possible in your description. :-)

              Best regards,

              Randall