Source Pattern Detection.

OP1 is serialized as follows:

<op1>
  <entity_declarations>
    <placeholder type="ObjectProperty">?p</placeholder>
    <placeholder type="Class">?A</placeholder>
    <placeholder type="Class">?B</placeholder>
    <placeholder type="Class">?C</placeholder>
  </entity_declarations>
  <axioms>
    <axiom>?p domain ?A</axiom>
    <axiom>?p range ?B</axiom>
    <axiom>?C subClassOf ?B</axiom>
  </axioms>
</op1>

This is translated into a SPARQL query (omitting declarations of prefixes):

SELECT *
WHERE {
  ?p rdf:type owl:ObjectProperty.
  ?A rdf:type owl:Class. ?B rdf:type owl:Class. ?C rdf:type owl:Class.
  ?p rdfs:domain ?A;
     rdfs:range ?B.
  ?C rdfs:subClassOf ?B.
}

Furthermore, there are the specific naming constraints that filter out some query results:

<ndp>
  <comparison threshold="1.0" measure="equal">
    <s1>?B</s1>
    <s2>head_term(?p)</s2>
  </comparison>
  <exist>verb_form(?C)</exist>
</ndp>

As a result, we have the binding of placeholders, e.g.:

<pattern_instance>
  <binding placeholder="?p">hasDecision</binding>
  <binding placeholder="?B">Decision</binding>
  <binding placeholder="?A">Paper</binding>
  <binding placeholder="?C">Acceptance</binding>
</pattern_instance>

This would be the output of the OntologyPatternDetection RESTful service.



ondrej 2011-06-21