compared with
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (16)

View Page History
{toc}
{color:red}*Do not edit this page in Rich Text mode, edit only in Wiki mode*{color}
{attachments:patterns=.*pie,.*pl}

h1. Introduction
{code}

h2. Transitive and Inverse Properties
We use the RDFS dialect as a basis, which implements rdfs:subClassOf and rdfs:subPropertyOf reasoning.
In addition, ECRM declares Transitive and Inverse Properties, eg
ECRM declares appropriate CRM properties as owl:TransitiveProperty.
For some reason it doesn't declare P9,P46 transitive, though it does it for other "part of" properties, eg P106,P148. I posted a bug to CRM SIG and fix it here:
{code:title=Axioms}
<crm:P9_consists_of> <rdf:type> <owl:TransitiveProperty>
<crm:P9i_forms_part_of> <rdf:type> <owl:TransitiveProperty>
<crm:P46_is_composed_of> <rdf:type> <owl:TransitiveProperty>
<crm:P46i_forms_part_of> <rdf:type> <owl:TransitiveProperty>
{code}
ecrm:P106_is_composed_of rdf:type owl:ObjectProperty, owl:TransitiveProperty.
ecrm:P110i_was_augmented_by rdf:type owl:ObjectProperty ;
owl:inverseOf ecrm:P110_augmented ;
{code}
ECRM also defines Symmetric properties, but always declares them as self-Inverse, so we don't need to treat them separately. Eg:
{code:xml}
ecrm:P122_borders_with rdf:type owl:ObjectProperty, owl:SymmetricProperty ;
owl:inverseOf ecrm:P122_borders_with.
{code}

It's very useful to rely on general Transitive and Inverse reasoning, so we copy the relevant rules from builtin_owl2-rl.pie:
The full list of transitive properties is:
- P9_consists_of, P9i_forms_part_of (ADDED)
- P10_falls_within, P10i_contains
- P46_is_composed_of, P46i_forms_part_of (ADDED)
- P86_falls_within, P86i_contains
- P88_consists_of, P88i_forms_part_of
- P89_falls_within, P89i_contains
- P106_is_composed_of, P106i_forms_part_of
- P114_is_equal_in_time_to
- P115_finishes, P115i_is_finished_by
- P116_starts, P116i_is_started_by
- P117_occurs_during, P117i_includes
- P120_occurs_before, P120i_occurs_after
- P127_has_broader_term, P127i_has_narrower_term
- P148_has_component, P148i_is_component_of

h2. Inverse Properties
Most CRM properties have an inverse, eg P110i_was_augmented_by is inverse of P110_augmented (Symmetric properties are their own inverse). ECRM declares all inverse properties as owl:inverseOf.

We use the RDFS reasoning dialect as a basis, which implements rdfs:subClassOf and rdfs:subPropertyOf reasoning.
But it's very useful in FR definitions to rely on general Transitive and Inverse reasoning, which frees you from dependencies on how exactly data is asserted.
So we copy the relevant rules from builtin_owl2-rl.pie:
{code:title=Rules}
p <rdf:type> <owl:TransitiveProperty>; x p y; y p z [Cut] => x p z
{code}

h2. ECRM Fixes
For some reason ECRM doesn't declare P9,P46 transitive, although it does it for P106,P148. Posted bug to CRM SIG and make P9, P9i, P46, P46i transitive:
{code:title=Axioms}
<crm:P9_consists_of> <rdf:type> <owl:TransitiveProperty>
<crm:P9i_forms_part_of> <rdf:type> <owl:TransitiveProperty>
<crm:P46_is_composed_of> <rdf:type> <owl:TransitiveProperty>
<crm:P46i_forms_part_of> <rdf:type> <owl:TransitiveProperty>
h2. Symmetric Properties
ECRM declares all CRM symmetric properties as owl:SymmetricProperty. ECRM always declares them as owl:inverseOf itself, so we don't need to treat them separately. Eg:
{code}
crm:P122_borders_with rdf:type owl:SymmetricProperty.
crm:P122_borders_with owl:inverseOf crm:P122_borders_with.
{code}

h2. Reflexive Properties
FR definitions are full of reflexive-transitive sub-FRs. In FRThing.docx they are denoted (Pnnn)(0,n), and below we denote them as Pnn*
But I think it's bad style to use reflexive properties in the implementation since they generate lots of trivial facts (self-loops) in the semantic repository. Instead of reflexive closure, we use disjunction: the iterated property is applied 0 times in the first disjunct, and n times in the second, eg:
- person from place :=
-- person P74_has_current_or_former_residence place OR
-- person P74_has_current_or_former_residence subPlace AND subPlace FRT89_falls_within place
The full list of symmetric properties is:
- P69_is_associated_with
- P114_is_equal_in_time_to
- P121_overlaps_with
- P122_borders_with
- P132_overlaps_with
- P133_is_separated_from

h2. No Reflexive Closure
FR definitions are full of reflexive-transitive sub-FRs. In FRThing.docx they are denoted (Pnnn)(0,n), and below we denote them as Pnn*. Eg
- x from z := x P74 y AND y P89* z

But I think it's bad style to use reflexive closure in the implementation since it generates lots of trivial facts (self-loops) in the semantic repository. Instead of reflexive closure, we use disjunction: the iterated property is applied 0 times in the first disjunct, and n times in the second, eg:
- x from z := x P74 z OR (x P74 y AND y P89+ z)

h2. FR Notes
FR design in the following sections is based on FRThing.docx by M.Doerr and K.Tzompanaki, after clarifications and corrections by V.Alexiev.
- FC70_Thing := E70_Thing NOT E21_Person NOT E55_Type NOT E30_Right NOT E41_Appellation

Here we enumerate all subclasses of the undesirable negative classes, since neither OWL nor OWLIM can express "NOT subclass". (<owl:disjointWith> is used to infer a contradiction, not to define a class).
(x) If someone defines an application-specific subclass of an undesirable classes, it can "sneak through" this rule
(x) TODO: This below is wrong, we must enumerate the positive subclasses
{code:title=Rule-COMMENTED OUT}
x <rdf:type> t [Constraint t!=<crm:E70_Thing>, t!=<rso:FC70_Thing>, t!=<crm:E21_Person>, t!=<crm:E55_Type>, t!=<crm:E56_Language>, t!=<crm:E57_Material>, t!=<crm:E58_Measurement_Unit>, t!=<crm:E30_Right>, t!=<crm:E41_Appellation>, t!=<crm:E35_Title>, t!=<crm:E42_Identifier>, t!=<crm:E44_Place_Appellation>, t!=<crm:E45_Address>, t!=<crm:E46_Section_Definition>, t!=<crm:E47_Spatial_Coordinates>, t!=<crm:E48_Place_Name>, t!=<crm:E49_Time_Appellation>, t!=<crm:E50_Date>, t!=<crm:E51_Contact_Point>, t!=<crm:E75_Conceptual_Object_Appellation>, t!=<crm:E82_Actor_Appellation>]