つまり、あなたのオントロジーは有効な OWL オントロジーではなく、Protégé は「ガベージ イン、ガベージ アウト」の原則に従っています。いくつかの悪いデータが入ってくるので (Protégé はそれをサルベージしようとしますが)、悪いデータが出てきます (実際には、サルベージされたデータだけです)。Manchester OWL Validatorでオントロジーを検証できますが、適切な診断を得るには OWL 2 DL プロファイルを選択する必要があります。ドキュメントでは、出力は次のとおりです。
オントロジーおよび/またはそのインポートの 1 つが OWL 2 DL プロファイルにありません
輸入閉鎖
Ontology IRI Physical URI
OntologyID(OntologyIRI(<http://ideation.io/semapi>))
詳細レポート
クラス IRI の予約語彙の使用
SubClassOf(semapi:BaseClass rdfs:Class)
宣言されていないクラスの使用
SubClassOf(semapi:BaseClass rdfs:Class)
トリプルがあるという事実は別として:
<http://ideation.io/semapi>
a owl:Ontology .
最初のファイルでは、これは OWL オントロジーではないようです。例えば、
semapi:BaseClass a rdfs:Class;
rdfs:subClassOf rdfs:Class .
RDFS語彙で使用できるいくつかのクラスを定義していますが、owl:Class
esを宣言していません。あなたが何かをするとき
semapi:hasChainTo a owl:ObjectProperty;
rdfs:domain semapi:BaseClass;
rdfs:range semapi:BaseClass .
owl:ObjectProperty
esを関連付けるsemapi:BaseClass
があり、それぞれが であるrdfs:Class
ため、 es を関連付けるオブジェクト プロパティがありますrdfs:Class
が、OWL DL では、オブジェクト プロパティは個体のみを関連付けることができます。RDFリストの使用を開始する場所、つまり:
instances:Instance1 a semapi:DerivedClass;
semapi:hasChainTo (
[
a semapi:DerivedClass;
semapi:hasChainTo (
...
オブジェクト プロパティ アサーションのオブジェクトとして RDF リストを使用しています。ただし、RDFリストはOWLのRDFシリアル化でも使用されるため、OWL DLでは使用できません。したがって、Protégé は、OWL オントロジーの RDF シリアル化として意味のない一連の情報を破棄しているように見えます。Protégé が入ってくる RDF をどう処理するかを知らない場合、それを保存する必要があると主張できるかもしれませんが、RDF がシリアル化されたもの (OWL オントロジー) の可能なシリアル化の 1 つにすぎない場合、それは実際には支持できない立場です。 Protégéが関わっていること。
ペレットのlint
ツールは、いくつかの警告を生成します。
[Untyped classes]
- http://ideation.io/semapi#DerivedClass
- http://ideation.io/semapi#BaseClass
- http://www.w3.org/2000/01/rdf-schema#Class
[Untyped individuals]
- 6 BNode(s)
[Using rdfs:Class instead of owl:Class]
- http://ideation.io/semapi#DerivedClass
- http://ideation.io/semapi#BaseClass
=========================================================
OWL 2 DL violations found for ontology <http://ideation.io/semapi>:
Use of undeclared class: <http://ideation.io/semapi#BaseClass> [ObjectPropertyRange(<http://ideation.io/semapi#hasChainTo> <http://ideation.io/semapi#BaseClass>) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#DerivedClass> [ClassAssertion(<http://ideation.io/semapi#DerivedClass> _:genid5) in <http://ideation.io/semapi>]
Use of undeclared class: rdfs:Class [SubClassOf(<http://ideation.io/semapi#BaseClass> rdfs:Class) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#DerivedClass> [ClassAssertion(<http://ideation.io/semapi#DerivedClass> _:genid11) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#BaseClass> [SubClassOf(<http://ideation.io/semapi#DerivedClass> <http://ideation.io/semapi#BaseClass>) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#DerivedClass> [ClassAssertion(<http://ideation.io/semapi#DerivedClass> _:genid9) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#BaseClass> [SubClassOf(<http://ideation.io/semapi#BaseClass> rdfs:Class) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#DerivedClass> [ClassAssertion(<http://ideation.io/semapi#DerivedClass> _:genid1) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#BaseClass> [ObjectPropertyDomain(<http://ideation.io/semapi#hasChainTo> <http://ideation.io/semapi#BaseClass>) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#DerivedClass> [ClassAssertion(<http://ideation.io/semapi#DerivedClass> _:genid7) in <http://ideation.io/semapi>]
Use of reserved vocabulary for class IRI: rdfs:Class [SubClassOf(<http://ideation.io/semapi#BaseClass> rdfs:Class) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#DerivedClass> [ClassAssertion(<http://ideation.io/semapi#DerivedClass> _:genid3) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#DerivedClass> [SubClassOf(<http://ideation.io/semapi#DerivedClass> <http://ideation.io/semapi#BaseClass>) in <http://ideation.io/semapi>]
Use of undeclared class: <http://ideation.io/semapi#DerivedClass> [ClassAssertion(<http://ideation.io/semapi#DerivedClass> <http://ideation.io/instances#Instance1>) in <http://ideation.io/semapi>]
No OWL lints found for ontology <http://ideation.io/semapi>.
<http://ideation.io/semapi> does not import other ontologies.