Protege and SWRL 탭을 사용하면 아래에 언급 된 온톨로지가 있습니다. 클래스 Test
과 클래스 Shadow
으로 구성되며 Test
에는 세 개의 개인 t1, t2, t3
이 있습니다.swrlx : makeOWLThing은 하나의 개체 만 생성합니다.
- 하나의 개별
Shadow
의라는fred
: 나는Test
의 기존의 각 개인을 위해Shadow
클래스의 개인을 만드는 SWRL 규칙을 정의하려고했다 규칙은Test(?x)^swrlx:makeOWLThing(?new, ?x) -> Shadow(?new)
질문입니다 3 대신에 (
t1, t2, t3
에 해당) 생성됩니다. 결과 개인의 이름 지정을 제어하는 방법 (항상
fred
)?Prefix(:=<http://www.semanticweb.org/hilal/ontologies/2016/5/untitled- ontology-58#>) Prefix(owl:=<http://www.w3.org/2002/07/owl#>) Prefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>) Prefix(xml:=<http://www.w3.org/XML/1998/namespace>) Prefix(xsd:=<http://www.w3.org/2001/XMLSchema#>) Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>) Ontology(<http://www.semanticweb.org/hilal/ontologies/2016/5/untitled- ontology-58> Declaration(Class(:Shadow)) Declaration(Class(:Test)) Declaration(NamedIndividual(:t1)) Declaration(NamedIndividual(:t2)) Declaration(NamedIndividual(:t3)) Declaration(AnnotationProperty(<http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled>)) ############################ # Named Individuals ############################ # Individual: :t1 (:t1) ClassAssertion(:Test :t1) # Individual: :t2 (:t2) ClassAssertion(:Test :t2) # Individual: :t3 (:t3) ClassAssertion(:Test :t3) DLSafeRule(Annotation(<http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled> "true"^^xsd:boolean) Annotation(rdfs:comment ""^^xsd:string) Annotation(rdfs:label "S1"^^xsd:string) Body(BuiltInAtom(<http://swrl.stanford.edu/ontologies/built-ins/3.3/swrlx.owl#makeOWLThing> Variable(<new>) Variable(<x>)) ClassAtom(:Test Variable(<x>)))Head(ClassAtom(:Shadow Variable(<new>)))) )
이미 내장 기능을 사용하고 있습니다. 이 링크에서 swrlx : makeOWLThing을 확인하십시오. http://wiki.ruleml.org/index.php/SWRL –
어떤 추론자가 이것을 지원합니까? – Ignazio
펠렛! 나는 Pellet을 protege 5와 함께 사용하고 있으며 그 규칙은 SWRL 탭에 쓰여질 수 있습니다. –