5,530,111 members and growing! (15,796 online)
Email Password   helpLost your password?
Languages » XML » General     Intermediate

SNIX - Social Networking Syndication- One profile to rule them all

By Lawrence Botley

SNIX - an XML language that allows users of social networking sites to update a single profile and and can then be retrived to automaticall update their MySpace, YouTube, Facebook (or whatever) profile
Javascript, XML, C#, HTML, Windows, .NET, Visual Studio, ASP.NET, Dev

Posted: 25 Jan 2007
Updated: 7 Aug 2007
Views: 28,487
Bookmarked: 10 times
Announcements
Want a new Job?



Search    
Advanced Search
Sitemap
10 votes for this Article.
Popularity: 3.33 Rating: 3.33 out of 5
2 votes, 20.0%
1
2 votes, 20.0%
2
0 votes, 0.0%
3
2 votes, 20.0%
4
4 votes, 40.0%
5
Note: This is an unedited contribution. If this article is inappropriate, needs attention or copies someone else's work without reference then please Report This Article

Introduction

So most of us use multiple social networking sites and we're so bored of the laborious task of updating several profiles! Wouldn't we rather update one single profile?

Why not an open source XML language to incorporate all of your profile information (including photos) into one hosted XML document that can be syndicated across multiple social networking sites? Some sites already use a "MySpace import" function that screen-scrapes a user profile page for their details… (UGH Dirty!) but creating a standardized open source XML schema or creating a web service and allow restricted access are much better ideas!

Pre-register for SNIX and related social networking technologies

But I only use MySpace, why do I need more than one social networking site?

Well, it may be true that only wish to use a single site for the simple reasons but some social networking sites such as www.wayn.com are specific in their service and although you may wish to use the faculties to let people know where you are and what you are doing (in wayn.com instance) you may not want to fill out all your information again or even leave a link your myspace profile. Streaming Video Social networking sites such as YouTube.com and livevideo.com offer us the facility to view comments on videos, if we wish to sign up as a member, just to make a few comments we are automatically discredited by other users who may read or answer the comment knowing nothing of your background or from what influence your comment was grounded on.

So why would social networking sites such as MySpace want to use a system like this, when it encourages users to move elsewhere, breaking their technology lock-in?

Well, Do we want to be locked into a particular Social networking technology? MySpace was once seen as the be-all and end-all of networking sites due to it's size and media hype but has been quickly moved aside by new players such as YouTube. What's next to come? One can only fantasize what sort of medium will be driving the next craze but by forcing a standard on these giants we would pressure them into using the standard or be left behind. Of course it may take time for Social Networking sites to take up the technology as standard but what if in the mean time we created a few Web based macros that updated our profiles by submitting the parsed XML profile information to the server or even populated HTML form textbox's and other form objects through JavaScript within the sites update page.

One thing that is for sure, Social Networking sites of all sorts are cropping up fast and staying loyal to one site because of their lock-in is a shame. We should be in control of our content and not locked in through our time and effort restraints.

Bring On SNIX

SNIX - Social Netwoking Information Exchange is a XML document that allows users to update a hosted single XML file. Social Networking sites can then grab the XML document and automatically update the users profile. Simple!.

Below is an XML document and the language schema that defines SNIX. By no means is anything set in stone, there may be items that need renameing, removing or additional nodes or attributes that need adding or refactoring but please dig in and let me know what you think! I'm fully open to all you sceptics out that feel that this is an impractical use of technology.. You know who you are..

SNIX paradigm

Example of a simple SNIX feed

<?xml version="1.0" encoding="UTF-8"?>
<profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="C:\DOCUME~1\Main\Desktop\Schema.xsd">
    <firstname>Lawrence</firstname>
    <lastname>Botley</lastname>
    <dob>1979-08-06</dob>
    <urls>
        <url>
            <title>My home page</title>
            <address>http://www.customcontrolfreak.com</address>
        </url>
        <url>
            <title>MySpace</title>
            <address>http://www.myspace.com/firedog55</address>
        </url>
    </urls>
    <location>
        <country>UK</country>
        <city>Brighton</city>
    </location>
    <introduction>Hi, My name is Lawrence and I am a Computer Science and A.I.
 graduate currenty finishing a Masters in Information Technology for eCommerce</introduction>
    <interests>Drumming, Guitar and snowboarding</interests>
    <!-- The persons favourite movies -->
    <favouritemovies>
        <movie name="The Terminator">
            <year>1984</year>
            <actors>
                <actorname>Anold Schwarzengger</actorname>
                <actorname>Linda Hamelton</actorname>
            </actors>
            <comments>Greates movie ever made</comments>
        </movie>
        <movie name="Aliens">
            <year>1986</year>
            <actors>
                <actorname>sigourney weaver</actorname>
            </actors>
            <comments>Kick Ass movie</comments>
        </movie>
    </favouritemovies>
    <!-- The persons favourite tv programs-->
    <favouritetvshow>
        <tvshow>
            <name>Nathan Barley</name>
            <channel>Channel 4</channel>
        </tvshow>
        <tvshow>
            <name>garth marenghi's  Dark Place</name>
            <channel>Channel 4</channel>
        </tvshow>
    </favouritetvshow>
    <!-- The persons favourite band or artist -->
    <favouritemusic>
        <music>Alice in Chains</music>
    </favouritemusic>
    <!-- The persons favourite music albums -->
    <favouritealbums>
        <album>
            <name>Appetite for desruction</name>
            <band>Guns n roses</band>
            <year>1987</year>
        </album>
    </favouritealbums>
    <!-- The persons favourite books-->
    <favouritebooks>
        <book>
            <title>The Singularity is near</title>
            <year>2006</year>
            <authors>
                <name>Ray Kurzweil</name>
            </authors>
        </book>
        <book>
            <title>hacking matter</title>
            <year>2004</year>
            <authors>
                <name>Wil McCarthy</name>
            </authors>
        </book>
    </favouritebooks>
    <!-- A list of images for the profile with comments, date and image attributes-->
    <images>
        <image>
            <imageformat>jpg</imageformat>
            <width>800</width>
            <height>600</height>
            <caption>Snowboarding in france</caption>
            <date>2004-08-06T09:45:15</date>
            <data>
                    FAEKLFJ389TC952TM2940UT02MXDU234M0U8249G0CU94M8
                    T895890TU0UTFG548390UT3YT90FHWRFEJUOYTD908JD8DD
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJ
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJU
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJK
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJU
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJU
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY570WHF5780HDK280D57H7F
                </data>
        </image>
        <image>
            <imageformat>png</imageformat>
            <width>800</width>
            <height>600</height>
            <caption>At the Summer house</caption>
            <date>2006-02-12T11:45:22</date>
            <data>
                    FAEKLFJ389TC952TM2940UT02MXDU234M0U8249G0CU94M8
                    T895890TU0UTFG548390UT3YT90FHWRFEJUOYTD908JD8DD
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJ
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJU
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJK
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJU
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY57548390UT3YT90FHWRFEJU
                    F5890T7JYDJ9YD0WHF5780HDK280D57H7FDW47HHK47DD5
                    DF5797Y58D475YT7D45YTYJTY570WHF5780HDK280D57H7F
                </data>
        </image>
    </images>
</profile>

The XML Language definition Shema

Here is an outline of the SNIX language
SNIX Language Schema

The Schema itself
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="year" type="xs:gYear"/>
    <xs:element name="width" type="xs:nonNegativeInteger"/>
    <xs:element name="urls">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="url" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="url">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="title"/>
                <xs:element ref="address"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="tvshow">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="name"/>
                <xs:element ref="channel"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="title" type="xs:string"/>
    <xs:element name="profile">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="firstname"/>
                <xs:element ref="lastname"/>
                <xs:element ref="dob"/>
                <xs:element ref="urls"/>
                <xs:element ref="location"/>
                <xs:element ref="introduction"/>
                <xs:element ref="interests"/>
                <xs:element ref="favouritemovies"/>
                <xs:element ref="favouritetvshow"/>
                <xs:element ref="favouritemusic"/>
                <xs:element ref="favouritealbums"/>
                <xs:element ref="favouritebooks"/>
                <xs:element ref="images"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="music" type="xs:string"/>
    <xs:element name="movie">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="year"/>
                <xs:element ref="actors"/>
                <xs:element ref="comments"/>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="location">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="country"/>
                <xs:element ref="city"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="lastname" type="xs:string"/>
    <xs:element name="introduction" type="xs:string"/>
    <xs:element name="interests" type="xs:string"/>
    <xs:element name="images">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="image" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="imageformat">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="jpg"/>
                <xs:enumeration value="png"/>
                <xs:enumeration value="gif"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="image">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="imageformat"/>
                <xs:element ref="width"/>
                <xs:element ref="height"/>
                <xs:element ref="caption"/>
                <xs:element ref="date"/>
                <xs:element ref="data"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="height" type="xs:nonNegativeInteger"/>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="favouritetvshow">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="tvshow" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="favouritemusic">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="music"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="favouritemovies">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="movie" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="favouritebooks">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="book" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="favouritealbums">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="album"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="dob" type="xs:date"/>
    <xs:element name="date" type="xs:dateTime"/>
    <xs:element name="data" type="xs:string"/>
    <xs:element name="country">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="UK"/>
                <xs:enumeration value="USA"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="comments" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="channel" type="xs:string"/>
    <xs:element name="caption" type="xs:string"/>
    <xs:element name="book">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="title"/>
                <xs:element ref="year"/>
                <xs:element ref="authors"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="band" type="xs:string"/>
    <xs:element name="authors">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="name"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="album">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="name"/>
                <xs:element ref="band"/>
                <xs:element ref="year"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="address" type="xs:anyURI"/>
    <xs:element name="actors">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="actorname" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="actorname" type="xs:string"/>
</xs:schema>


License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Lawrence Botley


Lawrence has a Degree in Computer Science and Artificial Intelligence and a Master of Science degree in Information Technology for e-Commerce.

Right now he is in between his PHD in Augmented reality Systems and his new video Social networking platform http://www.next2friends.com which he is a co-founder of.
Occupation: Web Developer
Location: United Kingdom United Kingdom

Other popular XML articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 25 of 27 (Total in Forum: 27) (Refresh)FirstPrevNext
Subject  Author Date 
Generalfacebook xml filesmemberKingJibba9:00 28 Aug '07  
GeneralSuggestions:memberScottbw23:14 7 Aug '07  
GeneralXML: Attributes vs. Elementsmemberrfmobile11:24 7 Aug '07  
GeneralGood IdeamemberSyed M Hussain17:11 26 Jul '07  
GeneralGood Idea, But...memberdickinson.jonathan0:22 10 May '07