Описание Логическое представление, требующее моделирования сходства или различия двух людей.

Я пытаюсь смоделировать следующее утверждение в логике описания.

Преподаватель-совместитель — это любое лицо, являющееся научным сотрудником и преподающее хотя бы один курс, который преподают другие

Представление, о котором я подумал, это: CoTeachingFaculty EQUIV Person INTERSECTION AcademicStaff EXISTS teaches.(Course INTERSECTION EXISTS isTaughtBy.TOP)

У меня такое ощущение, что это неверное представление, так как EXISTS isTaughtBy.TOP свяжет индивидуума с собой по цепочке x--teaches-->c--isTaughtBy-->x. Таким образом, даже если факультет не разделяет курс с другими, он будет принадлежать к классу CoTeachingFaculty.

Таким образом, требуется установить цепочку x--teaches-->c--isTaughtBy-->y, где x и y различны. Можно ли смоделировать такую ​​ситуацию в рамках логики описания?


person Plaban Kumar Bhowmik    schedule 30.10.2020    source источник


Ответы (2)


Да, вы совершенно правы, что ваше представление не будет иметь должного эффекта.

Есть, возможно, 2 способа, которые я могу придумать, чтобы достичь более или менее того, что вы хотите:

(1) Ввести иррефлексивную роль coTeachesWith и определить teaches как teaches \sqsubseteq coTeachesWith o teaches. Таким образом, вы можете заявить, что лектор преподает совместно с другим лектором, и из этого вы можете сделать вывод, что он ведет одни и те же курсы. Недостатком является то, что будет сделан вывод, что все занятия, которые преподает этот лектор, также преподаются совместно лектором, что, вероятно, не то, что вам нужно.

(2) Другой способ — использовать правила SWRL. При этом вы можете указать правило следующим образом:

teaches(?x, ?c) ^ teaches(?y, ?c) ^ differentFrom(?x, ?y) ->

CoTeachingFaculty(?x) ^ CoTeachingFaculty(?y)

Ниже я привожу синтаксис OWL Manchester для онтологии, применяющей эти 2 варианта:

Префикс: : http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual# Префикс: owl: http://www.w3.org/2002/07/owl# Префикс: rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# Префикс: rdfs: http://www.w3.org/2000/01/rdf-schema# Префикс: xml: http://www.w3.org/XML/1998/namespace Префикс: xsd: http://www.w3.org/2001/XMLSchema#

Ontology: <http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual>
<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual/0.0.1>

AnnotationProperty: <http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled>   
AnnotationProperty: rdfs:comment
AnnotationProperty: rdfs:label
Datatype: xsd:boolean
Datatype: xsd:string

ObjectProperty: coTeachesWith
    Characteristics: Irreflexive
    Domain: CoTeachingFaculty
    Range: CoTeachingFaculty

ObjectProperty: isTaughtBy
    Domain: Course
    Range: AcademicStaff
    
ObjectProperty: teaches
    SubPropertyChain: coTeachesWith o teaches
    Domain: AcademicStaff
    Range: Course
    
Class: AcademicStaff
    SubClassOf: Person,
        teaches some Course
    
Class: CoTaughtCourse
    EquivalentTo: isTaughtBy min 2 owl:Thing
    SubClassOf: Course
    
Class: CoTeachingFaculty
    SubClassOf: AcademicStaff
    
Class: Course
    DisjointWith: Person
    
Class: Person
    DisjointWith: Course
    
Class: owl:Thing    

Individual: course1
    Types: Course
    Facts:  
     isTaughtBy  lecturer1,
     isTaughtBy  lecturer2
    DifferentFrom: course2
    
Individual: course2
    Types: Course
    DifferentFrom: course1
    
Individual: course3

Individual: lecturer1
    Facts:  coTeachesWith  lecturer2
    DifferentFrom: lecturer2
    
Individual: lecturer2
    Facts:  
     teaches  course1,
     teaches  course2
    DifferentFrom: lecturer1
    
Individual: lecturer3
    Facts:  teaches  course2
    DifferentFrom: lecturer4
    
Individual: lecturer4
    Facts:  teaches  course2
    DifferentFrom: lecturer3
    
DifferentIndividuals: 
    course1,course2,course3

Rule: 
    teaches(?<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual#x>, ?<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual#c>), teaches(?<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual#y>, ?<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual#c>),  DifferentFrom (?<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual#x>, ?<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual#y>) -> CoTeachingFaculty(?<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual#x>), CoTeachingFaculty(?<http://www.henrietteharmse.com/turtorial/ontologies/DistinctIndividual#y>)

PS. Я не устанавливал teaches в качестве инверсии taughtBy, потому что тогда teaches больше не является простой ролью и не может использоваться в цепочке ролей. Подробнее см. документ на SROIQ.

person Henriette Harmse    schedule 31.10.2020

Наиболее выразительные DL и язык OWL 2 включают «количественные ограничения» для ролей, т.е. «Курс, который преподают как минимум два разных человека». Спецификация OWL 2 предоставляет довольно наглядный пример. использовать его функцию «ObjectMinCardinality» для достижения того, что вы хотите.

person rvcx    schedule 18.12.2020