private void gen(PrimitiveType t) { Section section = section(t.getCode()); section.triple("fhir:" + t.getCode(), "rdfs:subClassOf", "fhir:Primitive"); section.comment("fhir:" + t.getCode(), t.getDefinition()); nilInstance.predicate("a", "fhir:" + t.getCode()); section.triple("fhir:" + t.getCode() + ".value", "rdfs:subPropertyOf", "fhir:Primitive.value"); section.triple("fhir:" + t.getCode() + ".value", "rdfs:domain", "fhir:" + t.getCode()); if (t.getSchemaType().endsWith("+")) { section.triple( "fhir:" + t.getCode() + ".value", "rdfs:range", "xs:" + t.getSchemaType().substring(0, t.getSchemaType().length() - 1)); section.triple( "fhir:" + t.getCode() + ".value", "owl:withRestriction", complex().predicate("xs:pattern", literal(t.getRegex()))); } else if (t.getSchemaType().contains(",")) { section.triple( "fhir:" + t.getCode() + ".value", "rdfs:range", complex() .predicate("a", "owl:Class") .predicate("owl:unionOf", "(" + t.getSchemaType().replace(",", "") + ")"), "xs:union of " + t.getSchemaType()); } else section.triple("fhir:" + t.getCode() + ".value", "rdfs:range", "xs:" + t.getSchemaType()); }