Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SHOE (simple html ontology extensions)


Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

SHOE (simple html ontology extensions)

  1. 1. Simple HTML Ontology ExtensionsAhmet Selman BozkırHacettepe University Computer Eng. Dept.
  2. 2. Contents• What’s SHOE?• What SHOE Isnt...• Specifications• Base Ontology of SHOE• Creating a Basic Ontology• Annotating an HTML document with SHOE• Inferences in SHOE Ontologies• References
  3. 3. What’s SHOE?• HTML was never meant for computer consumption; its function is for displaying data for humans to read. The "knowledge" on a web page is in a human-readable language (usually English), laid out with tables and graphics and frames in ways that we as humans comprehend visually.• Unfortunately, intelligent agents arent human. Even with state-of-the-art natural language technology, getting a computer to read and understand web documents is very difficult. This makes it very difficult to create an intelligent agent that can wander the web on its own, reading and comprehending web pages as it goes.• So what can be done?
  4. 4. What’s SHOE?• Answer is simply SHOE.• SHOE eliminates this problem by making it possible for web pages to include knowledge that intelligent agents can actually read.• SHOE is a small extension to HTML which allows web page authors to annotate their web documents with machine-readable knowledge. SHOE makes real intelligent agent software on the web possible.
  5. 5. What’s SHOE?• SHOE is an HTML-based knowledge representation language.• SHOE can be used to embed data from a variety of sources and for a variety of purposes. It is not intended for any one particular function. However, SHOE is primarily meant to make it possible for web robots and intelligent agents to finally make a dent in making all our lives a little easier.
  6. 6. What’s SHOE? Developed by: Parallel Understanding Systems Group, Prof. Jim Hendler Department of Computer Science University of Maryland at College Park To sum up...• Superset of HTML• To specify ontologies for Internet-agents• Annotate web documents semantically with machine readable knowledge• Compatible to SGML and XML• But now work at the University of Maryland on web ontologies continues in the Semantic Web and Agents Project , which uses the Web Ontology Languages OWL and DAML+OIL. These languages are results of standardization efforts that are in part based on SHOE
  7. 7. What SHOE Isnt...• It is not just a meta-content language. It enables web designers to embed documents not only with information about the overall "content" of those documents but any arbitrary information at all. SHOE also allows agents to make automatic inferences about the data they learn, provides a hierarchical categorization scheme, and a sophisticated ontology mechanism designed specifically for the web needs• It is purposely not a verbose knowledge-representation system. SHOE attempts to provide as rich expressivity as possible while keeping in mind that theres a tremendous amount of data out there.• It does not have any pre-defined ontologies, categories, relationships, or inferences. SHOE is a language in which categories, relationships, attributes, inferences, etc. can be defined by ontologies, but SHOE itself does not define them.
  8. 8. Specifications• Everything is started with adding this startup tag into head of your classic HTML document. <META HTTP-EQUIV="SHOE" CONTENT="VERSION=1.0">• You may use this logo that represents your web page supports SHOE.
  9. 9. Specifications SHOE uses the following additional tags as an extension to HTML: For the definition of ontologies: ONTOLOGY, /ONTOLOGY, USE-ONTOLOGY, DEF-CATEGORY,DEF- RELATION, /DEF-RELATION, DEF-ARG, DEF-RENAME,DEF- CONSTANT, DEF-TYPE, DEF-INFERENCE, /DEF-INFERENCE,INF- IF, /INF-IF, INF-THEN, /INF- THEN, COMPARISON,/COMPARISON, CATEGORY, RELATION, /RELAT ION, ARG. For the annotation of HTML-pages additionally: INSTANCE, /INSTANCE.
  10. 10. Creating a Basic Ontology <HTML> <HEAD> <!--Indication that this document is conformant with SHOE 1.0-> <META HTTP-EQUIV="SHOE" CONTENT="VERSION=1.0“> <TITLE> Our CS Ontology </TITLE> </HEAD> <BODY> <!--Declaration of the ontology„s name and version--> <ONTOLOGY ID="cs-dept-ontology" VERSION="1.0“> <!--Declaration to use another yet existing ontology--> <USE-ONTOLOGY ID="base-ontology" VERSION="1.0" PREFIX="base” URL="">• The prefix “base” is used to indicate explicit references to elements of the imported base ontology.
  11. 11. Creating a Basic Ontology Since our ontology deals with computer science departments, lets toss the following categorization facts into the ontology:• departments and research groups are organizations.• faculty, assistants, and administrative staff are workers.• workers and students are people.• postdocs, lecturers, and professors are a faculty.• research assistants and teaching assistants are assistants.• graduate students and undergraduate students are students.• secretaries are administrative staff.• chairs are both professors and administrative staff.• organizations, publications, and people are "basic items". The fact that chairs can be both professors and administrative staff indicates that SHOE provides multiple inheritance: categories can have more than one supercategory. We declare all these things by saying:
  12. 12. Creating a Basic Ontology• <!-- Here we lay out our category hierarchy --> <DEF-CATEGORY NAME="Organization" ISA="base.SHOEEntity"> <DEF-CATEGORY NAME="Person" ISA="base.SHOEEntity"> <DEF-CATEGORY NAME="Publication" ISA="base.SHOEEntity"> <DEF-CATEGORY NAME="ResearchGroup" ISA="Organization"> <DEF-CATEGORY NAME="Department" ISA="Organization"> <DEF-CATEGORY NAME="Worker" ISA="Person"> <DEF-CATEGORY NAME="Faculty" ISA="Worker"> <DEF-CATEGORY NAME="Assistant" ISA="Worker"> <DEF-CATEGORY NAME="AdministrativeStaff" ISA="Worker"> <DEF-CATEGORY NAME="Student" ISA="Person"> <DEF-CATEGORY NAME="PostDoc" ISA="Faculty"> <DEF-CATEGORY NAME="Lecturer" ISA="Faculty"> <DEF-CATEGORY NAME="Professor" ISA="Faculty"> <DEF-CATEGORY NAME="ResearchAssistant" ISA="Assistant"> Multiple <DEF-CATEGORY NAME="TeachingAssistant" ISA="Assistant"> Inheritance <DEF-CATEGORY NAME="GraduateStudent" ISA="Student"> <DEF-CATEGORY NAME="UndergraduateStudent" ISA="Student"> <DEF-CATEGORY NAME="Secretary" ISA="AdministrativeStaff"> <DEF-CATEGORY NAME="Chair" ISA="AdministrativeStaff Professor"> Note that Organization, Publication, and Person subcategorize from base.SHOEEntity, that is, the category SHOEEntity declared in base-ontology. SHOEEntity is the accepted "root" category for all categories youll declare in an ontology, elements at the top of your category hierarchy should subcategorize from it.
  13. 13. SHOE Base Ontology This ontology is declared in this document both in human-readable form (what you see in front of you now) and machine-readable SHOE form (which you can see from viewing the html source of this document) . This base ontology is compatible with version 1.0 of SHOE. 1. Declared Types This ontology declares four basic types, listed below along with their description.• STRING: HTML String Literals, as defined in the HTML 2.0 specification.• NUMBER: Floating-point numerical constants. Knowledge-agents should be able to read common floating-point numbers like 2, 2.0, -1.432e+4, etc.• DATE: Date/Timestamps following RFC 1123, as shown in section 3.3.1 of the HTTP/1.0 specification.• TRUTH: HTML String Literals of the form YES or NO, case-insensitive.
  14. 14. SHOE Base Ontology 2. ISA Hierarchy (Taxonomy) The following taxonomy is the collection of categories declared in this ontology. The hierarchical form is intended to show the ISA chain. Entity Entity SHOEEntity SHOEEntity Entity: The top level of all SHOE classifications. You should not subclass from Entity--usually you should subclass from SHOEEntity or one of its subclasses instead. Entity exists to give the base ontology some flexibility for later versions. SHOEEntity: This should be the root (ancestor) category for all categories declared in SHOE ontologies (other than the Base Ontology). All categories are best hung off of SHOEEntity or a subcategory.
  15. 15. Part of cs-dept-ontology [base.Entity] [base.SHOEEntity] Person Worker Faculty Professor AssistantProfessor AssociateProfessor FullProfessor VisitingProfessor Lecturer PostDoc Assistant ResearchAssistant TeachingAssistant AdministrativeStaff Director Chair {Professor} Dean {Professor} ClericalStaff SystemsStaff Student UndergraduateStudent GraduateStudent Organization Department School
  16. 16. SHOE Base Ontology 3. Relationships Relationships are declared between one or more arguments. Relationship arguments are either types or are categories. If the argument is a category, any subcategory of that category is valid as well. Relation Argument 1 Argument 2 ======================================= description Entity STRING name Entity STRING description: This is a human-readable description of a particular instance. name: This is a human-readable name for a particular instance. Note that STRING is used without a period (as in ".STRING") because this is the base ontology, where it is declared. In other ontologies you make, you should use the period or a full prefix chain to refer to it and other types, relations, and categories declared in the base ontology.
  17. 17. Creating a Basic Ontology (cont’d) Now, lets add to our ontology some simple relationships between elements of different categories.• students have professors as advisors.• organizations have members.• people author publications
  18. 18. Creating a Basic Ontology <DEF-RELATION NAME="advisor"> <DEF-ARG POS="1" TYPE="Student"> <DEF-ARG POS="2" TYPE="Professor"> </DEF-RELATION> <DEF-RELATION NAME="member"> <DEF-ARG POS="1" TYPE="Organization"> <DEF-ARG POS="2" TYPE="Person"> </DEF-RELATION> <DEF-RELATION NAME="publicationAuthor"> <DEF-ARG POS="1" TYPE="Publication"> <DEF-ARG POS="2" TYPE="Person"> </DEF-RELATION> POS is used define the position of the arguments: 1...n
  19. 19. Creating a Basic Ontology Its also often useful to use relationships other than just classifications. We can also have the following kinds of relationships with specific kinds of data types:• publications are published on a date.• students age is a number.• everything can have a name which is a string (that is, a phrase like "Robert Kohout").• whether a professor is tenured or not is a truth (a value of "YES" or "NO")
  20. 20. Creating a Basic Ontology• <DEF-RELATION NAME="publicationDate"> <DEF-ARG POS="1" TYPE="Publication"> <DEF-ARG POS="2" TYPE=".DATE"> </DEF-RELATION> <DEF-RELATION NAME="age"> <DEF-ARG POS="1" TYPE="Person"> <DEF-ARG POS="2" TYPE=".NUMBER"> </DEF-RELATION> <DEF-RELATION NAME="name"> <DEF-ARG POS="1" TYPE="base.SHOEEntity"> <DEF-ARG POS="2" TYPE=".STRING"> </DEF-RELATION> <DEF-RELATION NAME="tenured"> <DEF-ARG POS="1" TYPE="Professor"> <DEF-ARG POS="2" TYPE=".TRUTH"> </DEF-RELATION> </ONTOLOGY> </BODY></HTML> The dot “.” is used as an abbreviation for accessing elements of the SHOE base ontology.
  21. 21. Annotating a HTML document <HTML> <HEAD> <TITLE>My Page</TITLE> </HEAD> <BODY> <P> Hi, this is my web page. I am a graduate student and a research assistant. </P> <P> Also, Im 52 years old. </P> <P> My name is George Stephanopolous. </P> <P> Here is a pointer to my <A HREF=""> graduate advisor.</A></P> <P> And <A HREF=""> is a paper I recently wrote. <h3> Brun Hilda </h3> Brun Hilda is a visiting lecturer here from Germany who doesnt have her own web page. However, because I am such a nice person, I have agreed to let part of my web page space belong to her. She is 23. </BODY> </HTML>
  22. 22. Annotating an HTML document This page tells us: That the web page is about a • graduate student • research assistant• The persons name is George Stephanopolous.• The person is 52 years old.• The persons graduate advisor is• The person is the author of the paper Further, weve learned some interesting facts about Brun Hilda:• Shes a lecturer.• She is 23 years old.• Her name is Brun Hilda.
  23. 23. Annotating an HTML document• It so happens that we want to tell these exact things to intelligent agents and other knowledge-gatherers. To do this, we first need to tell the robot that were using SHOE and uniquely define our document as an instance.• An instance is similar to an "entity" as defined in the database world. However, we dont use the term "entity" because "entity" already in common use in another way in HTML and SGML. We begin by declaring that our page uses SHOE 1.0-compliant tags. To do this, in the HEAD section of our document, we add: <META HTTP-EQUIV="SHOE" CONTENT="VERSION=1.0">
  24. 24. Annotating an HTML document Instances and Keys Before we can add semantic information to our web page, we need to define one or more instances, which are data objects which we will classify or relate to one another. Its paramount that instance be unique from one another--we wouldnt want two people writing instances with the same name. SHOE handles this by associating with each instance a unique key. SHOE has a standard protocol for coming up with a key for instances: base them on one (and only one) URL for the web page theyre found on. For example, an instance about my dog Fido, found on some web page, might have the key "". Or Richard Nixons home page might contain a single instance with just his URL as key: "". A web page might have many URLs that lead to it, so youll have to pick which one youll use as its official key and stick with that. This effectively guarantees that instance on other documents cant have the same keys as ones on your document, since no two documents can share the same URL (unless one went away and the other replaced it). <INSTANCE KEY="">
  25. 25. Annotating an HTML document Then declare which ontology will be used.. <USE-ONTOLOGY ID="cs-dept-ontology" URL=" nts/cs.html" VERSION="1.0" PREFIX="cs">
  26. 26. Annotating an HTML document Categorization Next, well classify or categorize the instance were declaring on this web page--that is, well declare what the instance concerns. In SHOE, categorization is done using the CATEGORY tag in conjunction with one or more categories weve picked from the ontology were using. In the body of the document, well add:• <CATEGORY NAME="cs.GraduateStudent"> <CATEGORY NAME="cs.ResearchAssistant"> This says that this instance belongs to the classes or categories "GraduateStudent" and "ResearchAssistant" as defined in the ontology weve defined to use the "cs." prefix (i.e., cs-dept-ontology).
  27. 27. Annotating an HTML document Declaring Relationships Next wed like to tell web robots about relationships to other instances and data. Well start with the relationships between the instance were creating and some ordinary data: like our name and age. <RELATION NAME=""> <ARG POS=1 VALUE=""> <ARG POS=2 VALUE="George Stephanopolous"> </RELATION> <RELATION NAME="cs.age"> <ARG POS=1 VALUE=""> <ARG POS=2 VALUE="52"> </RELATION>
  28. 28. Annotating an HTML document A Nested Instance Finally, poor Brun Hilda, who only exists World- Wide-Web-wise as a mention on our web page, should get an instance all her own so we can declare facts about her. Brun Hilda will be sharing space on Georges web page, so her instance needs a URL different from his instance, but also based on his URL.
  29. 29. Annotating an HTML document <INSTANCE KEY=""> <CATEGORY NAME="cs.Lecturer"> <RELATION NAME= "“> <ARG POS=TO VALUE="Brun Hilda“> </RELATION> <RELATION NAME="cs.age"> <ARG POS=TO VALUE="23“> </RELATION> </INSTANCE>
  30. 30. Annotating an HTML document• Final Product: <INSTANCE KEY=""> <USE-ONTOLOGY ID="cs-dept-ontology" URL="" VERSION="1.0" PREFIX="cs"> <CATEGORY NAME="cs.GraduateStudent"> <CATEGORY NAME="cs.ResearchAssistant"> <RELATION NAME=""> <ARG POS=TO VALUE="George Stephanopolous"> </RELATION> <RELATION NAME="cs.age"> <ARG POS=TO VALUE="52"> </RELATION> <RELATION NAME="cs.advisor"> <ARG POS=TO VALUE=""> </RELATION>
  31. 31. Annotating an HTML document <INSTANCE KEY=""> <CATEGORY NAME="cs.Lecturer“> <RELATION NAME= ""> <ARG POS=TO VALUE="Brun Hilda"> </RELATION> <RELATION NAME="cs.age“> <ARG POS=TO VALUE="23“> </RELATION> </INSTANCE> </INSTANCE> </BODY> </HTML>
  32. 32. Inferences in SHOE Ontologies• Ontologies dont just declare hierarchical categories and valid relationships. They may also declare things that may be inferred from existant claims.• Lets say we wanted to add to our cs-dept-ontology the inference that if someone claims to be a member of an organization, and that organization is a suborganization of a second organization, then the person is also a member of that second organization.• This would save people from claiming that theyre both a member of a research group and its department, for example. Horn-Clauses are used to specify inference-rules in SHOE.•
  33. 33. Inferences in SHOE Ontologies• To do this, we should first lay this inference out in a logical format called a Horn Clause. A Horn clause consists of a head and a body, separated with a ":-". In the head and body are claims; the body can have more than one claim, joined with a "^", which means "and". Claims in a Horn clause usually contain variables, which are wildcards that can be matched against anything, so long as variables of the same name are matched to the same thing. Heres our inference in a Horn Clause (well put question marks in front of variables):• member(?org2,?person) :- member(?org1,?person) ^ subOrganizationOf(?org1,?org2)• This is read as: "?person is a member of ?org2 if ?person is a member of ?org1 and ?org1 is a suborganization of ?org2". In the cs-dept-ontology, this would be written as follows:
  34. 34. Inferences in SHOE Ontologies <DEF-INFERENCE DESCRIPTION="member(?org2,?person) if member(?org1,?person) and subOrganizationOf(?org1,?org2)"> <INF-IF> <RELATION NAME="member"> <ARG POS=1 VALUE="org1" USAGE=VAR> <ARG POS=2 VALUE="per" USAGE=VAR> </RELATION> <RELATION NAME="subOrganizationOf"> <ARG POS=1 VALUE="org1" USAGE=VAR> <ARG POS=2 VALUE="org2" USAGE=VAR> </RELATION> </INF-IF> <INF-THEN> <RELATION NAME="member"> <ARG POS=1 VALUE="org2" USAGE=VAR> <ARG POS=2 VALUE="per" USAGE=VAR> </RELATION> </INF-THEN> </DEF-INFERENCE>
  35. 35. References•
  36. 36. Thanks for Listening meHacettepe University