0

mybrandofmercedesOWLで下記のようにクラスに制限をかけたいのですが、構文的に正しいでしょうか?以下に示すように角括弧を使用する必要がありますか?

mynamespace: mybrandofmercedes rdf:type owl:Class;

mynamespace: mybrandofmercedes
[

rdf:type owl:Restriction;

owl:onProperty mynamespace:hasOwner;

owl:hasValue mynamespace: Anders

]
4

1 に答える 1

6

いいえ。

しかし、問題になる可能性があるいくつかの異なることがあります。まず、OWL は抽象言語です。これはいくつかの異なる形式で記述でき、具体的な形式 (OWL/XML や OWL 関数構文など) もあれば、抽象的な形式もあります。OWLオントロジーは、RDFにシリアライズできます。RDF も OWL と同様に抽象言語ですが、いくつかの種類のシリアル化があり、どのタートルもその 1 つにすぎません。そのため、いくつかの質問をすることができます。

  1. これは合法的なタートルですか?
  2. これが正当な Turtle である場合、RDF は OWL オントロジーの正当な RDF シリアル化を表します。

まず、これは合法的なタートルではありません。mynamespace: mybrandofmercedesの代わりに、あなたが意味したと仮定しますmynamespace:mybrandofmercedes。次に、テキストは次のようになります(再フォーマットされ、いくつかの接頭辞宣言と最後のピリオドがあります):

@prefix mynamespace: <urn:ex:>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.

mynamespace:mybrandofmercedes
  rdf:type owl:Class ;
  mynamespace:mybrandofmercedes [ rdf:type owl:Restriction;
                                  owl:onProperty mynamespace:hasOwner;
                                  owl:hasValue mynamespace:Anders ] .

これは正当な Turtle ですが、おそらく必要なトリプルではありません。つまり、これは OWL オントロジーの RDF シリアライゼーションではありません。これを N-Triples としてシリアル化すると、そこに含まれる 5 つのトリプルが表示されます。<urn:ex:mybrandofmercedes>あなたが主語と述語の両方として使いたいとはあまり期待していません。とにかく、これは OWL オントロジーではありません。

<urn:ex:mybrandofmercedes> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
<urn:ex:mybrandofmercedes> <urn:ex:mybrandofmercedes> _:B .
_:B <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
_:B <http://www.w3.org/2002/07/owl#onProperty> <urn:ex:hasOwner> .
_:B <http://www.w3.org/2002/07/owl#hasValue> <urn:ex:Anders> .

OWL を生成しようとしている場合は、OWL 編集ツール (Protégé など) または記述しやすい OWL 構文の 1 つから始めて、そこから RDF を取得することをお勧めします。Protégé をすばやく起動した後、Turtle でシリアル化された次のようなオントロジーを思いつきました。

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

<http://example.org/cars>
        a       owl:Ontology .

:Car    a       owl:Class .
:Person  a      owl:Class .
:hasOwner  a    owl:ObjectProperty .

:Anders  a      owl:NamedIndividual , :Person .

:CarOwnedByAnders  a     owl:Class ;
        rdfs:subClassOf  :Car ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    :Anders ;
                           owl:onProperty  :hasOwner
                         ] .

あなたは特にブラケットの配置について尋ねました。それはコード スニペットの本当の問題ではありませんでしたが、それらについて詳しく知りたい場合は、SPARQL で RDF をクエリするときの角括弧 "[]" の意味に対する私の回答をご覧ください。. 具体的には SPARQL クエリのブラケットについて質問しますが、構文は Turtle と共有されているため、ここでも適用されます。

于 2014-08-25T18:00:04.940 に答える