1 / 66

Introduction to Web Science

Introduction to Web Science. Maintaining Information on the Web. Six challenges of the Knowledge Life Cycle. Acquire Model Reuse Retrieve Publish Maintain. Prediction. Ontology maintenance will become the significant problem as ontologies become more mainstream

Ava
Download Presentation

Introduction to Web Science

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Web Science Maintaining Information on the Web

  2. Six challenges of the Knowledge Life Cycle • Acquire • Model • Reuse • Retrieve • Publish • Maintain

  3. Prediction • Ontology maintenance will become the significant problem as ontologies become more mainstream • High quality ontologies are easier to maintain

  4. What makes a good quality ontology? • Coverage • Correctness • Consistency • Richness • Organisation • Relation to reality • Making meaning clear

  5. Common modelling pitfalls • Instantiation • Constitution • Composition • Disjunction • Polysemy

  6. Instantiation (1) • Which one is correct?

  7. Instantiation (2) • Question • What PDA model do you sell? • Answer • My PDA is not a PDA model! • So you wouldn’t sell your PDA!

  8. Composition (1) • What’s incorrect with this?

  9. Composition (2) • Question • What computers do you sell? • Answer • Definitely not disk drives and memory is the answer!

  10. Disjunction (1)

  11. Disjunction (2)

  12. Disjunction (2)

  13. Disjunction (3)

  14. Polysemy (1) • Words with more than one meaning … • What is a book? • A physical object • “The DaVinci Code” • An abstract entity • A Book by Dan Brown

  15. Polysemy (2) • We must be consistent with what is a book!

  16. Constitution (1) • Computer should not form part of the hierarchy, different level of constitution

  17. Constitution (2) • What kind of matter conducts electricity? • Answer should not be computer

  18. Making Meaning Clear • Part-of relates parts to their wholes • E.g. part-of(engine,car) • Part-of is irreflexive • Part-of is anti-symmetric • Nothing can have only one part

  19. Requirement for Ontology Management(1/2) • Ontology management • Stored, aligned, evolution need to be managed • Alignment • the ontologies either need to be integrated • Because, re-used • Ontology alignment is very relevant in a Semantic Web context • separate ontologies should be aligned and linked

  20. Requirement for Ontology Management(2/2) • Support for evolving ontologies • change in the real world (E.g. Car engines) • adaptations to different tasks (E.g. Wine and food) • alignments to other ontologies (E.g. Travel and food) • Ontology library systems • grouping, reorganizing ontologies for further re-use • integration, maintenance, mapping, versioning

  21. Aligning Ontologies (1) • Why is Aligning Needed • created to link different terminologies (E.g. books) • modeling styles used in these domain specific ontologies • creating bridges between separated pieces of knowledge

  22. (The alignments) Aligning Ontologies (2) • Aligning Annotated XML Documents

  23. Supporting Ontology Change (1) • Ontologies specific • Not static, evolution is need • Reasons of changes in ontologies • Changes in the domain • Change in the real world • Domain to be modified • Changes in the conceptualization • Different perspective • E.g. Pet shop vrs Reptile Ontology • Changes in the specification • Translation – retain the semantics

  24. Supporting Ontology Change (2) • Changes in ontologies involve Several Problems • Effects of Ontology Change • Different interpretation or may use unknown terms • Changes to the source ontology • Applications that use the ontology may also be hampered

  25. Supporting Ontology Change (3) • Change Management • Comparing Ontologies • Logical definition change • Non-logical change • Identifier change • Addition of definitions • Deletion of definitions • Specification of Change • Transformation or actual change • Conceptual relation • Descriptive meta-data like date, author, and reason of the update • Valid context

  26. Organising Ontologies (1) • Different ontologies increasing • Task of storing • Maintaining and re-organizing • Ontology library system • Tool in grouping and re-organizing ontologies • Re-use, integration, maintenance and versioning

  27. Organising Ontologies (2) • Sesame • Open storage, identification and versioning of ontologies • Smooth access to existing ontologies and advanced support in adapting ontologies to certain domain and task-specific circumstances • Fully employing the power of standardization and providing access to upper-layer ontologies and standard representation languages

  28. Organising Ontologies (3) • Sesame Requirements (Aspects of an ontology library system)

  29. Organising Ontologies (4) • Functionality of an Ontology Storage System • Management • Storage • easily accessible • Ontologies classified • Stored in modules (because ontology re-use) • Identification • Unique identifier • Versioning • Ensuring consistency

  30. Organising Ontologies (5) • Functionality of an Ontology Storage System • Adaptation • Searching • how to search ontology • Editing • how to add, delete and edit specific ontologies • Reasoning • How to derive consequences from an ontology

  31. Organising Ontologies (6) • Functionality of an Ontology Storage System • Standardization • Language • Kind of standard ontology language used in the ontology library system • E.g. RDFS, XMLS, DAML+OIL • Upper-level Ontologies

  32. Organising Ontologies (7) • Current storage systems • Adaptation • Searching • Access through the Internet or World Wide Web • Offer Simple browsing only • SQL-based searching • Editing • Simple editing function • Reasoning • Very simple reasoning function • E.g. WebOnto(rule-based reasoning), Ontolingua (ontology testing), SHOE(ontology revision)

  33. Organising Ontologies (8) • Requirement for a Storage System • Other requirements • Ontology scalability • Maintenance facility • Explicit documentation

  34. Translating between Ontologies • XSLT stands for Extensible Stylesheet Language Transformations • XSLT is used to transform XML documents into other kinds of documents--usually, but not necessarily, XHTML • XSLT uses two input files: • The XML document containing the actual data • The XSL document containing both the “framework” in which to insert the data, and XSLT commands to do so

  35. Very simple example • File data.xml: • <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="render.xsl"?><message>Howdy!</message> • File render.xsl: • <?xml version="1.0"?><xsl:stylesheet version="1.0” xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><!-- one rule, to transform the input root (/) --> <xsl:template match="/"><html><body><h1><xsl:value-of select="message"/></h1> </body></html> </xsl:template></xsl:stylesheet>

  36. The .xsl file • An XSLT document has the .xsl extension • The XSLT document begins with: • <?xml version="1.0"?> • <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/ XSL/Transform"> • Contains one or more templates, such as: • <xsl:template match="/"> ... </xsl:template> • And ends with: • </xsl:stylesheet>

  37. Finding the message text • The template <xsl:template match="/"> says to select the entire file • You can think of this as selecting the root node of the XML tree • Inside this template, • <xsl:value-of select="message"/> selects the message child • Alternative Xpath expressions that would also work: • ./message • /message/text() (text() is an XPath function) • ./message/text()

  38. Putting it together • The XSL was: <xsl:template match="/"> <html><body> <h1><xsl:value-of select="message"/></h1> </body></html> </xsl:template> • The <xsl:template match="/"> chooses the root • The <html><body> <h1> is written to the output file • The contents of message is written to the output file • The </h1> </body></html> is written to the output file • The resultant file looks like:<html><body> <h1>Howdy!</h1> </body></html>

  39. How XSLT works • The XML text document is read in and stored as a tree of nodes • The <xsl:template match="/"> template is used to select the entire tree • The rules within the template are applied to the matching nodes, thus changing the structure of the XML tree • Unmatched parts of the XML tree are not changed • After the template is applied, the tree is written out again as a text document

  40. Where XSLT can be used • With an appropriate program, such as Xerces, XSLT can be used to read and write files • A server can use XSLT to change XML files into HTML files before sending them to the client • A modern browser can use XSLT to change XML into HTML on the client side • Most users seldom update their browsers • If you want “everyone” to see your pages, do any XSL processing on the server side • Otherwise, think about what best fits your situation

  41. xsl:value-of • <xsl:value-of select="XPath expression"/> selects the contents of an element and adds it to the output stream • The select attribute is required • Example (from an earlier slide): • <h1> <xsl:value-of select="message"/> </h1>

  42. xsl:for-each • xsl:for-each is a kind of loop statement • The syntax is <xsl:for-each select="XPath expression">Text to insert and rules to apply </xsl:for-each> • Example: to select every book element irrespective of where it is (//book) and make an unordered list (<ul>) of their titles (title), use: <ul> <xsl:for-each select="//book"> <li> <xsl:value-of select="title"/> </li> </xsl:for-each> </ul>

  43. Filtering output • You can filter (restrict) output by adding a criterion to the select attribute’s value: <ul> <xsl:for-each select="//book"> <li> <xsl:value-of select="title[../author=‘Dan Brown']"/> </li> </xsl:for-each> </ul>

  44. Filter details • Here is the filter we just used:<xsl:value-of select="title[../author=‘Dan Brown'"]/> • author is a sibling of title, so from title we have to go up to its parent, book, then back down to author • This filter requires a quote within a quote, so we need both single quotes and double quotes • Legal filter operators are:= != &lt; &gt;

  45. But it doesn’t work right! • Here’s what we did: <xsl:for-each select="//book"> <li> <xsl:value-of select="title[../author=‘Dan Brown']"/> </li> </xsl:for-each> • This will output <li> and </li> for every book, so we will get empty bullets for authors other than Dan Brown • There is no obvious way to solve this with just xsl:value-of

  46. xsl:if • xsl:if allows us to include content if a given condition (in the test attribute) is true • Example: <xsl:for-each select="//book"> <xsl:if test="author=‘Dan Brown'"> <li> <xsl:value-of select="title"/> </li> </xsl:if> </xsl:for-each> • This does work correctly!

  47. xsl:choose • The xsl:choose ... xsl:when ... xsl:otherwise construct is XML’s equivalent of Java’s switch ... case ... default statement • The syntax is:<xsl:choose> <xsl:when test="some condition">... some code ... </xsl:when> <xsl:otherwise>... some code ... </xsl:otherwise></xsl:choose>

  48. xsl:sort • You can place an xsl:sort inside an xsl:for-each • The attribute of the sort tells what field to sort on • Example: <ul> <xsl:for-each select="//book"> <xsl:sort select="author"/> <li> <xsl:value-of select="title"/> by <xsl:value-of select="author"> </li> </xsl:for-each> </ul> • This example creates a list of titles and authors, sorted by author

  49. xsl:text • <xsl:text>...</xsl:text> helps deal space related problems: • XSL isn’t very careful with whitespace in the document • This doesn’t matter much for HTML, which collapses all whitespace anyway (though the HTML source may look ugly) • <xsl:text> gives you much better control over whitespace; it acts like the <pre> element in HTML

  50. Creating tags from XML data • Suppose the XML contains <name>Dr. Dave's Home Page</name><url>http://www.cis.upenn.edu/~matuszek</url> • And you want to turn this into<a href="http://www.cis.upenn.edu/~matuszek">Dr. Dave's Home Page</a> • We need additional tools to do this

More Related