Я хочу использовать знания, которые моделируются между классами. Например. Я смоделировал автомобиль и автобус с 4 колесами, велосипед 2 колеса. Теперь я хочу сказать, что велосипед может опрокинуться (если вы не держите их в равновесии - некомпетентный водитель). Если я добавлю экземпляр «CB450», subClassOf Bike, правило должно включить аргументы: может (CB450, Tip). Путь:SWRL - использование знаний из классов
Type(Cb450,Bike) and has(Bike,TwoWheels) and can(TwoWheels,Tip) -> can (CB450,Tip)
я не нашел способ выразить это правило в SWRL, или правила Jena. Есть ли возможность?
Я знаю, что его можно моделировать по-разному, но мне нужно использовать отношения классов для правил в случаях.
Я использую Protege 5.16 с таблеткой 2.3.1. Смотрите пример ниже онтология
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Ontology: <http://www.semanticweb.org/vehicle>
ObjectProperty: <http://www.semanticweb.org/vehicle#has>
ObjectProperty: <http://www.semanticweb.org/vehicle#can>
Class: <http://www.semanticweb.org/vehicle#Car>
SubClassOf:
<http://www.semanticweb.org/vehicle#Vehicle>,
<http://www.semanticweb.org/vehicle#has> some <http://www.semanticweb.org/vehicle#FourWheels>
Class: <http://www.semanticweb.org/vehicle#Vehicle>
Class: <http://www.semanticweb.org/vehicle#Bike>
SubClassOf:
<http://www.semanticweb.org/vehicle#Vehicle>,
<http://www.semanticweb.org/vehicle#has> some <http://www.semanticweb.org/vehicle#TwoWheels>
Class: <http://www.semanticweb.org/vehicle#FourWheels>
SubClassOf:
<http://www.semanticweb.org/vehicle#Property>
Class: <http://www.semanticweb.org/vehicle#TwoWheels>
SubClassOf:
<http://www.semanticweb.org/vehicle#can> some <http://www.semanticweb.org/vehicle#Tip>,
<http://www.semanticweb.org/vehicle#Property>
Class: <http://www.semanticweb.org/vehicle#Property>
Class: <http://www.semanticweb.org/vehicle#Tip>
SubClassOf:
<http://www.semanticweb.org/vehicle#Property>
Individual: <http://www.semanticweb.org/vehicle#CB450>
Types:
<http://www.semanticweb.org/vehicle#Bike>
Individual: <http://www.semanticweb.org/vehicle#Tip>
Types:
<http://www.semanticweb.org/vehicle#Tip>
Кстати, онтология написана в Protege , так что все должно быть хорошо. – 2Application
Мой плохой, я торопился, когда я напечатал этот ответ и неправильно прочитал фрагмент кода. Я отредактирую, как только уйду с мобильного. –
Я согласен с тем, что ваши предложения работают, но каждый человек должен иметь свойство данных «hasWheels», чего я хочу избежать. Я пытался выразить это с помощью отношений между классами. Я хотел бы создать людей, которые наследуют такие вещи от своего типа класса без явной модели для каждого байка, который у него есть 2 колеса. Возможно ли это? – 2Application