[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