2017-09-12 7 views
2

問題はとてもシンプルに聞こえます。個人のデータプロパティを私のオントロジのXSD:stringとして作成したいと思います。データプロパティを作成するXSD:Jenaを使用した文字列

XSD:DateTime、XSD:FloatまたはXSD:intのプロパティを作成できますが、XSD:stringを使用すると、型なしのプロパティが取得されます。

1つのクラス、1つの個人と2つのデータプロパティでオントロジーを作成する最小限の例を作成しました。期待どおりに働くDateTimeと、オントロジーに型を持たない1つの文字列。

私はJenaバージョン3.4と3.0.1で試してみましたが、誰に修正するのか分かりません。

package dataproperty; 

import java.io.FileOutputStream; 
import org.apache.jena.datatypes.xsd.XSDDatatype; 
import org.apache.jena.ontology.OntModel; 
import org.apache.jena.rdf.model.ModelFactory; 
import org.apache.jena.rdf.model.Property; 
import org.apache.jena.rdf.model.Resource; 
import org.apache.jena.rdf.model.ResourceFactory; 

public class DataProperty { 

public static void main(String[] args) throws Exception { 
    OntModel model = ModelFactory.createOntologyModel(); 
    String OWLPath = "DataProp.owl"; 
    try{ 
     String NS = "http://www.example.org/ontology.owl#"; 
    //Create Ontology 
      model.createClass(NS+"Test"); 
      Resource r = model.createResource(NS+"Test"); 
      model.createIndividual(NS+"Indi1", r); 
      r = model.createResource(NS+"Indi1"); 
      model.createDatatypeProperty(NS+"Name"); 
      model.createDatatypeProperty(NS+"Date"); 
    //Add Data Properties 
      Property p = model.getProperty(NS+"Name"); 
      model.add(r, p, ResourceFactory.createTypedLiteral("MyName", XSDDatatype.XSDstring)); 
      p = model.getProperty(NS+"Date"); 
      model.add(r, p, ResourceFactory.createTypedLiteral("2017-08-12T09:03:40", XSDDatatype.XSDdateTime)); 
    //Store the ontology 
     FileOutputStream output = null; 
     output = new FileOutputStream(OWLPath); 
     model.write(output); 

    }catch (Exception e) { 
     System.out.println("Error occured: " + e); 
     throw new Exception(e.getMessage()); 
    } 
    } 
} 
+0

リテラルはデフォルトでは文字列なので、これらの値は文字列です。 – evsheino

+0

しかし、私が知っている限り、あなたは常に "MyName"を取得するデータ型を指定する必要があります^^ XSD:string is not correct? – 2Application

+0

RDF 1.1とRDF 1.0では文字列の型が変更されているように見えますが、JenaはRDF 1.0の「プレーンリテラル」を文字列に使用していると思われます(ドキュメントにあるように)(https://jena.apache.org/documentation/notes/typed -literals.html)。 – evsheino

答えて

4

RDF 1.1ではタイプされていません。これは短い形式で書かれています(互換性が向上しています)。

https://www.w3.org/TR/turtle/ セクション2.5.1

"データ型IRIも言語タグもない場合、データ型はxsd:stringです。"

関連する問題