660 likes | 1.06k Views
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
E N D
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 • High quality ontologies are easier to maintain
What makes a good quality ontology? • Coverage • Correctness • Consistency • Richness • Organisation • Relation to reality • Making meaning clear
Common modelling pitfalls • Instantiation • Constitution • Composition • Disjunction • Polysemy
Instantiation (1) • Which one is correct?
Instantiation (2) • Question • What PDA model do you sell? • Answer • My PDA is not a PDA model! • So you wouldn’t sell your PDA!
Composition (1) • What’s incorrect with this?
Composition (2) • Question • What computers do you sell? • Answer • Definitely not disk drives and memory is the answer!
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
Polysemy (2) • We must be consistent with what is a book!
Constitution (1) • Computer should not form part of the hierarchy, different level of constitution
Constitution (2) • What kind of matter conducts electricity? • Answer should not be computer
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
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
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
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
(The alignments) Aligning Ontologies (2) • Aligning Annotated XML Documents
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
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
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
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
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
Organising Ontologies (3) • Sesame Requirements (Aspects of an ontology library system)
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
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
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
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)
Organising Ontologies (8) • Requirement for a Storage System • Other requirements • Ontology scalability • Maintenance facility • Explicit documentation
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
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>
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>
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()
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>
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
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
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>
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>
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>
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:= != < >
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
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!
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>
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
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
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