SlideShare una empresa de Scribd logo
1 de 15
Semantic Web
Browser
1/24/2011
Faculty of Computer Science, University of Al. I.Cuza, Iasi, Romania
Butnaru Maria; Dorofte Andra-Calina, Iarca Daniela
2     Butnaru Maria; Dorofte Andra Calina; Iarca Daniela




CONTENT


    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
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.NET




1     Introduction

     With the emergence of the World Wide Web, analyzing and improving
Web communication has become essential to adapt the Web content to the
visitors' expectations.
          Semantic Web is a mesh of information linked up in such a way as to
be easily processed by machines, on a global scale. You can think of it as
being an efficient way of representing data on the World Wide Web, or as a
globally linked database.
          The main purpose of the Semantic Web is driving the evolution of the
current Web by allowing users to use it to its full potential thus allowing users
to find, share, and combine information more easily. The Semantic Web, on
the other hand, is about having data as well as documents on the Web so that
machines can process, transform, assemble, and even act on the data in useful
ways.
         The Semantic Web agent does not include artificial intelligence –
rather, it relies on structured sets of information and inference rules that allow
it to “understand” the relationship between different data resources. The
computer doesn’t really understand information the way a human can, but it
has enough information to make logical connections and decisions.
         Crocoo is a web application which offers to the user a mashed up
information about searches via world wide web. The mash up is made with
YouTube and Google. To keep the users information and profile data, we use
RDF, composed only by FOAF tags. Also in this data base we store a top 5
4      Butnaru Maria; Dorofte Andra Calina; Iarca Daniela


topic interests of the user. To grab the information from the RDF we use
SPARQL Query.


2     Theory

2.1   RDF – Resource Description Framework

         The Semantic Web is generally built on syntaxes which use URIs to
represent data, usually in triples based structures. A triple can simply be
described as three URIs. A language which utilises three URIs in such a way
is called RDF
         RDF is an abstract model, a way to break down knowledge into
discrete pieces, and while it is most popularly known for its RDF/XML
syntax, 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. RDF
statements 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, and
objects, RDF allows machines to make logical assertions based on the
associations between subjects and objects.

2.2   FOAF – Friend of a Friend
         This ontology is used to describe people and social relationship on the
Web. It is mostly focused on people's existence in the virtual world, with
many properties related to online activity or identity
         A popular application of the semantic web is Friend of a Friend (or
FoaF), which uses RDF to describe the relationships people have to other
people and the "things" around them. FOAF permits intelligent agents to
make sense of the thousands of connections people have with each other, their
jobs and the items important to their lives; connections that may or may not
be enumerated in searches using traditional web search engines. Because the
connections are so vast in number, human interpretation of the information
may not be the best way of analyzing them.
         FOAF is an example of how the Semantic Web attempts to make use
of the relationships within a social context.
Semantic Web Browser         5


2.3   End Point
      Every service is associated with an address that defines where the
service is, a binding that defines how to communicate with the service, and a
contract that defines what the service does. The endpoint is the fusion of the
address, contract, and binding.
Every endpoint must have all three elements, and the host exposes the
endpoint.
        Conceptually, even in C# or VB, an interface is an endpoint: the
address is the memory address of the type’s virtual table, the binding is CLR
JIT compiling, and the contract is the interface itself. Because in classic .NET
programming you never deal with addresses or bindings, you take them for
granted.


2.4   SPARQL

        SPARQL is the standard query language for the Semantic Web and
can be used to query over large volumes of RDF data. dotNetRDF provides
support for querying both over local in-memory data using it's own SPARQL
implementation and for querying remote data using SPARQL endpoints or
through other stores SPARQL implementations.

2.5   OpenID
       Third-party web sites and applications can now let visitors sign in using
their Google user accounts. Federated Login, based on the OpenID standard,
frees users from having to set up separate login accounts for different web
sites--and frees web site developers from the task of implementing login
authentication measures. OpenID achieves this goal by providing a framework
in which users can establish an account with an OpenID provider, such as
Google, and use that account to sign into any web site that accepts OpenIDs.
       Google supports the OpenID 2.0 protocol, providing authentication
support as an OpenID provider. On request from a third-party site, Google
authenticates users who are signing in with an existing Google account, and
returns to the third-party site an identifier that the site can use to recognize the
user. This identifier is consistent, enabling the third-party site to recognize the
user across multiple sessions.
6      Butnaru Maria; Dorofte Andra Calina; Iarca Daniela


2.6   Google Search Mash Up
       Third-party web sites and applications can now let visitors sign in using
their Google user accounts. Federated Login, based on the OpenID standard,
frees users from having to set up separate login accounts for different web
sites--and frees web site developers from the task of implementing login
authentication measures. OpenID achieves this goal by providing a framework
in which users can establish an account with an OpenID provider, such as
Google, and use that account to sign into any web site that accepts OpenIDs.

         Google supports the OpenID 2.0 protocol, providing authentication
support as an OpenID provider. On request from a third-party site, Google
authenticates users who are signing in with an existing Google account, and
returns to the third-party site an identifier that the site can use to recognize the
user. This identifier is consistent, enabling the third-party site to recognize the
user across multiple sessions.

2.7   Youtube Api
    The YouTube APIs and Tools enable you to integrate YouTube's video
content and functionality into your website, software application, or device.
    We incorporate YouTube functionality into our own application
performing searches after tags or see related content.
    The YouTube Data API provides standard feeds selected based on a
variety of criteria. Standard feeds are sitewide rather than user-specific. They
contain 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 feed
that contains videos related to the entry, as determined by YouTube. The
following code shows how to retrieve and print information about the related
videos for a particular Video.


Uri videoEntryUrl = new
Uri("http://gdata.youtube.com/feeds/api/videos/ADos_xW4_J0");
Video video = request.Retrieve<Video>(videoEntryUrl);
Feed<Video> relatedVideos = request.GetRelatedVideos(video);
printVideoFeed(relatedVideos);
Semantic Web Browser     7


2.9       Googpe API
    The Google API stands for ‘Application Programmable Interface’. As it’s
name implies, it is an interface that queries the Google database to help
programmers in the development of their applications.
    Google API’s consist basically of specialized Web services and programs
and specialized scripts that enable Internet application developers to better
find and process information on the Web. In essence, Google APIs can be
used as an added resource in their applications.

2.10 SemWeb.Net
         We use SemWeb.NET , a Semantic Web/RDF open-source library
written 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, and
making SPARQL queries to remote endpoints. Limited RDFS and general-
purpose inferencing is also possible. SemWeb's API is straight-forward and
flexible.

2.11 Memory Store

          The MemoryStore is the main storage mechanism for small amounts of
data.

      Although the MemoryStore inherits from Store, which can be used to
group multiple data sources together, it is illegal to call AddSource on a
MemoryStore.


3         Crocoo

3.1       Description
    We have an ASP.NET MVC application that have both public and private
features. Typically this is done by implementing an authentication /
authorization gateway to gain access to the private features. We use OpenID
to provide an authentication layer.

          Authentication – You are who you say you are. The application
           knows your identity.
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 multiple
websites, without needing to create new passwords. With OpenID, you
control how much of that information is shared with the websites you visit.
     With OpenID, your password is only given to your identity provider, and
that provider then confirms your identity to the websites you visit. Other than
your provider, no website ever sees your password, so you don’t need to
worry about an unscrupulous or insecure website compromising your identity.

        Our web application starts by presenting an area that allows the user
to log in by offering a set of log-in options, including using their Google or
Yahoo account., or to sign up for an new openid using myopenid.com or
myid.net, as authentication providers. The following screenshot shows this
area.




         Clicking on one of the providers starts the authentication process.
OpenID uses a series of redirects to get the user authenticated. The key is that
the authentication occurs on the provider’s site and that’s where the
passwords are stored. Clicking one of the above providers results in a post to
our 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 the
myopenid.com authentication page after the redirect to the myopenid.com
provider.
Semantic Web Browser       9




                                           OR




        Clicking the “Agree” or “Allow” button causes post to the
myopenid.com servers and another redirect. This time back to our
application’s server. This redirect includes information about you that is
supplied 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 user
is 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      Butnaru Maria; Dorofte Andra Calina; Iarca Daniela




        Our application can then look up the ‘username’ in the database to
determine if the user is allowed access. Users that are allowed access will
have the above login area swapped out for a panel that provides access to
features only available to authenticated users. The username and your picture
are now displayed. The search area and other buttons are now available. The
following screenshot is an example.




After you logged in successfully, the user can edit his/her profile, find or add
friends, 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 other
video recommended for you from your friends, or last viewed. In the edit
profile area the user can edit his/her profile by mentioning surname, first
name, gender, e-mail address and browsing a profile picture.
Semantic Web Browser      11




In the RDF file the tags that have “none” value are replaced with the value
from the text box from the profile.




        We use Google search api within our asp .net application to retrieve
photos from the Google photo sharing service using a variety of feeds - public
photos and videos, favorites, friends, news, discussions, and more. We display
them on the page, according with the search. Responses can be formatted in
XML.
12     Butnaru Maria; Dorofte Andra Calina; Iarca Daniela




         We use dotnetopenauth 3.2 to implement Openid in an ASP.NET
project. We get the username (or email address) when the user logs in by
sending a FetchRequest for email marked as a required attribute.
The      OpenIdRelyingParty.GetResponse()        method        returns    an
IAuthenticationResponse interface that has a ClaimedIdentifier property on it
you can get.

        When using the youtube search api you can find videos in two
different ways: searching via tags or via “full sentence”. I recommend to
search via tags because videos are saved by word keys ( categories ). These
categories are saved in rdf in the topic interest tag and then we can use them
to recommend to show users other videos related to the one already saw.
Semantic Web Browser       13




         One of the most important features of our application is on the find
friend page. Here, with the help of the one of the most rigorous sparql queries
we find all the users with surname provided by the Crocoo’s client and return
all the profiles that exists. You can also select one of them and press the Add
friend 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 search
of the user. After that, you are moved to youtube and retrieve the most 5
related videos for that topic.


4     Conclusions

     Our application is more a mashup one, and it can be use by anyone who
want to have a more precise and detailed search without open all search tools.
The user will receive also some recommendations related with his/her
searched words or others viewed by their friends. We think that this
application can be used like a real browser because it offers diverse
possibilities of search and half of the user’s searches are saved in a rdf data
base and then used to get relevant information ( blogs, pictures, videos, web
sites, books, news ).
14     Butnaru Maria; Dorofte Andra Calina; Iarca Daniela


5     Future plans

        This application can be improved by adding other functions and
utilities. For example a classification related with the user’s interests. The
idea : user1 is friend with user2, user 2 likes topic1, then, user1 may like
topic1. To classify all sites viewed by user in good and bad ones, in
correlation with their feelings about the topic.
        The most important update for this application can be changing it into
an extension.
Semantic Web Browser       15


      References

1.      http://www.asp.net/

2.      http://www.rankforsales.com/google-api-s-and-their-uses.html

3.      http://infomesh.net/2001/swintro/

4.      http://razor.occams.info/code/semweb/

5.      wikipedia.org

6.      http://www.altova.com/semantic_web.html

7.      http://www.fiftyfoureleven.com/

8.       http://en.csharp-
     online.net/WCF_Essentials%E2%80%94Endpoints

9.      http://openid.net/

Más contenido relacionado

Destacado

Sajak di Bawah Langit yang Sama
Sajak di Bawah Langit yang SamaSajak di Bawah Langit yang Sama
Sajak di Bawah Langit yang SamaAzwira Ariwana
 
Syair Pemberontakan Patani
Syair Pemberontakan PataniSyair Pemberontakan Patani
Syair Pemberontakan PataniAzwira Ariwana
 
(130622) #fitalk the stealing windows password
(130622) #fitalk   the stealing windows password(130622) #fitalk   the stealing windows password
(130622) #fitalk the stealing windows passwordINSIGHT FORENSIC
 
Second-Service-Military-Veterans-and-Public-Office
Second-Service-Military-Veterans-and-Public-OfficeSecond-Service-Military-Veterans-and-Public-Office
Second-Service-Military-Veterans-and-Public-OfficeG. Scott Jackson
 
(130907) #fitalk generating volatility linux profile
(130907) #fitalk   generating volatility linux profile(130907) #fitalk   generating volatility linux profile
(130907) #fitalk generating volatility linux profileINSIGHT FORENSIC
 
Project Α΄ Λυκείου 2012-2013, Νομίσματα
Project Α΄ Λυκείου 2012-2013, ΝομίσματαProject Α΄ Λυκείου 2012-2013, Νομίσματα
Project Α΄ Λυκείου 2012-2013, Νομίσματαpaez2013
 
Ferramentas de BI para Real Estate - Gabriel Gruber - Properati - 2 Marketing...
Ferramentas de BI para Real Estate - Gabriel Gruber - Properati - 2 Marketing...Ferramentas de BI para Real Estate - Gabriel Gruber - Properati - 2 Marketing...
Ferramentas de BI para Real Estate - Gabriel Gruber - Properati - 2 Marketing...Properati
 
(130105) #fitalk criminal civil judicial procedure in korea
(130105) #fitalk   criminal civil judicial procedure in korea(130105) #fitalk   criminal civil judicial procedure in korea
(130105) #fitalk criminal civil judicial procedure in koreaINSIGHT FORENSIC
 
(121202) #fitalk the latest trend of precedents about d forensis
(121202) #fitalk   the latest trend of precedents about d forensis(121202) #fitalk   the latest trend of precedents about d forensis
(121202) #fitalk the latest trend of precedents about d forensisINSIGHT FORENSIC
 
(120218) #fitalk forensic impact according to the firmware manipulation
(120218) #fitalk   forensic impact according to the firmware manipulation(120218) #fitalk   forensic impact according to the firmware manipulation
(120218) #fitalk forensic impact according to the firmware manipulationINSIGHT FORENSIC
 
(130316) #fitalk bit torrent protocol
(130316) #fitalk   bit torrent protocol(130316) #fitalk   bit torrent protocol
(130316) #fitalk bit torrent protocolINSIGHT FORENSIC
 
2015LETシンポジウム 時系列指標とライティング方略
2015LETシンポジウム 時系列指標とライティング方略2015LETシンポジウム 時系列指標とライティング方略
2015LETシンポジウム 時系列指標とライティング方略WritingMaetriX
 
Nomenclatura inorganica
Nomenclatura inorganicaNomenclatura inorganica
Nomenclatura inorganicamirnaethel1
 

Destacado (20)

Sajak di Bawah Langit yang Sama
Sajak di Bawah Langit yang SamaSajak di Bawah Langit yang Sama
Sajak di Bawah Langit yang Sama
 
Syair Pemberontakan Patani
Syair Pemberontakan PataniSyair Pemberontakan Patani
Syair Pemberontakan Patani
 
(130622) #fitalk the stealing windows password
(130622) #fitalk   the stealing windows password(130622) #fitalk   the stealing windows password
(130622) #fitalk the stealing windows password
 
Cerpen Israk
Cerpen IsrakCerpen Israk
Cerpen Israk
 
Second-Service-Military-Veterans-and-Public-Office
Second-Service-Military-Veterans-and-Public-OfficeSecond-Service-Military-Veterans-and-Public-Office
Second-Service-Military-Veterans-and-Public-Office
 
(130907) #fitalk generating volatility linux profile
(130907) #fitalk   generating volatility linux profile(130907) #fitalk   generating volatility linux profile
(130907) #fitalk generating volatility linux profile
 
Project Α΄ Λυκείου 2012-2013, Νομίσματα
Project Α΄ Λυκείου 2012-2013, ΝομίσματαProject Α΄ Λυκείου 2012-2013, Νομίσματα
Project Α΄ Λυκείου 2012-2013, Νομίσματα
 
Ferramentas de BI para Real Estate - Gabriel Gruber - Properati - 2 Marketing...
Ferramentas de BI para Real Estate - Gabriel Gruber - Properati - 2 Marketing...Ferramentas de BI para Real Estate - Gabriel Gruber - Properati - 2 Marketing...
Ferramentas de BI para Real Estate - Gabriel Gruber - Properati - 2 Marketing...
 
(130105) #fitalk criminal civil judicial procedure in korea
(130105) #fitalk   criminal civil judicial procedure in korea(130105) #fitalk   criminal civil judicial procedure in korea
(130105) #fitalk criminal civil judicial procedure in korea
 
Db Brochure
Db BrochureDb Brochure
Db Brochure
 
Kata nama.pptx
Kata nama.pptxKata nama.pptx
Kata nama.pptx
 
(121202) #fitalk the latest trend of precedents about d forensis
(121202) #fitalk   the latest trend of precedents about d forensis(121202) #fitalk   the latest trend of precedents about d forensis
(121202) #fitalk the latest trend of precedents about d forensis
 
Syair
SyairSyair
Syair
 
(120218) #fitalk forensic impact according to the firmware manipulation
(120218) #fitalk   forensic impact according to the firmware manipulation(120218) #fitalk   forensic impact according to the firmware manipulation
(120218) #fitalk forensic impact according to the firmware manipulation
 
(130316) #fitalk bit torrent protocol
(130316) #fitalk   bit torrent protocol(130316) #fitalk   bit torrent protocol
(130316) #fitalk bit torrent protocol
 
NOVEL SALINA
NOVEL SALINANOVEL SALINA
NOVEL SALINA
 
2015LETシンポジウム 時系列指標とライティング方略
2015LETシンポジウム 時系列指標とライティング方略2015LETシンポジウム 時系列指標とライティング方略
2015LETシンポジウム 時系列指標とライティング方略
 
Nomenclatura inorganica
Nomenclatura inorganicaNomenclatura inorganica
Nomenclatura inorganica
 
Simpulan bahasa
Simpulan bahasaSimpulan bahasa
Simpulan bahasa
 
Kamus Simpulan Bahasa
Kamus Simpulan BahasaKamus Simpulan Bahasa
Kamus Simpulan Bahasa
 

Similar a Semantic web browser

Sup (Semantic User Profiling)
Sup (Semantic User Profiling)Sup (Semantic User Profiling)
Sup (Semantic User Profiling)Emanuela Boroș
 
Nt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersNt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersLisa Williams
 
Data Portability with SIOC and FOAF
Data Portability with SIOC and FOAFData Portability with SIOC and FOAF
Data Portability with SIOC and FOAFUldis Bojars
 
IRJET- Semantic Web Mining and Semantic Search Engine: A Review
IRJET- Semantic Web Mining and Semantic Search Engine: A ReviewIRJET- Semantic Web Mining and Semantic Search Engine: A Review
IRJET- Semantic Web Mining and Semantic Search Engine: A ReviewIRJET Journal
 
X api chinese cop monthly meeting feb.2016
X api chinese cop monthly meeting   feb.2016X api chinese cop monthly meeting   feb.2016
X api chinese cop monthly meeting feb.2016Jessie Chuang
 
Digital Methods Winterschool 2012: API - Interfaces to the Cloud
Digital Methods Winterschool 2012: API - Interfaces to the CloudDigital Methods Winterschool 2012: API - Interfaces to the Cloud
Digital Methods Winterschool 2012: API - Interfaces to the CloudDigital Methods Initiative
 
Session 8 Android Web Services - Part 1.pdf
Session 8 Android Web Services - Part 1.pdfSession 8 Android Web Services - Part 1.pdf
Session 8 Android Web Services - Part 1.pdfEngmohammedAlzared
 
Linked data HHS 2015
Linked data HHS 2015Linked data HHS 2015
Linked data HHS 2015Cason Snow
 
Improve information retrieval and e learning using
Improve information retrieval and e learning usingImprove information retrieval and e learning using
Improve information retrieval and e learning usingIJwest
 
Setup API Introductie
Setup API IntroductieSetup API Introductie
Setup API Introductieannehelmond
 
Discovering Resume Information using linked data  
Discovering Resume Information using linked data  Discovering Resume Information using linked data  
Discovering Resume Information using linked data  dannyijwest
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathonmarvin337
 
Search Engines After The Semanatic Web
Search Engines After The Semanatic WebSearch Engines After The Semanatic Web
Search Engines After The Semanatic Websamar_slideshare
 
Computer and internet applications in medicine
Computer and internet applications in medicineComputer and internet applications in medicine
Computer and internet applications in medicineAhmed-Refat Refat
 
Semantic Query Optimisation with Ontology Simulation
Semantic Query Optimisation with Ontology SimulationSemantic Query Optimisation with Ontology Simulation
Semantic Query Optimisation with Ontology Simulationdannyijwest
 
Linked Data MLA 2015
Linked Data MLA 2015Linked Data MLA 2015
Linked Data MLA 2015Cason Snow
 
Linked data MLA 2015
Linked data MLA 2015Linked data MLA 2015
Linked data MLA 2015Cason Snow
 

Similar a Semantic web browser (20)

Sup (Semantic User Profiling)
Sup (Semantic User Profiling)Sup (Semantic User Profiling)
Sup (Semantic User Profiling)
 
Nt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersNt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And Answers
 
Data Portability with SIOC and FOAF
Data Portability with SIOC and FOAFData Portability with SIOC and FOAF
Data Portability with SIOC and FOAF
 
Sup documentation
Sup documentationSup documentation
Sup documentation
 
IRJET- Semantic Web Mining and Semantic Search Engine: A Review
IRJET- Semantic Web Mining and Semantic Search Engine: A ReviewIRJET- Semantic Web Mining and Semantic Search Engine: A Review
IRJET- Semantic Web Mining and Semantic Search Engine: A Review
 
Semantic web
Semantic webSemantic web
Semantic web
 
X api chinese cop monthly meeting feb.2016
X api chinese cop monthly meeting   feb.2016X api chinese cop monthly meeting   feb.2016
X api chinese cop monthly meeting feb.2016
 
Digital Methods Winterschool 2012: API - Interfaces to the Cloud
Digital Methods Winterschool 2012: API - Interfaces to the CloudDigital Methods Winterschool 2012: API - Interfaces to the Cloud
Digital Methods Winterschool 2012: API - Interfaces to the Cloud
 
Session 8 Android Web Services - Part 1.pdf
Session 8 Android Web Services - Part 1.pdfSession 8 Android Web Services - Part 1.pdf
Session 8 Android Web Services - Part 1.pdf
 
Linked data HHS 2015
Linked data HHS 2015Linked data HHS 2015
Linked data HHS 2015
 
Improve information retrieval and e learning using
Improve information retrieval and e learning usingImprove information retrieval and e learning using
Improve information retrieval and e learning using
 
Setup API Introductie
Setup API IntroductieSetup API Introductie
Setup API Introductie
 
Discovering Resume Information using linked data  
Discovering Resume Information using linked data  Discovering Resume Information using linked data  
Discovering Resume Information using linked data  
 
Presentation on SEO, .htaccess, Open-source, Ontology, Semantic web, etc.
Presentation on SEO, .htaccess, Open-source, Ontology, Semantic web, etc.Presentation on SEO, .htaccess, Open-source, Ontology, Semantic web, etc.
Presentation on SEO, .htaccess, Open-source, Ontology, Semantic web, etc.
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
 
Search Engines After The Semanatic Web
Search Engines After The Semanatic WebSearch Engines After The Semanatic Web
Search Engines After The Semanatic Web
 
Computer and internet applications in medicine
Computer and internet applications in medicineComputer and internet applications in medicine
Computer and internet applications in medicine
 
Semantic Query Optimisation with Ontology Simulation
Semantic Query Optimisation with Ontology SimulationSemantic Query Optimisation with Ontology Simulation
Semantic Query Optimisation with Ontology Simulation
 
Linked Data MLA 2015
Linked Data MLA 2015Linked Data MLA 2015
Linked Data MLA 2015
 
Linked data MLA 2015
Linked data MLA 2015Linked data MLA 2015
Linked data MLA 2015
 

Semantic web browser

  • 1. Semantic Web Browser 1/24/2011 Faculty of Computer Science, University of Al. I.Cuza, Iasi, Romania Butnaru Maria; Dorofte Andra-Calina, Iarca Daniela
  • 2. 2 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela CONTENT 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. 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.NET 1 Introduction With the emergence of the World Wide Web, analyzing and improving Web communication has become essential to adapt the Web content to the visitors' expectations. Semantic Web is a mesh of information linked up in such a way as to be easily processed by machines, on a global scale. You can think of it as being an efficient way of representing data on the World Wide Web, or as a globally linked database. The main purpose of the Semantic Web is driving the evolution of the current Web by allowing users to use it to its full potential thus allowing users to find, share, and combine information more easily. The Semantic Web, on the other hand, is about having data as well as documents on the Web so that machines can process, transform, assemble, and even act on the data in useful ways. The Semantic Web agent does not include artificial intelligence – rather, it relies on structured sets of information and inference rules that allow it to “understand” the relationship between different data resources. The computer doesn’t really understand information the way a human can, but it has enough information to make logical connections and decisions. Crocoo is a web application which offers to the user a mashed up information about searches via world wide web. The mash up is made with YouTube and Google. To keep the users information and profile data, we use RDF, composed only by FOAF tags. Also in this data base we store a top 5
  • 4. 4 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela topic interests of the user. To grab the information from the RDF we use SPARQL Query. 2 Theory 2.1 RDF – Resource Description Framework The Semantic Web is generally built on syntaxes which use URIs to represent data, usually in triples based structures. A triple can simply be described as three URIs. A language which utilises three URIs in such a way is called RDF RDF is an abstract model, a way to break down knowledge into discrete pieces, and while it is most popularly known for its RDF/XML syntax, 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. RDF statements 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, and objects, RDF allows machines to make logical assertions based on the associations between subjects and objects. 2.2 FOAF – Friend of a Friend This ontology is used to describe people and social relationship on the Web. It is mostly focused on people's existence in the virtual world, with many properties related to online activity or identity A popular application of the semantic web is Friend of a Friend (or FoaF), which uses RDF to describe the relationships people have to other people and the "things" around them. FOAF permits intelligent agents to make sense of the thousands of connections people have with each other, their jobs and the items important to their lives; connections that may or may not be enumerated in searches using traditional web search engines. Because the connections are so vast in number, human interpretation of the information may not be the best way of analyzing them. FOAF is an example of how the Semantic Web attempts to make use of the relationships within a social context.
  • 5. Semantic Web Browser 5 2.3 End Point Every service is associated with an address that defines where the service is, a binding that defines how to communicate with the service, and a contract that defines what the service does. The endpoint is the fusion of the address, contract, and binding. Every endpoint must have all three elements, and the host exposes the endpoint. Conceptually, even in C# or VB, an interface is an endpoint: the address is the memory address of the type’s virtual table, the binding is CLR JIT compiling, and the contract is the interface itself. Because in classic .NET programming you never deal with addresses or bindings, you take them for granted. 2.4 SPARQL SPARQL is the standard query language for the Semantic Web and can be used to query over large volumes of RDF data. dotNetRDF provides support for querying both over local in-memory data using it's own SPARQL implementation and for querying remote data using SPARQL endpoints or through other stores SPARQL implementations. 2.5 OpenID Third-party web sites and applications can now let visitors sign in using their Google user accounts. Federated Login, based on the OpenID standard, frees users from having to set up separate login accounts for different web sites--and frees web site developers from the task of implementing login authentication measures. OpenID achieves this goal by providing a framework in which users can establish an account with an OpenID provider, such as Google, and use that account to sign into any web site that accepts OpenIDs. Google supports the OpenID 2.0 protocol, providing authentication support as an OpenID provider. On request from a third-party site, Google authenticates users who are signing in with an existing Google account, and returns to the third-party site an identifier that the site can use to recognize the user. This identifier is consistent, enabling the third-party site to recognize the user across multiple sessions.
  • 6. 6 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela 2.6 Google Search Mash Up Third-party web sites and applications can now let visitors sign in using their Google user accounts. Federated Login, based on the OpenID standard, frees users from having to set up separate login accounts for different web sites--and frees web site developers from the task of implementing login authentication measures. OpenID achieves this goal by providing a framework in which users can establish an account with an OpenID provider, such as Google, and use that account to sign into any web site that accepts OpenIDs. Google supports the OpenID 2.0 protocol, providing authentication support as an OpenID provider. On request from a third-party site, Google authenticates users who are signing in with an existing Google account, and returns to the third-party site an identifier that the site can use to recognize the user. This identifier is consistent, enabling the third-party site to recognize the user across multiple sessions. 2.7 Youtube Api The YouTube APIs and Tools enable you to integrate YouTube's video content and functionality into your website, software application, or device. We incorporate YouTube functionality into our own application performing searches after tags or see related content. The YouTube Data API provides standard feeds selected based on a variety of criteria. Standard feeds are sitewide rather than user-specific. They contain 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 feed that contains videos related to the entry, as determined by YouTube. The following code shows how to retrieve and print information about the related videos for a particular Video. Uri videoEntryUrl = new Uri("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. Semantic Web Browser 7 2.9 Googpe API The Google API stands for ‘Application Programmable Interface’. As it’s name implies, it is an interface that queries the Google database to help programmers in the development of their applications. Google API’s consist basically of specialized Web services and programs and specialized scripts that enable Internet application developers to better find and process information on the Web. In essence, Google APIs can be used as an added resource in their applications. 2.10 SemWeb.Net We use SemWeb.NET , a Semantic Web/RDF open-source library written 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, and making SPARQL queries to remote endpoints. Limited RDFS and general- purpose inferencing is also possible. SemWeb's API is straight-forward and flexible. 2.11 Memory Store The MemoryStore is the main storage mechanism for small amounts of data. Although the MemoryStore inherits from Store, which can be used to group multiple data sources together, it is illegal to call AddSource on a MemoryStore. 3 Crocoo 3.1 Description We have an ASP.NET MVC application that have both public and private features. Typically this is done by implementing an authentication / authorization gateway to gain access to the private features. We use OpenID to provide an authentication layer.  Authentication – You are who you say you are. The application knows your identity.
  • 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 multiple websites, without needing to create new passwords. With OpenID, you control how much of that information is shared with the websites you visit. With OpenID, your password is only given to your identity provider, and that provider then confirms your identity to the websites you visit. Other than your provider, no website ever sees your password, so you don’t need to worry about an unscrupulous or insecure website compromising your identity. Our web application starts by presenting an area that allows the user to log in by offering a set of log-in options, including using their Google or Yahoo account., or to sign up for an new openid using myopenid.com or myid.net, as authentication providers. The following screenshot shows this area. Clicking on one of the providers starts the authentication process. OpenID uses a series of redirects to get the user authenticated. The key is that the authentication occurs on the provider’s site and that’s where the passwords are stored. Clicking one of the above providers results in a post to our 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 the myopenid.com authentication page after the redirect to the myopenid.com provider.
  • 9. Semantic Web Browser 9 OR Clicking the “Agree” or “Allow” button causes post to the myopenid.com servers and another redirect. This time back to our application’s server. This redirect includes information about you that is supplied 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 user is 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 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela Our application can then look up the ‘username’ in the database to determine if the user is allowed access. Users that are allowed access will have the above login area swapped out for a panel that provides access to features only available to authenticated users. The username and your picture are now displayed. The search area and other buttons are now available. The following screenshot is an example. After you logged in successfully, the user can edit his/her profile, find or add friends, 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 other video recommended for you from your friends, or last viewed. In the edit profile area the user can edit his/her profile by mentioning surname, first name, gender, e-mail address and browsing a profile picture.
  • 11. Semantic Web Browser 11 In the RDF file the tags that have “none” value are replaced with the value from the text box from the profile. We use Google search api within our asp .net application to retrieve photos from the Google photo sharing service using a variety of feeds - public photos and videos, favorites, friends, news, discussions, and more. We display them on the page, according with the search. Responses can be formatted in XML.
  • 12. 12 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela We use dotnetopenauth 3.2 to implement Openid in an ASP.NET project. We get the username (or email address) when the user logs in by sending a FetchRequest for email marked as a required attribute. The OpenIdRelyingParty.GetResponse() method returns an IAuthenticationResponse interface that has a ClaimedIdentifier property on it you can get. When using the youtube search api you can find videos in two different ways: searching via tags or via “full sentence”. I recommend to search via tags because videos are saved by word keys ( categories ). These categories are saved in rdf in the topic interest tag and then we can use them to recommend to show users other videos related to the one already saw.
  • 13. Semantic Web Browser 13 One of the most important features of our application is on the find friend page. Here, with the help of the one of the most rigorous sparql queries we find all the users with surname provided by the Crocoo’s client and return all the profiles that exists. You can also select one of them and press the Add friend 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 search of the user. After that, you are moved to youtube and retrieve the most 5 related videos for that topic. 4 Conclusions Our application is more a mashup one, and it can be use by anyone who want to have a more precise and detailed search without open all search tools. The user will receive also some recommendations related with his/her searched words or others viewed by their friends. We think that this application can be used like a real browser because it offers diverse possibilities of search and half of the user’s searches are saved in a rdf data base and then used to get relevant information ( blogs, pictures, videos, web sites, books, news ).
  • 14. 14 Butnaru Maria; Dorofte Andra Calina; Iarca Daniela 5 Future plans This application can be improved by adding other functions and utilities. For example a classification related with the user’s interests. The idea : user1 is friend with user2, user 2 likes topic1, then, user1 may like topic1. To classify all sites viewed by user in good and bad ones, in correlation with their feelings about the topic. The most important update for this application can be changing it into an extension.
  • 15. Semantic Web Browser 15 References 1. http://www.asp.net/ 2. http://www.rankforsales.com/google-api-s-and-their-uses.html 3. http://infomesh.net/2001/swintro/ 4. http://razor.occams.info/code/semweb/ 5. wikipedia.org 6. http://www.altova.com/semantic_web.html 7. http://www.fiftyfoureleven.com/ 8. http://en.csharp- online.net/WCF_Essentials%E2%80%94Endpoints 9. http://openid.net/