- All Implemented Interfaces:
- IGenericSkin
public class OWLPropertySkin
extends BasicSkin
implements IGenericSkin
The OWLClassSkin returns Iterator with the
getProperties method using the RDFS.DOMAIN URI.
So a property has a domain, an RDF.TYPE and an RDFS.RANGE that
defines the datatype of the property of an instance.
A confusion is the RDF.TYPE which is one of the main following types:
DatatypeProperty, ObjectProperty, FunctionalProperty
(there are also a few more inverse/transitive etc)
It seems to me that FunctionalProperty is slightly problematic since
it appears to be used to indicate 0 or 1 data values. But also
often means unique.
There also seems to be an oddity around whether a property is, say,
an owl:datatypeProperty with rdf:type owl:functionalProperty or an
owl:functionalProperty with rdf:type owl.datatypeProperty.
It all looks very odd.
The inverseOf property is interesting, but the example from univ-bench
doesn't look like an true inverse to me, more like an alias.
Alias, or equivalent properties
has a degree from
has as an alumnus
The inverse of "degreeFrom" should be "degreeTo". The idea *should* be
to normalize the data, to allow the assertion of
and transform to . Not to support both
types of statements. ...and of course to transform queries that
use the inverse predicate.
So, to clarify, there should *not* be two properties defined, just one
with an "inverseOf" annotation.
- Author:
- Martyn Cutcher