/ / DL запитване за физически лица, които не са свързани с други от собственост - сова, протеже, описание-логика

DL заявка за физически лица, които не са свързани с други от собственост - бухал, протеже, описание-логика

Имам OWL онтология с три взаимосвързани лица: а, б, и ° Си също така има две изолирани индивиди х, и ш.

взаимосвързани лица:

  1. имат поне едно твърдение за собственост на изходящи обекти. напр .: a hasRelationС b; или
  2. имат поне твърдение за собственост на входящи обекти, напр .: като c, като b има връзка с c.

изолирани индивиди:

  1. имат твърдение за имущество с нулев изходящ обект, напр .: x hasRelationWith [няма физическо лице]; и
  2. имат твърдение за имущество с нулев входящ обект, напр .: такъв x, като [не е индивидуален] hasRelationWith x.

Възможно ли е да се класифицират (по логически извод, а не чрез изброяване) всички изолирани индивиди, използващи DL Query (в Protégé 4.3, ако има разлика) и ако е възможно, как да го направя?

Интуитивното ми предположение е нещо подобно: (имаRelationWith min 0 Thing) изключвам (hasRelationWith min 1 Thing), но DL-Query изглежда не поддържа синтаксиса на зададено изваждане ...


UPDATE: Следният SPARQL може да го направи, въпреки че не може да се използва в дефиницията на класа.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX my: <http://localhost:8080/ontology/untitled-ontology-26#>
SELECT DISTINCT ?src_obj
WHERE {
?src_obj a owl:NamedIndividual .
minus {?src_obj my:hasRelationWith ?target_obj}
minus {?target_obj my:hasRelationWith ?src_obj}
}

Отговори:

1 за отговор № 1

Можете да попитате за това какво е логично доказуемо. Това означава, че ако можете загатвам че някой не е свързан с някой друг с някаква собственост, можете да го попитате за него. Например, ако имате несъвместими класове Cat и Dog, така че нищо не може да бъде пример за двете, а вие имате a Person jim който също има допълнителен тип hasPet only Cat and Dog, тогава аргумент може да заключи, че jim hasPet exactly 0.

В езика за запитване на DL можете също да използвате обратен Имоти. Предишният пример показва това jim няма домашни любимци (т.е. е пример за hasPet exactly 0). Можете да попитате за животни, които не са домашни любимци на никого, като питате за случаи inverse hasPet exactly 0, Например, ако добавите несвързани подкласове на Person, ThisKind и ThatKindи кажи това missy на Cat inverse hasPet only ThisKind and ThatKind, тогава един разумен може да заключи, че никой не е свързан да се missy по hasPet Имот. В края на този отговор е дадена онтология за тези два примера.

За вашата конкретна заявка просто комбинирате два израза на клас от формулярите, които току-що описах:

hasRelationС точно 0 и обратно имаRelationWith точно 0

или, с някои скоби:

(имаRelationWith точно 0) и ((обратна hasRelationWith) точно 0)

Много е важно да се отбележи обаче, че това връща само лица, за които може да бъде доказан че няма такива отношения. Не е достатъчно данните да не съдържат такива отношения още. OWL прави отворено световно допускане, което означава, че нещо, което не е изрично посочено или доказуемо, не се приема за вярно или невярно.

Примерна онтология

@prefix :      <http://www.example.org/cardinality-example#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

:fido   a       owl:NamedIndividual , :Dog .

:Dog    a       owl:Class .

:fluffy  a      owl:NamedIndividual , :Cat ;
a       [ a                   owl:Class ;
owl:intersectionOf  ( :ThatKind [ a                  owl:Restriction ;
owl:allValuesFrom  :ThisKind ;
owl:onProperty     [ owl:inverseOf  :hasPet ]
] )
] .

:ThatKind  a              owl:Class ;
rdfs:subClassOf   :Person ;
owl:disjointWith  :ThisKind .

:rover  a       owl:NamedIndividual , :Dog .

:hasPet  a      owl:ObjectProperty .

<http://www.example.org/cardinality-example>
a       owl:Ontology .

:Person  a      owl:Class .

:jim    a       owl:NamedIndividual , :Person ;
a       [ a                owl:Restriction ;
owl:cardinality  "0"^^xsd:nonNegativeInteger ;
owl:onProperty   :hasPet
] .

:missy  a       owl:NamedIndividual , :Cat .

:Cat    a                 owl:Class ;
owl:disjointWith  :Dog .

:ThisKind  a             owl:Class ;
rdfs:subClassOf  :Person .