2
문제가 너무 간단하게 들립니다. 개인용 데이터 속성을 내 온톨로지의 XSD : 문자열로 만들고 싶습니다.데이터 속성 만들기 XSD : Jena로 문자열
XSD : DateTime, XSD : Float 또는 XSD : int의 속성을 만들 수 있지만 XSD : string을 사용하면 형식이 지정되지 않은 속성이 나타납니다!
최소한의 예제를 만들었습니다. 하나의 클래스와 하나의 개인, 두 개의 데이터 속성으로 온톨로지를 만듭니다. 온톨로지에 타입이없는 예상되는 것과 하나의 문자열처럼 작동하는 DateTime.
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());
}
}
}
리터럴은 기본적으로 문자열이므로 해당 값은 문자열입니다. – evsheino
그러나 내가 아는 한 항상 "MyName"을 얻는 데이터 유형을 지정해야합니다 ^^ XSD : string is not correct? – 2Application
문자열 입력이 RDF 1.1 대 RDF 1.0에서 변경된 것처럼 보입니다.하지만 Jena는 RDF 1.0 "일반 리터럴"을 문자열로 사용한다고 가정합니다. [문서의 제안대로] (https://jena.apache.org/documentation/notes/typed -literals.html). – evsheino