Semantic web browser

2,796 views

Published on

Provide a solution for Semantic Web issues - metadata vocabularies, ontological modeling resources, automated reasoning according to user profile - within a Web browser. It focused on issues such as automatic classification of sites visited by the user, with some similar references in terms of content or design.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,796
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Semantic web browser

  1. 1. Semantic WebBrowser1/24/2011Faculty of Computer Science, University of Al. I.Cuza, Iasi, RomaniaButnaru Maria; Dorofte Andra-Calina, Iarca Daniela
  2. 2. 2 Butnaru Maria; Dorofte Andra Calina; Iarca DanielaCONTENT 1. Introduction 2. Theory 2.1. RDF – Resource Description Framework 2.2. FOAF – Friend of a Friend 2.3. EndPoint 2.4. SPARQL 2.5. OpenID 2.6. Google Search Mash Up 2.7 . Youtube Api 2.8. Retrieving related videos 2.9. Google Api 2.10 SemWeb.Net 2.11 MemoryStore 3. Crocoo 3.1. Description 4. Conclusion 5. Future work
  3. 3. Semantic Web Browser 3 Semantic Web Browser Butnaru Maria; Dorofte Andra Calina; Iarca Daniela Abstract Provide a solution for Semantic Web issues - metadata vocabularies, ontological modeling resources, automated reasoning according to user profile - within a Web browser. It focused on issues such as automatic classification of sites visited by the user, with some similar references in terms of content or design. Keywords: semantic web, metadata vocabularies, rdf, foaf, openid, google search api, youtube api, mashup, dotnetAuth, SemWeb.NET1 Introduction With the emergence of the World Wide Web, analyzing and improvingWeb communication has become essential to adapt the Web content to thevisitors expectations. Semantic Web is a mesh of information linked up in such a way as tobe easily processed by machines, on a global scale. You can think of it asbeing an efficient way of representing data on the World Wide Web, or as aglobally linked database. The main purpose of the Semantic Web is driving the evolution of thecurrent Web by allowing users to use it to its full potential thus allowing usersto find, share, and combine information more easily. The Semantic Web, onthe other hand, is about having data as well as documents on the Web so thatmachines can process, transform, assemble, and even act on the data in usefulways. The Semantic Web agent does not include artificial intelligence –rather, it relies on structured sets of information and inference rules that allowit to “understand” the relationship between different data resources. Thecomputer doesn’t really understand information the way a human can, but ithas enough information to make logical connections and decisions. Crocoo is a web application which offers to the user a mashed upinformation about searches via world wide web. The mash up is made withYouTube and Google. To keep the users information and profile data, we useRDF, composed only by FOAF tags. Also in this data base we store a top 5
  4. 4. 4 Butnaru Maria; Dorofte Andra Calina; Iarca Danielatopic interests of the user. To grab the information from the RDF we useSPARQL Query.2 Theory2.1 RDF – Resource Description Framework The Semantic Web is generally built on syntaxes which use URIs torepresent data, usually in triples based structures. A triple can simply bedescribed as three URIs. A language which utilises three URIs in such a wayis called RDF RDF is an abstract model, a way to break down knowledge intodiscrete pieces, and while it is most popularly known for its RDF/XMLsyntax, RDF can be stored in a variety of formats. RDF is a general method to decompose knowledge into small pieces,with some rules about the semantics, or meaning, of those pieces. RDFstatements are often referred to as “triples” that consist of a subject, predicate,and object, which correspond to a resource (subject) a property (predicate),and a property value (object). By creating triples with subjects, predicates, andobjects, RDF allows machines to make logical assertions based on theassociations between subjects and objects.2.2 FOAF – Friend of a Friend This ontology is used to describe people and social relationship on theWeb. It is mostly focused on peoples existence in the virtual world, withmany properties related to online activity or identity A popular application of the semantic web is Friend of a Friend (orFoaF), which uses RDF to describe the relationships people have to otherpeople and the "things" around them. FOAF permits intelligent agents tomake sense of the thousands of connections people have with each other, theirjobs and the items important to their lives; connections that may or may notbe enumerated in searches using traditional web search engines. Because theconnections are so vast in number, human interpretation of the informationmay not be the best way of analyzing them. FOAF is an example of how the Semantic Web attempts to make useof the relationships within a social context.
  5. 5. Semantic Web Browser 52.3 End Point Every service is associated with an address that defines where theservice is, a binding that defines how to communicate with the service, and acontract that defines what the service does. The endpoint is the fusion of theaddress, contract, and binding.Every endpoint must have all three elements, and the host exposes theendpoint. Conceptually, even in C# or VB, an interface is an endpoint: theaddress is the memory address of the type’s virtual table, the binding is CLRJIT compiling, and the contract is the interface itself. Because in classic .NETprogramming you never deal with addresses or bindings, you take them forgranted.2.4 SPARQL SPARQL is the standard query language for the Semantic Web andcan be used to query over large volumes of RDF data. dotNetRDF providessupport for querying both over local in-memory data using its own SPARQLimplementation and for querying remote data using SPARQL endpoints orthrough other stores SPARQL implementations.2.5 OpenID Third-party web sites and applications can now let visitors sign in usingtheir Google user accounts. Federated Login, based on the OpenID standard,frees users from having to set up separate login accounts for different websites--and frees web site developers from the task of implementing loginauthentication measures. OpenID achieves this goal by providing a frameworkin which users can establish an account with an OpenID provider, such asGoogle, and use that account to sign into any web site that accepts OpenIDs. Google supports the OpenID 2.0 protocol, providing authenticationsupport as an OpenID provider. On request from a third-party site, Googleauthenticates users who are signing in with an existing Google account, andreturns to the third-party site an identifier that the site can use to recognize theuser. This identifier is consistent, enabling the third-party site to recognize theuser across multiple sessions.
  6. 6. 6 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela2.6 Google Search Mash Up Third-party web sites and applications can now let visitors sign in usingtheir Google user accounts. Federated Login, based on the OpenID standard,frees users from having to set up separate login accounts for different websites--and frees web site developers from the task of implementing loginauthentication measures. OpenID achieves this goal by providing a frameworkin which users can establish an account with an OpenID provider, such asGoogle, and use that account to sign into any web site that accepts OpenIDs. Google supports the OpenID 2.0 protocol, providing authenticationsupport as an OpenID provider. On request from a third-party site, Googleauthenticates users who are signing in with an existing Google account, andreturns to the third-party site an identifier that the site can use to recognize theuser. This identifier is consistent, enabling the third-party site to recognize theuser across multiple sessions.2.7 Youtube Api The YouTube APIs and Tools enable you to integrate YouTubes videocontent and functionality into your website, software application, or device. We incorporate YouTube functionality into our own applicationperforming searches after tags or see related content. The YouTube Data API provides standard feeds selected based on avariety of criteria. Standard feeds are sitewide rather than user-specific. Theycontain lists of videos that either reflect YouTube user behavior, such as top-rated and most viewed video feeds.2.8 Retrieving related videos Each video entry in a video feed identifies the URL for another video feedthat contains videos related to the entry, as determined by YouTube. Thefollowing code shows how to retrieve and print information about the relatedvideos for a particular Video.Uri videoEntryUrl = newUri("http://gdata.youtube.com/feeds/api/videos/ADos_xW4_J0");Video video = request.Retrieve<Video>(videoEntryUrl);Feed<Video> relatedVideos = request.GetRelatedVideos(video);printVideoFeed(relatedVideos);
  7. 7. Semantic Web Browser 72.9 Googpe API The Google API stands for ‘Application Programmable Interface’. As it’sname implies, it is an interface that queries the Google database to helpprogrammers in the development of their applications. Google API’s consist basically of specialized Web services and programsand specialized scripts that enable Internet application developers to betterfind and process information on the Web. In essence, Google APIs can beused as an added resource in their applications.2.10 SemWeb.Net We use SemWeb.NET , a Semantic Web/RDF open-source librarywritten in C sharp. The library can be used for reading and writing RDF(XML, N3), keeping RDF in persistent storage (memory, MySQL, etc.),querying persistent storage via simple graph matching and SPARQL, andmaking SPARQL queries to remote endpoints. Limited RDFS and general-purpose inferencing is also possible. SemWebs API is straight-forward andflexible.2.11 Memory Store The MemoryStore is the main storage mechanism for small amounts ofdata. Although the MemoryStore inherits from Store, which can be used togroup multiple data sources together, it is illegal to call AddSource on aMemoryStore.3 Crocoo3.1 Description We have an ASP.NET MVC application that have both public and privatefeatures. Typically this is done by implementing an authentication /authorization gateway to gain access to the private features. We use OpenIDto provide an authentication layer.  Authentication – You are who you say you are. The application knows your identity.
  8. 8. 8 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela  Authorization – Based upon your identity (via Authentication), the application provides access to features. Public access is provided to base features. Private access to enhanced features. OpenID allows you to use an existing account to sign in to multiplewebsites, without needing to create new passwords. With OpenID, youcontrol how much of that information is shared with the websites you visit. With OpenID, your password is only given to your identity provider, andthat provider then confirms your identity to the websites you visit. Other thanyour provider, no website ever sees your password, so you don’t need toworry about an unscrupulous or insecure website compromising your identity. Our web application starts by presenting an area that allows the userto log in by offering a set of log-in options, including using their Google orYahoo account., or to sign up for an new openid using myopenid.com ormyid.net, as authentication providers. The following screenshot shows thisarea. Clicking on one of the providers starts the authentication process.OpenID uses a series of redirects to get the user authenticated. The key is thatthe authentication occurs on the provider’s site and that’s where thepasswords are stored. Clicking one of the above providers results in a post toour application’s server. Our server then redirects to the provider’s server(after possible adding information to the post data). Here is a screenshot of themyopenid.com authentication page after the redirect to the myopenid.comprovider.
  9. 9. Semantic Web Browser 9 OR Clicking the “Agree” or “Allow” button causes post to themyopenid.com servers and another redirect. This time back to ourapplication’s server. This redirect includes information about you that issupplied by the OpenID providers. At minimum the redirect supplies a‘username’ back to the application. After you are in the user’s page, if the useris connecting for the first time to Crocoo, a new <foaf: Person> tag is made.The <foaf:nick> tag receive the user’s id and all the other tags get “none”.
  10. 10. 10 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela Our application can then look up the ‘username’ in the database todetermine if the user is allowed access. Users that are allowed access willhave the above login area swapped out for a panel that provides access tofeatures only available to authenticated users. The username and your pictureare now displayed. The search area and other buttons are now available. Thefollowing screenshot is an example.After you logged in successfully, the user can edit his/her profile, find or addfriends, and he/she can see some video from youtube classified by tags, links,images, video or news collected with yahoo search api. You may see othervideo recommended for you from your friends, or last viewed. In the editprofile area the user can edit his/her profile by mentioning surname, firstname, gender, e-mail address and browsing a profile picture.
  11. 11. Semantic Web Browser 11In the RDF file the tags that have “none” value are replaced with the valuefrom the text box from the profile. We use Google search api within our asp .net application to retrievephotos from the Google photo sharing service using a variety of feeds - publicphotos and videos, favorites, friends, news, discussions, and more. We displaythem on the page, according with the search. Responses can be formatted inXML.
  12. 12. 12 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela We use dotnetopenauth 3.2 to implement Openid in an ASP.NETproject. We get the username (or email address) when the user logs in bysending a FetchRequest for email marked as a required attribute.The OpenIdRelyingParty.GetResponse() method returns anIAuthenticationResponse interface that has a ClaimedIdentifier property on ityou can get. When using the youtube search api you can find videos in twodifferent ways: searching via tags or via “full sentence”. I recommend tosearch via tags because videos are saved by word keys ( categories ). Thesecategories are saved in rdf in the topic interest tag and then we can use themto recommend to show users other videos related to the one already saw.
  13. 13. Semantic Web Browser 13 One of the most important features of our application is on the findfriend page. Here, with the help of the one of the most rigorous sparql querieswe find all the users with surname provided by the Crocoo’s client and returnall the profiles that exists. You can also select one of them and press the Addfriend button. When pressing it, in the RDF file is created a new node called<foaf:knows> tag. The value of this tag is the selected person’s nick. On recommended for you link,you parse the rdf and get the last searchof the user. After that, you are moved to youtube and retrieve the most 5related videos for that topic.4 Conclusions Our application is more a mashup one, and it can be use by anyone whowant to have a more precise and detailed search without open all search tools.The user will receive also some recommendations related with his/hersearched words or others viewed by their friends. We think that thisapplication can be used like a real browser because it offers diversepossibilities of search and half of the user’s searches are saved in a rdf database and then used to get relevant information ( blogs, pictures, videos, websites, books, news ).
  14. 14. 14 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela5 Future plans This application can be improved by adding other functions andutilities. For example a classification related with the user’s interests. Theidea : user1 is friend with user2, user 2 likes topic1, then, user1 may liketopic1. To classify all sites viewed by user in good and bad ones, incorrelation with their feelings about the topic. The most important update for this application can be changing it intoan extension.
  15. 15. Semantic Web Browser 15 References1. http://www.asp.net/2. http://www.rankforsales.com/google-api-s-and-their-uses.html3. http://infomesh.net/2001/swintro/4. http://razor.occams.info/code/semweb/5. wikipedia.org6. http://www.altova.com/semantic_web.html7. http://www.fiftyfoureleven.com/8. http://en.csharp- online.net/WCF_Essentials%E2%80%94Endpoints9. http://openid.net/

×