[OWL] [1.1] initial OWL 1.1 feature list per action item from workshop

Peter F. Patel-Schneider pfps at research.bell-labs.com
Wed Nov 16 15:04:54 EST 2005


Comments and suggestions are "encouraged".  I expect that there will be
considerable discussion, so please trim your quotes.

Enjoy,


peter




		Potential Feature List for OWL 1.1
		with short descriptions and proposed syntax


0/ "Additional" features already in OWL

AllDisjoint is in the abstract syntax as DisjointClasses
  Syntax:  'DisjointClasses(' description description {description} ')'


1/ Syntactic Sugar

DisjointUnion, a shorthand for mutually disjoint classes with a union class
	e.g., PhysicalEntity is the union of the pair-wise disjoint classes
	      Animal, Vegetable, and Mineral
  Syntax:  'DisjointUnion'( description description description {description} ')'
  Expansion: DisjointUnion( description description1 ... descriptionn ) ->
	     DisjointClasses( description1 ... descriptionn )
	     EquivalentClasses( description unionOf(description1 ... descriptionn) )

Negated property assertions, shorthand for more-complicated assertions
	e.g., John loves (doesn't love) Jill
  Syntax: 'valueNot(' individualvaluedPropertyID  individual ')'
	  'valueNot(' individualvaluedPropertyID  individualID ')'
          'valueNot(' datavaluedPropertyID  dataLiteral ')'
  Expansion: valueNot(p v) -> complementOf(restriction(p value(v)))
  Note:  This isn't quite right in all cases, but gets the idea across.


2/ Expanded datatype expressiveness

User-defined datatypes and datatype theories
	e.g., integer ranges, string datatypes defined via a regular expression
	e.g., less than, greater than
  Syntax: TBD

Descriptions using datatype theories,
	including class constructors using unary or binary (maybe n-ary)
	datatype predicates on the same individual 
	e.g., Person with age between 13 and 20
	e.g., Person whose age is greater than their IQ
	NB: this does *not* include class constructors involving multiple individuals
  Syntax: 'holds('datatypePredicateID dvalue { dvalue }')'
	  where dvalue := datavaluedPropertyID | dataLiteral
	  datavaluedPropertyID must be functional 

2/ Added DL expressiveness (leading to SROIQ)

Qualified cardinality constraints
	e.g., at least three children who are doctors
  Syntax:  'minCardinalityQ(' non-negative-integer description ')'
  Syntax:  'maxCardinalityQ(' non-negative-integer description ')'
  Syntax:  'cardinalityQ(' non-negative-integer description ')'

Local reflexivity, 
	e.g., narcissists love themselves
  Syntax: new individualRestrictionComponent self

Reflexive, irreflexive, and anti-symmetric properties
	e.g., relatedTo is reflexive; spouse irreflexive; husband anti-symmetric 
  Syntax: new Reflexive, Irreflexive, and AntiSymmetric tags for ObjectProperty axiom

Disjoint properties, 
	e.g., child and spouse are disjoint
  Syntax: 'DisjointProperties(' propertyID propertyID {propertyID} ')'

Regular property inclusion axioms
	e.g., owns o part <= owns
  Syntax: 'SubPropertyOf(' roleChain individualvaluedPropertyID ')'
	  roleChain ::= 'roleChain(' individualvaluedPropertyID 
				     {individualvaluedPropertyID} ')'
  NB:  There are complex side conditions on these rule inclusions.		


3/ Meta-modelling

More flexible annotations, perhaps including domain and ranges on annotations
	Exact characterisation to be determined

Meta-ontology constructs, perhaps simply through punning
	Exact characterisation to be determined


4/ Surround

A mechanism to retarget import, 
		e.g., import "http://bar.ex/foo" 
		      but really use the copy at "file:/ontologies/foo" 
  NB:  How would this really work?  
       Wouldn't it be better to put this outside the language?



More information about the OWL mailing list