From: Deborah Mcguinness ([email protected])
Date: 01/09/01
i am assuming that the reason that a parser didnt catch it is that it is valid syntactically. we have the earlier example up in ontolingua and it loaded through our parser. the problem is that when i tried to look at adam and manipulate the term, then we realized that it was not the term we thought it was. d Frank van Harmelen wrote: > Deborah Mcguinness wrote: > > > The namespace error in this document results from the default > > namespace being set to the daml+oil URI instead of the daml+oil-ex > > URI. > > [...] > > I suggest that the error be corrected by changing the default > > namespace to the URI of daml+oil-ex.daml. In addition, any > > usage of resources defined in daml+oil.daml should specifically use > > the daml namespace. > > Jessica, > > Thanks for spotting this and providing us with a fix. > I will update the running copy of daml+oil-ex.daml as you suggested, but have two worries: > [1] Stefan, how come your parser didn't spot this?, and > [2] Now there is pretty much no unqualified symbol in sight in the entire document, and it's beginning to look pretty ugly. Do namespaces have a habit of always getting in the way? > > > > > I have implemented this solution below. > > ---------------------------------------- > > > > <rdf:RDF > > xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > > xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" > > xmlns ="http://www.daml.org/2000/12/daml+oil-ex#" > > xmlns:daml="http://www.daml.org/2000/12/daml+oil#" > > > > > > > <daml:Ontology rdf:about=""> > > <daml:versionInfo>$Id: daml+oil-ex.daml,v 1.1 2001/01/02 18:44:47 mdean Exp $</daml:versionInfo> > > <rdfs:comment>An example ontology</rdfs:comment> > > <daml:imports rdf:resource="http://www.daml.org/2000/12/daml+oil"/> > > </daml:Ontology> > > > > <rdfs:Class rdf:ID="Animal"> > > <rdfs:label>Animal</rdfs:label> > > <rdfs:comment> > > This class of animals is illustrative of a number of ontological idioms. > > </rdfs:comment> > > </rdfs:Class> > > > > <!-- FvH: moved cardinality restriction on parent "out of line" --> > > <!-- to simplify first class def + to illustrate out-of-line statements --> > > > > <rdfs:Class rdf:ID="Male"> > > <rdfs:subClassOf rdf:resource="#Animal"/> > > </rdfs:Class> > > > > <rdfs:Class rdf:ID="Female"> > > <rdfs:subClassOf rdf:resource="#Animal"/> > > <daml:disjointWith rdf:resource="#Male"/> > > </rdfs:Class> > > > > <rdfs:Class rdf:ID="Man"> > > <rdfs:subClassOf rdf:resource="#Person"/> > > <rdfs:subClassOf rdf:resource="#Male"/> > > </rdfs:Class> > > > > <rdfs:Class rdf:ID="Woman"> > > <rdfs:subClassOf rdf:resource="#Person"/> > > <rdfs:subClassOf rdf:resource="#Female"/> > > </rdfs:Class> > > > > <rdf:Property rdf:ID="parent"> > > <rdfs:domain rdf:resource="#Animal"/> > > </rdf:Property> > > > > <!-- FvH: changed range of father to Male --> > > <!-- made exposition easier (and makes more sense in the example as well) --> > > > > <rdf:Property rdf:ID="father"> > > <rdfs:subPropertyOf rdf:resource="#parent"/> > > <rdfs:range rdf:resource="#Male"/> > > </rdf:Property> > > > > <!-- FvH: changed cardinality restrictions everywhere to alternative RDF notation to avoid exposed content --> > > > > <rdfs:Class rdf:ID="Person"> > > <rdfs:subClassOf rdf:resource="#Animal"/> > > <daml:restrictedBy> > > <daml:Restriction> > > <daml:onProperty rdf:resource="#parent"/> > > <daml:toClass rdf:resource="#Person"/> > > </daml:Restriction> > > </daml:restrictedBy> > > <daml:restrictedBy> > > <daml:Restriction daml:cardinality="1"> > > <daml:onProperty rdf:resource="#father"/> > > </daml:Restriction> > > </daml:restrictedBy> > > </rdfs:Class> > > > > <rdfs:Class rdf:about="#Animal"> > > <rdfs:comment> > > Animals have exactly two parents, ie: > > if x is an animal, then it has exactly 2 parents (but NOT vice versa). > > </rdfs:comment> > > <daml:restrictedBy> > > <daml:Restriction daml:cardinality="2"> > > <daml:onProperty rdf:resource="#parent"/> > > </daml:Restriction> > > </daml:restrictedBy> > > </rdfs:Class> > > > > <!-- FvH: used spouse as an example of a maxcardinality constraint --> > > > > <rdfs:Class rdf:about="#Person"> > > <daml:restrictedBy> > > <daml:Restriction daml:maxcardinality="1"> > > <daml:onProperty rdf:resource="#spouse"/> > > </daml:Restriction> > > </daml:restrictedBy> > > </rdfs:Class> > > > > <!-- FvH: introduced FullTimeOccupation as an example of a qualified cardinality constraint --> > > > > <rdfs:Class rdf:about="#Person"> > > <daml:restrictedBy> > > <daml:Restriction daml:maxcardinalityQ="1"> > > <daml:onProperty rdf:resource="#occupation"/> > > <daml:hasClassQ rdf:resource="#FullTimeOccupation"/> > > </daml:Restriction> > > </daml:restrictedBy> > > </rdfs:Class> > > > > <!-- FvH: modifed range of mother to be female (similar to range of father = male) --> > > > > <daml:UniqueProperty rdf:ID="mother"> > > <rdfs:subPropertyOf rdf:resource="#parent"/> > > <rdfs:range rdf:resource="#Female"/> > > </daml:UniqueProperty> > > > > <rdf:Property rdf:ID="child"> > > <daml:inverseOf rdf:resource="#parent"/> > > </rdf:Property> > > > > <daml:TransitiveProperty rdf:ID="ancestor"> > > <rdfs:label>ancestor</rdfs:label> > > </daml:TransitiveProperty> > > > > <daml:TransitiveProperty rdf:ID="descendant"/> > > > > <rdf:Property rdf:ID="mom"> > > <daml:samePropertyAs rdf:resource="#mother"/> > > </rdf:Property> > > > > <rdfs:Class rdf:ID="Car"> > > <rdfs:comment>no car is a person</rdfs:comment> > > <rdfs:subClassOf> > > <rdfs:Class> > > <daml:complementOf rdf:resource="#Person"/> > > </rdfs:Class> > > </rdfs:subClassOf> > > </rdfs:Class> > > > > <!-- @@CAVEAT: daml:collection is an extension of RDF 1.0 syntax; > > don't expect existing tools to support it. > > @@TODO: specify how it works, implement it. --> > > > > <!-- FvH: added example of pairwise Disjoint set of classes --> > > > > <!-- JSJ: Changed the Class references below from begin tags > > empty tags. --> > > > > <daml:Disjoint parseType="daml:collection"> > > <rdfs:Class rdf:about="#Car"/> > > <rdfs:Class rdf:about="#Person"/> > > <rdfs:Class rdf:about="#Plant"/> > > </daml:Disjoint> > > > > <rdfs:Class rdf:about="#Person"> > > <rdfs:comment>every person is a man or a woman</rdfs:comment> > > <daml:disjointUnionOf parseType="daml:collection"> > > <rdfs:Class rdf:about="#Man"/> > > <rdfs:Class rdf:about="#Woman"/> > > </daml:disjointUnionOf> > > </rdfs:Class> > > > > <rdfs:Class rdf:ID="TallMan"> > > <daml:intersectionOf parseType="daml:collection"> > > <rdfs:Class rdf:about="#TallThing"/> > > <rdfs:Class rdf:about="#Man"/> > > </daml:intersectionOf> > > </rdfs:Class> > > > > <!-- FvH: introduced MarriedPerson to illustrate idiomatic use of intersectionOf for biconditional definitions --> > > > > <rdfs:Class rdf:ID="MarriedPerson"> > > <daml:intersectionOf parseType="daml:collection"> > > <rdfs:Class rdf:about="#Person"/> > > <daml:Restriction daml:cardinality="1"> > > <daml:onProperty rdf:resource="#spouse"/> > > </daml:Restriction> > > </daml:intersectionOf> > > </rdfs:Class> > > > > <!-- FvH: introduced example for sameClassAss --> > > > > <rdfs:Class rdf:ID="HumanBeing"> > > <daml:sameClassAs rdf:resource="#Person"> > > </rdfs:Class> > > > > <Person rdf:ID="Adam"> > > <rdfs:label>Adam</rdfs:label> > > <rdfs:comment>Adam is a person.</rdfs:comment> > > </Person> > > > > <rdf:Property rdf:ID="height"> > > <rdfs:range rdf:resource="#Height"/> > > </rdf:Property> > > > > <rdfs:Class rdf:ID="Height"> > > <daml:oneOf parseType="daml:collection"> > > <Height rdf:ID="short"/> > > <Height rdf:ID="medium"/> > > <Height rdf:ID="tall"/> > > </daml:oneOf> > > </rdfs:Class> > > > > <!-- TallThing is EXACTLY the class of things whose height is tall --> > > > > <rdfs:Class rdf:ID="TallThing"> > > <daml:sameClassAs> > > <daml:Restriction> > > <daml:onProperty rdf:resource="#height"/> > > <daml:hasValue rdf:resource="#tall"/> > > </daml:Restriction> > > </daml:sameClassAs> > > </rdfs:Class> > > > > <!-- @@ need example of hasClass qualification --> > > > > <!-- @@ example of subProperty, label, comment, etc. from RDF/RDFS --> > > > > </rdf:RDF>
This archive was generated by hypermail 2.1.4 : 04/02/02 EST