OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep-semantic message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: My review of ebXML Registry Profile for Web Ontology Language (OWL)


[[[note that I will be out Feb 20, so I won't see any responses to this
 before Tuesday]]]

My comments on 
"ebXML Registry Profile for Web Ontology Language (OWL)"
Version 1.0 draft 2

Note that my review of the document focused on the aspects which
directly related to OWL, such as: descriptions of OWL language
constructs, OWL examples, and some aspects of the descriptions of how 
OWL semantics are supportable in an ebXML RegRep.  I am not an expert
in ebRIM nor in db stored procedures, so I tended to skim those
sections.

I have numbered the comments in order to make them easy to reference
in future discussions.  In general, I believe this profile is quite
good.  Do not interpret the number of comments as an indicator that
this is not the case.  Most comments can be easily fixed, and I
included suggestions for that.


Comment 1:
Page 10, line 261
Minor, editorial 
 Typo - change "it worths" to "it is worth"

Comment 2:
page 12, lines 323-324
Significant, content

 Why only OWL Lite support?  OWL Lite has not emerged as a
 particularly popular OWL dialect.  I suggest that you add text in this
 section explaining why you chose to support only Lite and whether the
 profile could be easily upgraded to DL and/or Full in the future.

Comment 3:
page 17, Listing 7
Question

 As I noted in the intro to these comments, I am not an ebRIM expert.
 While reading section 3 the Registry overview section, I ran across
 something in the Object Classification example that I didn't expect
 from my reading of the RIM model in figure 1.  I expected an instance
 of a Classification to include/identify two things: a
 ClassificationScheme and a ClassificationNode.  The example shows two
 things: a classificationNode (which seems to have the
 classificationScheme name embedded) and classifiedObject.  Is
 classifiedObject the rolename (elided in model) for the
 RegistryObject side of the "classifications" association shown
 between a Classification object and a RegistryObject in the RIM
 figure?  Where is the classificationScheme element in this example?

Comment 4:
page 18, line 548
Minor, editorial
 Typo - change "ExternallyLinks"  to "ExternalLink" to match class in 
 ebXML RIM inheritence view.

Comment 5:
page 20, Example owl:Class
Major, editorial

 In RDFS, subClassOf asserts a subsumption relationship between
 subject and object.  The example (in triple form) 

  City rdf:type owl:Class .
  City rdfs:subClassOf Country .  

 asserts that every individual of class City is also an individual of
 class Country.  This is not the case for what most english speakers
 understand of cities and countries.  Suggest that if you keep the
 subclassof part of this example that you change one or the other
 classes in this triple.  Some alternative examples are 

  City rdfs:subClassOf GeoPoliticalEntity .  

 or 

  CapitolCity rdfs:subClassOf City .


Comment 6:
page 20, Example Corresponding ebRIM construct ClassificationNode
Major, content

 In this example you use the parent link in the classification model
 to define a superclass for the class the node represents.  Later
 though (in 4.1.4) you point out that this method doesn't support multiple
 inheritence which is a basic feature of RDFS and OWL.  Do you mean to
 support both mechanisms in this profile?  I think that unwise.
 Suggest that you simplify this example to just <owl:Class rdf:ID="City">
 eliminating the subclassing issue and the use of parent in the
 corresponding ClassificationNode.

 Question: Farrukh: Can we point out areas for enhancement of the
 ebRIM in a profile document?  An extension/revision of the
 Classification model in the RIM to support ontologies/vocabularies by
 allowing more than one parent for a Node would be a small change, but
 big win IMHO.

Comment 7:
page 21, line 676
Minor, editorial
typo - change "a ClassificationNodes" to "a ClassificationNode"

Comment 8:
page 22, section 4.1.5
Significant, Editorial

 I am uncomfortable with the object model-style description of
 classes, properties, and instances used in this section.  It may give
 people the wrong impression about classes and individuals in RDFS and
 OWL.  In RDFS/OWL, MyTravelService doesn't "inherit" the
 paymentMethod property.  Rather: 

  <owl:ObjectProperty rdf:ID="paymentMethod">
    <rdfs:domain rdf:resource="#TravelWebService"/>    
    <rdfs:range rdf:resource="#PossiblePaymentMethods"/>
  </owl:ObjectProperty>

  licenses the following inference:

  If I have the rdf triple
      MyTravelWebService TravelWebService Cash .

  then an RDF tool could infer
      MyTravelWebService rdf:type TravelWebService .
      Cash rdf:type PossiblePaymentMethods .		 

  and nothing more.  The above rdf/xml description for paymentMethod
  does not require that individuals of type TravelWebService have a
  value (aka filler) for the paymentMethod property, nor does it
  prevent such individuals from having values for properties not
  mentioned.  It is also the case that MyTravelWebService could also
  be a member of other classes in addition to TravelWebService and its
  superclasses.  So, unlike in many object languages, individuals in
  RDF and OWL are not defined with a single, most specific, type.

  I am not sure what the purpose of this text (lines 709 - 729) serves
  in this section.  Perhaps it is to explain the nature of facts
  (often referred to as RDF data) in an RDF/OWL KB, and how -in the
  ebReg/Rep world- these facts belong in a Repository rather than a
  Registry.  This text should either be removed or rewritten.  I would
  be willing to draft some alternate text if a rewrite is the
  preferred fix.

Comment 9:
page 24, Example owl:DatatypeProperty, lines 825,826
Significant, typo?

 This example currently says that the hasPrice DatatypeProperty is a
 subPropertyOf Profile.owl.  Presumably you meant it to be a
 subproperty of some datatype property defined in Profile.owl.  I
 suggest you just remove the two lines in question from the example.
 Reusing elements of OWL-s ontologies, could push your examples into
 OWL Full.

Comment 10:
page 25, line 849
minor, typo

add missing quote by replacing
  "MyInsuranceService" succeeds MyHotelAvailabilityService" 
with
  "MyInsuranceService" succeeds "MyHotelAvailabilityService" 

Comment 11:
page 25, section 4.3.4 
discussion of using inverseOf knowledge in lines 876 - 880
question, OWL Profile usage issue

 The example of how to make use of knowledge about inverse properties
 described here raises a larger question.  The example implies that
 the knowledge/fact base in a reg/rep is only partially populated
 prior to when queries are performed.  That would be a reasonable
 assumption in a semantic web environment, but might it be different
 in a reg/rep environment?  An alternative way that one might use the
 additional semantics that this profile supports would be to cause
 inferred information to be produced and stored along with new data as
 that new data was inserted into the reg/rep.  Thus the extra work of
 inferring is only done at insertion/update time, instead of at query
 time.

Comment 12:
page 26, section 4.3.7, lines 917-918
medium, editorial

 The description of inverseFunctional properties, excerpted here from
 the OWL Overview document, is one of the few cases where that document
 doesn't shed much light on the subject.  While what it says is true,
 it is convoluted and essentially repeats what the reader could have
 guessed from the name of the language element.  

 InverseFunctional properties (IFPs) are like keys.  An individual
 filling the range role in an inverseFunctional property instance
 identifies the individual in the domain role of that same property
 instance.  In other words, if a semantic web tool encounters two
 individuals with the same value for an inverseFunctional property, it
 can be inferred that they are actually the same individual (so data
 about these could be merged - or "smushed" in Sem Web parlance). The
 FOAF vocabulary exploits this to identify people via their email
 addresses by defining foaf:mbox as an inverseFunctional property.

 Clearly, it is not so easy to describe this concisely and simply.  I
 see why the OWL Overview authors punted.  I am not ready to give up yet,
 however.

Comment 13:
page 26, Example owl:InverseFunctionlProperty
content incorrect

 There are two problems with the example for
 InverseFunctionalProperty. First "departsFrom" should have a domain
 of type Flight.  But once it does, it is clear that it is not an
 inverseFunctionalProperty (the second problem) as many flights depart
 from the same airport (thus the Airport does not uniquely identify the
 Flight).

 foaf:mbox is one example of an IFP.  isBiologicalMotherOf is another
 example.  hasAssembled could also be an example with a domain of
 AssemblyPlant and a range of Automobile.  One can find exceptions to
 all these examples in the real world.  But this just supports my view
 that IFP's are somewhat unnatural, and that compound IFPs would be
 more useful.  In any case, you need to replace your example.  Either
 use one of mine, or think up a different one.

Comment 14:
page 26, section 4.4, line 934
editorial, content

 Instead of saying: "The aim is to make ontologies more extendable and
 hence more reusable," I would say "This makes property definitions
 more reusable by factoring out class specific characteristics of
 the property into the class description".

Comment 15:
page 27, section 4.4, Example owl:Restriction on ObjectProperty
"paymentMethod" 
editorial, format/typo

 Indenting seems to have been munged in the rdf/xml of this example.
 Line 947 should be outdented to match text in line 952 and lines 949
 and 950 should be indented further. As you have done elsewhere and as
 shown below:

<owl:Class rdf:ID="AirReservationServices"> 
  <rdfs:subClassOf> 
    <owlRestriction> 
      <owl:onProperty rdf:resource="#paymentMethod"/> 
      <owl:allValuesFrom rdf:resource="#CreditCard"/> 
    </owl:Restriction> 
  </rdfs:subClassOf> 
</owl:Class>

Comment 16:
page 27, section 4.4, lines 955-957 and lines 964-966
multiple serious issues

 This text claims:
  
   Obviously,this serves only the purpose of reusing the
   "paymentMethod" property Otherwise,a new property "paymentMethodCC"
   can be defined between "AirReservationServices"and the "CreditCard"
   classes as shown in the following:

   <owl:ObjectProperty rdf:ID="paymentMethodCC"> 
     <rdfs:domain rdf:resource="#AirReservationServices"/> 
     <rdfs:range rdf:resource="#CreditCard"/> 
   </owl:ObjectProperty > 

   We believe that defining a generic Association Type and and keeping
   track of its various restrictions in relational tables will bring
   considerable overhead to the system Since an Association Type can
   always be defined in ebXML between any RergistryObjects,we also
   think that the expressive power is already there.

 With respect to OWL there are a number of serious issues with this
 section.  

 1) It only addresses allValuesFrom restrictions (universal role
 quantification).  OWL Lite also supports someValuesFrom restrictions
 (existential role quantification).  Note that minCardinality
 restrictions of 1 are not quite equivalent to someValuesFrom,
 minCardinalityQ restrictions of 1 would be, but OWL doesn't have
 qualified cardinality restrictions.

 2) But even with respect to allValuesFrom, 
  
   <owl:Class rdf:ID="AirReservationServices"/>

   <owl:ObjectProperty rdf:ID="paymentMethodCC"> 
     <rdfs:domain rdf:resource="#AirReservationServices"/> 
     <rdfs:range rdf:resource="#CreditCard"/> 
   </owl:ObjectProperty > 

  Does not have quite the same meaning as:

   <owl:Class rdf:ID="AirReservationServices"> 
     <rdfs:subClassOf> 
       <owlRestriction> 
         <owl:onProperty rdf:resource="#paymentMethod"/> 
         <owl:allValuesFrom rdf:resource="#CreditCard"/> 
       </owl:Restriction> 
     </rdfs:subClassOf> 
   </owl:Class>
   
  The restriction says that all fillers for the property paymentMethod
  for all individuals of AirReservationServices must be of type
  CreditCard.  This is typically in the context of many other uses of 
  the paymentMethod property in other class definitions and in other
  property definitions (such as subproperty/superproperty relations)..

  In contrast, the class and property defs above merely define a class
  and a property where: if there are any instances of the property one
  can infer the type of the individuals in each role.  Yes, this also
  means that all fillers for the property paymentMethodCC for all
  individuals (including those of type AirReservationServices) must be
  of type CreditCard.  However, since paymentMethodCC is only defined
  with respect to these two classes it has little meaning.  It is the
  inclusion of paymentMethod in many statements about other classes
  and properties that gives it meaning.  Meaning that can potentially
  be used to deduce things about AirReservationServices and how that
  class relates (subclassOf, disjointWith, equivalentTo, etc.) to
  other classes which have some relation to paymentTypes (on its
  inverse).  The whole point to OWL is to give meaning to the terms it
  describes. Thus "reusing the "paymentMethod" property" is critical
  to an OWL ontology, and not merely something nice to have.  If the
  "expressive power is already there", you have not shown it.
    
  Note that even if you add <rdfs:subPropertyOf
  rdf:resource=#paymentMethod/> to the definition of paymentMethodCC,
  it still won't mean the same as the restriction, since there is no
  way to say that the *all* the instances of paymentMethod for
  AirReservationServices must be instances of paymentMethodCC.

  3) Even if this were an acceptable way to handle allValuesFrom
  restrictions (and I am not yet convinced of that) you need to define
  mapping rules to support it.  These mapping rules would describe a
  scheme for naming all the global properties that you will be
  creating which didn't exist in the corresponding OWL.  And if you do
  this, you should define each of these new properties as
  subproperties of the property being restricted in the corresponding
  OWL.  Doing that is essentially downgrading the OWL to RDFS, but
  that's better than losing the property relationships altogether.

Comment 17:
page 27, section 4.5.1, lines 970 and 971
minor, content

  I realize that this text comes from OWL Overview, but it is slightly
  misleading.  Cardinality restrictions can be applied to
  DatatypeProperties as well as ObjectProperties.  A more general
  description covering this might say "...then any instance of the
  class will have at least one value for the restricted property" in
  place of "then any instance of the class will be related to at least
  one individual by that property."

Comment 18:
page 29, section 4.6, line 1075
minor, editorial

  More then two classes may be intersected.  Change "both of the
  classes" to "all intersecting classes".

***************************************************************************

-Evan

Evan K. Wallace
Manufacturing Systems Integration Division
NIST


  
 






  








 










[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]