CS4140 UNIVERSITY OF WARWICK Department of Computer Science MEng/MSc Year Summer Examinations: 2015/16 Semantic Web MODEL EXAM PAPER - SOLUTIONS Time allowed: 2 hours. Answer FOUR questions. Read carefully the instructions on the answer book and make sure that the particulars required are entered on each answer book. Calculators are not allowed. (continued) Page 1 of 18 CS4140 1. Semantic Web Generalities, Applications Semantic Web (a) Consider the following statements, and comment on their meaning. Give also an example for each. (i) HTML is concerned with the 'look' only. [2] Answer (ET): HTML constructs can determine how an element (or a part of a text) looks like in a web document. E.g. <H1> Title: Professor </H1> tells the parser this is a level one heading, and should be displayed in large and visible characters. Marking:1 mark per line equivalent. (ii) XML is concerned with the structure and localised tags. [4] Answer (ET): XML constructs can the structure of a web document. E.g., <A> <B/> </A> suggest that element B is contained in element A. XML constructs allow for creating one's own, localised tags, which can be used only within a given document, or can be shared between documents. E.g. <title> Professor </title> tells the parser this text is labelled with the tag created for it. Marking: 1 mark per line equivalent. (iii) RDF is concerned with relationships. [2] Answer (ET): RDF constructs can determine how an element are related to each-other. All elements need to have a URI. E.g. Subject (John Brown) - Predicate (is-a) -> Professor. Marking: 1 mark per line equivalent. (iv) RDFS extends RDF with a specific vocabulary. [2] Answer (ET): RDFS extends RDF with a standard ontology vocabulary. E.g., Class, Property - type, subClassOf - domain, range. Marking: 1 mark per line equivalent. (v) OWL extends RDFS by constructing classes and domain terms. [5] Answer (ET): OWL extends RDFS with the capability of constructing classes, as well as agreeing on domain terms. E.g., owl:oneOf allows you to construct classes by enumerating them; similar for instersection, union, complement; you can construct classes through property restriction; It is a much more powerful language than RDFS, but it builds on top of RDFS and RDF. RDFS does not provide similarity and/or differences of terms. E.g., sameAs construct, starting from OWL Lite. Marking: 1 mark per line equivalent. (continued) Page 2 of 18 CS4140 (b) Which RDF features are avoided in Linked data, and why? Give an example of each of these features (you can use (Subject, Predicate, Object) notation, for simplification, or any other notation you are familiar with). [10] Answer (PS): Reification is avoided, because it is hard to query with SPARQL. E.g.,: (triple123, creator, John); (triple123, subject, Item123); (triple123,predicate, weight); (triple123, object, 2.4); (triple123, type, statement); Collections are avoided, also because they are hard to query with SPARQL. E.g., instead of the collection syntax, use multiple triples with same predicates: (Beatles, contains, George); (Beatles, contains, John); (Beatles, contains, Paul); (Beatles, contains, Ringo) Containers are avoided, because they are hard to query with SPARQL. E.g., instead of the collection syntax, use multiple triples with same predicates: same as above. Alternatively, a sequence could be transformed into (Beatles, first, George); (Beatles, second, Ringo), etc. Blank nodes are avoided, because they make merging less effective. E.g., blank nodes as would appear in containers above. (Beatles, artist, Bag). Bag here is a blank node. They have no semantics outside the domain, so are more difficult to use. Marking: 0.5 mark per correct RDF feature; 1 mark per correct explanation; 1 mark per correct example. 2. RDF, RDFS (a) Consider the RDF snippets below. What kind of RDF structure do they showcase? Define the terms encountered. Draw the equivalent of these RDF snippets in the RDF graphical language. (i) <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/students/vocab#"> <rdf:Description rdf:about="http://example.org/courses/6.001"> <s:students> <rdf:Bag> <rdf:li rdf:resource="http://example.org/students/Amy"/> <rdf:li rdf:resource="http://example.org/students/Mohamed"/> <rdf:li rdf:resource="http://example.org/students/Johann"/> <rdf:li rdf:resource="http://example.org/students/Maria"/> <rdf:li rdf:resource="http://example.org/students/Phuong"/> </rdf:Bag> </s:students> </rdf:Description> </rdf:RDF> [4] (continued) Page 3 of 18 CS4140 Answer (ET): This is a bag. A bag is used to describe a list of values that is intended to be unordered. A bag element may contain duplicate values. . Marking: 0.5 mark per correct name. 2 marks per correct definition. 0.5 mark per correct use of empty element. 1 mark per correct connection of the Bag element.1 mark per correct connections for bag elements. (ii) <rdf:Description rdf:about="http://www.recshop.fake/cd/Beatles"> <cd:artist> <rdf:Seq> <rdf:li>George</rdf:li> <rdf:li>John</rdf:li> <rdf:li>Paul</rdf:li> <rdf:li>Ringo</rdf:li> </rdf:Seq> </cd:artist> </rdf:Description> [4] (continued) Page 4 of 18 CS4140 Answer (ET): This is a sequence. A sequence is used to describe a list of values that is intended to be ordered. A sequence element may contain duplicate values. http://www.recshop.fake/cd/Beatles http://www.w3.org/1999/02/22rdf-syntax-ns#type http://www.w3.org/1999/02/22-rdf-syntax-ns#_1 http://www.w3.org/1999/02/22-rdf-syntax-ns#_2 http://www.w3.org/1999/02/22-rdf-syntax-ns#_3 http://www.w3.org/1999/02/22-rdf-syntax-ns#_4 http://www.w3.org/1999/02/22-rdf-syntaxns#Seq George John Paul Ringp Marking: 0.5 mark per correct name. 2 marks per correct definition. 0.5 mark per correct use of empty element. 1 mark per correct connection of the Bag element.1 mark per correct connections for sequence elements. (iii) <rdf:Description rdf:about="http://www.recshop.fake/cd/Beatles"> <cd:format> <rdf:Alt> <rdf:li>CD</rdf:li> <rdf:li>Record</rdf:li> <rdf:li>Tape</rdf:li> </rdf:Alt> </cd:format> </rdf:Description> [4] (continued) Page 5 of 18 CS4140 Answer (ET): This is a list of alternatives. An alt element is used to describe a list of values that is intended to be unordered, and that are alternatives. An alt element may contain duplicate values. . Marking: 0.5 mark per correct name. 2 marks per correct definition. 0.5 mark per correct use of empty element. 1 mark per correct connection of the Bag element.1 mark per correct connections for bag elements. (iv) <rdf:Description rdf:about="http://example.org/courses/6.001"> <voc:students rdf:parseType="Collection"> <rdf:Description rdf:about="http://example.org/students/Amy"/> <rdf:Description rdf:about="http://example.org/students/Mohamed"/> <rdf:Description rdf:about="http://example.org/students/Johan"/> </cd:artist> </rdf:Description> [6] (continued) Page 6 of 18 CS4140 Answer (ET): This is a collection. A collection element is used to describe a list of values that is intended to closed. It describes a group that contains only the specified members. . Marking: 0.5 mark per correct name. 2 marks per correct definition. 0.5 mark per correct use of empty element. 1 mark per correct use of the nil element. 1 mark per correct connections for bag elements. (b) Translate into (brief) natural language the following RDF snippets: (i) <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cd="http://www.recshop.fake/cd#"> <rdf:Description rdf:about="http://www.recshop.fake/cd/Empire Burlesque" cd:artist="Bob Dylan" cd:country="USA" cd:company="Columbia" cd:price="10.90" cd:year="1985" /> </rdf:RDF> [3] (continued) Page 7 of 18 CS4140 Answer (PS): The Empire Burlesque CD contains music by Bob Dylan, was published in 1985 in the USA by the company Columbia, and costs $10.90. Marking: 0.5 mark per correct use of each noun or group thereof. (ii) <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.transport.fake/trains#"> <rdf:Description rdf:ID="train"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/> </rdf:Description> <rdf:Description rdf:ID="shinkansen"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/> <rdfs:subClassOf rdf:resource="#train"/> </rdf:Description> </rdf:RDF> [1] Answer (PS): A shinkansen is a type of train. Marking: 1 mark per correct line or equivalent. (c) Write the RDF code snippet in (b)(ii) above in its abbreviated form. [3] Answer (PS): <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.transport.fake/trains#"> <rdfs:Class rdf:ID="train" /> <rdfs:Class rdf:ID="shinkansen"> <rdfs:subClassOf rdf:resource="#train"/> </rdfs:Class> </rdf:RDF> Marking: 0.5 marks xml line; 0.5 mark rdf line and namespaces; 0.5 marks each class line; 0.5 mark subclass line; 0.5 marks for closing tags. 3. SPARQL (a) Suppose that an RDF model represents information about real world entities of unknown types. The entities can be persons, locations, books, monuments, organizations, etc. (continued) Page 8 of 18 CS4140 (i) Write a SPARQL query to return all possible information about all kinds of entities. [1] Answer (PS): SELECT ?x ?y ?z WHERE { ?x ?y ?z } Marking: 1 mark per answer. (ii) Write a SPARQL query that can return at most 5 triples representing information. [1] Answer (PS): SELECT ?x ?y ?z WHERE { ?x ?y ?z } LIMIT 5 Marking: 1 mark per answer. (iii) Consider that one of the previous queries has shown that the information on the queried RDF document is about books, their authors, their titles, their publisher, as defined by the standard vocabulary from http://purl.org/dc/elements/1.1/. Write a SPARQL query that can return the author, title and publishing house of a book. Hint: Use relations from the vocabulary, such as 'creator', 'title', 'publisher'. [5] Answer (PS): PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?author ?publishingHouse WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. ?book dc:publisher ?publishingHouse } Marking: 1 mark for the correct definition of the prefix; 0.5 marks for the correct selection; 0.5 marks for each correct triple; 1 mark for correct use of prefixes; 1 mark for correct use of '.'. (iv) Rewrite and extend the SPARQL query at 3a(iii) above, if we don't know for sure if the publishing house and the date of publication is known, and we want to retrieve the author, title, publishing house and date of publication of a book. Discuss briefly your syntax choices. Hint: use relations from the standard vocabulary given in 3a(iii), including 'date'. [6] (continued) Page 9 of 18 CS4140 Answer (PS): PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?bookTitle ?author ?publishingHouse ?dateOfPublication WHERE { ?book dc:creator ?author. ?book dc:title ?bookTitle. OPTIONAL {?book dc:publisher ?publishingHouse}. OPTIONAL {?book dc:date ?dateOfPublication} } One OPTIONAL could have embraced both publishing house and date of publication. However, then they would have needed to exist at the same time. Thus, this syntax above allows for either of them not to be present, and still retrieves some results. Marking: 0.5 mark for the correct definition of the prefix; 0.5 marks for the correct selection; 0.5 marks for each correct triple; 1 mark for correct use of prefixes. 1 mark for discussion. 1 mark for correct use of {}. (b) Consider the following SPARQL snippet: SELECT ?a ?c WHERE {?a ?b ?c . ?a ?d ?c} Rewrite the query twice, to show two ways of abbreviating multiple objects in a query. Explain what is abbreviated at each rewrite, and why it can be abbreviated this way. [6] Answer (ET): SELECT ?a ?c WHERE {?a ?b ?c ; ?d ?c } The subject is abbreviated here, as they are the same and thus repetitious. SELECT ?a ?c WHERE {?a ?b ?c , ?d } The subject as well as the object are abbreviated here, as they are the same and thus repetitious. Marking: 1 mark per correct query rewrite. 1 mark per correct explanation about the 'what', and 1 mark for the 'why'. (c) Explain the constructs DESCRIBE and CONSTRUCT in SPARQL, by discussing the reason why they were introduced, the output they can provide. Give an example for each, to illustrate your explanation. [6] (continued) Page 10 of 18 CS4140 Answer (T): PREFIX books: <http://example.org/book/> PREFIX dc: <http://purl.org/dc/elements/1.1/> DESCRIBE ?book WHERE { ?book dc:creator ?author } Result is in RDF triples, in any RDF serialization. The SPARQL DESCRIBE query does not actually return resources matched by the graph pattern of the query, but an RDF graph that "describes" those resources. It is up to the SPARQL service to choose what triples are included to describe a resource. CONSTRUCT { ?student b:studyFriend ?friend } WHERE { ?student b:studies ?module . ?student foaf:knows ?friend . ?friend b:studies ?module } } CONSTRUCT returns a graph—a set of triples. It is used to create new triples. The section after the CONSTRUCT keyword is a specification, in triples, of an RDF graph that is constructed to hold the search result. If there is more than one search result, the triples from each result are combined. Marking: 1 mark per correct query example. 1 mark per correct explanation about the 'why', and 1 mark for the correct output explanation. 4. OWL, Ontology Development (a) Answer the following questions: (i) Why do we need to develop an ontology? Mention three reasons. . Answer (T): [3] We need to develop an ontology for: a shared understanding of information structure (between people or agents) enabling reuse of domain knowledge making domain assumptions explicit separating domain knowledge from operational knowledge analysing the domain knowledge Marking: 1 mark for any of the correct answers above. (ii) List the seven ontology design steps. . Answer (T): 1. 2. 3. 4. 5. 6. 7. [7] Determine the domain and scope of the ontology Consider reusing existing ontologies Enumerate important terms in the ontology Define the classes and the class hierarchy Define the properties of classes—slots Define the facets of the slots Create instances Marking: 1 mark for any of the correct answers above. (continued) Page 11 of 18 CS4140 (iii) What is an ontology? Answer (T): [3] A way of encoding domain knowledge, linking the knowledge, which allows for reasoning with the data Ontologies allow for data integration and inference, for automated query-answering and automated use of data formal explicit description of concepts in a domain of discourse (classes/concepts), concept properties (slots/roles/ properties), and restrictions on slots (facets /role restrictions) Marking: 3 marks for any of the correct answers above. Note: each of the definitions contains 3 specific parts that need mentioned for receiving full marks. (b) Write the following example snippets of code in OWL or OWL2 (as appropriate) in the OWL/XML syntax: (i) An example of an individual. . Answer (PS): [2] Short version: <Region rdf:ID="CentralCoastRegion" /> Long version: <owl:Thing rdf:ID="CentralCoastRegion" /> <owl:Thing rdf:about="#CentralCoastRegion"> <rdf:type rdf:resource="#Region"/> </owl:Thing> In both versions, CentralCoastRegion is an individual (belonging to the class Region). Marking: 2 marks for any of the correct answers above. (ii) An example of an object property. . Answer (PS): [4] <owl:ObjectProperty rdf:ID=“hasPart"> <rdfs:domain rdf:resource="#Destination" /> <rdfs:range rdf:resource="#Beaches" /> </owl:ObjectProperty> The property is hasPart. Marking: 1 mark for range, 1 mark for domain, 1mark for correct usage of ObjectProperty, 1 mark for property mention. Note: domain can be undefined as well, and that's acceptable. (c) Explain in natural and mathematical language what the following OWL2 constructions mean. Use also graphical representations. (continued) Page 12 of 18 CS4140 (i) <owl:ReflexiveProperty rdf:ID="hasSameAge"/> . Answer (PS): [3] natural language: The property hasSameAge is reflexive, meaning that its domain and range are the same, and that it applies on the same individual. mathematical language: In other words, for all x, R(x,x). image: Marking: 1 mark for each language. (ii) <owl:AssymmetricProperty rdf:ID="isThinnerThan"/> . Answer (PS): [3] natural language: The property isThinner is assymetric, meaning that if this property exists between two individuals, it cannot exist between the two individuals in reverse order. mathematical language: In other words, for all x,y, if R(x,y) then not R(y,x). image: Marking: 1 mark for each language. (iii) <owl:ObjectProperty rdf:ID="buys"> [3] <owl:propertyChainAxiom ref:parseType="Collection"> <owl:ObjectProperty rdf:about="#buys"/> <owl:ObjectProperty rdf:about="#hasPart"/> </owl:propertyChainAxiom> </owl:ObjectProperty> Answer (PS): natural language: The property buys has as sub-property chain the hasPart property. This means that if somebody buys car, they have also bought all its parts. mathematical language: In other words, for all x,y,z if buys(x,y) and hasPart (y,z) then buys(x,z). image: Marking: 1 mark for each language. (continued) Page 13 of 18 CS4140 5. Description Logic, Web 2.0 (a) Answer the following questions: (i) What is description logics (DL), what does it allow and what are its advantages? Answer (T): [3] Not a single logic, but a family of KR logics Subsets of first-order logic (FOL) Description Logics allow formal concept definitions that can be reasoned about to be expressed Advantages: o Well-defined model theory o Known computational complexity Marking: 1 mark for definition, 1 mark for what it allows, 1 mark for advantages. (ii) Based on the example below, explain reasoning (here, classification) in DL. Make sure to explain all relations and symbols encountered in the example. [3] Answer (ET): Reasoning in DL: o A classifier (a reasoning engine) can construct class hierarchy from ontology concepts defs o Concept definitions composed from primitives >> ontology is more maintainable In the example: o Person, Man, Woman, Uncle, Aunt are classes. o The arrows show the class- sub-class relation (e.g., Uncle is a sub-class of Man). o All classes are a subclass of the 'All' class, and the class 'Nothing' is a subclass of all classes. Marking: 1 mark for explaining reasoning in DL, 1 mark for classes recognition, 1 mark for relation recognition, 1 mark for All/Nothing classes recognition. (iii) What is an A Box and what is a T Box in DL? Give an example of each. Answer (ET): o o [4] A Box = Assertion Box; this represents the knowledge base in DL. Example: hasPet(mary, fluffy) T Box = Terminology; this represents the definitions of concepts in the ontology. Example: A ≡ B [A is defined by the expression B] Marking: 1 mark for each definition, 1 mark for each example. (iv) What are classes and relations called in DL? What is subsumption in DL? Give an example of each. [6] (continued) Page 14 of 18 CS4140 Answer (ET+PS): o o o A class is called a concept in DL. Example: Daughter ≡ Female ⊓ hasParent.T (here, Daughter is a concept) A relation is called a role in DL (for binary relations), or an attribute, for functional roles. Example: hasParent above is a role (a binary relation) Subsumption means that one class (concept) is subsumed (i.e., included) in another. Example: A ⊑ B iff A1 ⊆ B1 (“A is subsumed by B”) Marking: 1 mark for each definition, 1 mark for each example. (b) Considering the comparison between Web 1.0 and Web 2.0, decide if Facebook is a Web 2.0 or Web 1.0 platform. Exemplify your answers. Use four comparison. [9] Answer (PS): Web 1.0 versus Web 2.0: o read versus write and contribute: for Facebook, a bit of the former, but more of the latter - users add info on their own 'wall', or on other people's. o page versus post/record: for Facebook, definitely the latter; users post new information on their own or others 'walls'. o static versus dynamic: the latter: the information changes all the time, depending on who posted what. o web browser versus browsers, RSS readers, anything: Facebook is used in browsers, but can also be used on other platforms (e.g., mobile phones, etc.), and allows for RSS o client server versus web services: Facebook allows for both approaches o web coders versus everyone: Facebook is clearly for everyone, and not just the chosen few o geeks versus mass amateurisation: again, Facebook is definitely for the latter: everyone and their grandmother has an account. o conclusion: Facebook is definitely a Web 2.0 platform. Marking: 1 mark for conclusion, 1 mark for comparison feature and correct answer, 1 mark for correct explanation per feature. Note: any four of the eight features above are accepted. 6. User Modelling (a) What is a User Modelling shell system, and what are its requirements? [7] (continued) Page 15 of 18 CS4140 Answer (T): o o A UM shell system is a: a General User Modelling System using Stereotype hierarchies Stereotype members + rules about them also has which Consistency verification set framework for General UM systems Requirements are: Generality As many services as possible “Concessions”: student-adaptive tutoring systems Expressiveness Able to express as many types of assumptions as possible (about U) Strong Inferential Capabilities AI, formal logic (predicate l., modal reasoning, reasoning w. uncertainty, conflict resolution) Marking: 1 mark for definition, 1 mark per requirement and 1 mark per requirement explanation. Note: the definition should contain some of the elements above. The explanations should give the general gist of the requirement. (b) A bookstore is introducing a new user modelling system, based on the introversion/ extroversion cognitive style. (i) Describe the cognitive style the company is introducing. [2] Answer (T): Introverts prefer situations with low amount of stress, and get in trouble (will try to withdraw) when their level is exceeded. Extroverts prefer a fair amount of diversity and disturbance. They easily get bored (and will withdraw). Marking: 1 mark for each definition, for introverts and extroverts respectively. Note: the definitions need to get the gist, not be ad-literaem. (ii) What kind of data (information type) is the bookstore storing about its users, to cater to this learning style? How would this data be obtained? Exemplify each of your answers. Discuss pros and cons of the different ways of obtaining data. (Hint: find four ways of data gathering.) [13] (continued) Page 16 of 18 CS4140 Answer (PS): The bookstore system will have a user model, containing: - a variable for introvert versus extrovert; There are two possible ways of obtaining the data on the user's cognitive style: - directly, via questionnaires: e.g.: -- asking the user about their style (advantage: can be precise and quick; disadvantage: user might not know their style or might not want to provide it, user might be annoyed), -- or having the user take a questionnaire which determines their style (advantage: can be precise and is based on solid theory; disadvantage: can be annoying to user to answer many questions, user could still answer misleadingly). - indirectly, by monitoring the user behaviour on the system, and the system automatically deciding, based on it, what the style of the user is; this can be done: -- as a one-off; (advantage: user can go ahead with task at hand, doesn't have to provide additional information; disadvantage: precision may be lower, user may change preferences over time) -- by continuously monitoring user's behaviour; (advantage: user can go ahead with task at hand, doesn't have to provide additional information; user may change preferences over time, which is caught by the monitoring disadvantage: precision may be lower) Examples are: -- providing disturbance (e.g., various types of information about books, authors, writing categories, different users, user groups, chat opportunities, etc.) and monitoring how users cope with it. (advantage: user can go ahead with task at hand, doesn't have to provide additional information; users could disengage before any remedial action can be taken, and they never come back; disadvantage: precision may be lower; user may change preferences over time) If the monitoring is adaptive, the amount of disturbance can be lessened in time, if necessary, or increased. (advantage: user can go ahead with task at hand, doesn't have to provide additional information; user may change preferences over time, which is caught by the monitoring; users could disengage before any remedial action can be taken, and they never come back; disadvantage: precision may be lower) -- providing a very low key environment (e.g., very simple search functions for books - e.g., one catalogue, no added functionality) and monitor how users cope with it. (advantage: user can go ahead with task at hand, doesn't have to provide additional information; users could disengage before any remedial action can be taken, and they never come back; disadvantage: precision may be lower; user may change preferences over time) If the monitoring is adaptive, the amount of disturbance can be increased in time, if necessary, or lessened. (advantage: user can go ahead with task at hand, doesn't have to provide additional information; user may change preferences over time, which is caught by the monitoring; users could disengage before any remedial action can be taken, and they never come back; disadvantage: precision may be lower) Marking: 1 mark for the introvert/extrovert variable, 1 mark for 4 types of data gathering, 1 mark for each explanation, 1 mark for each advantage/disadvantage. Note: the definitions need to get the gist, not be ad-literaem. (iii) The bookstore additionally decides to maintain background information about each user (their age, ethnicity, gender, job). What type of user modelling would be needed for such information? Explain your answer. (Hint: using overlay modelling or free variables) Instantiate the user model for Mary, an extrovert housewife of 23, of Hispanic origin. [3] (continued) Page 17 of 18 CS4140 Answer (PS): The type of user modelling is using free variables (as the background information doesn't vary, regardless of the content model instantiation used - i.e., a person will have the same age for each book they consider buying). Instantiation: UM.introvert = False; UM.age = 23; UM.ethnicity = Hispanic; UM.gender = Female; UM.job = Housewife; Marking: 1 mark for free variable and explanation, 2 marks for instantiations. (End) Page 18 of 18