This is exactly what I'm trying to do. What language is that rule specified
in? How can I utilize it in Jena?

Thanks!

Ken

On Tue, May 12, 2020 at 1:44 AM Lorenz Buehmann <
[email protected]> wrote:

> Hi,
>
> I think the rule would be basically
>
> [r1: (?x rdf:type ex:RosterEntry), (?x ex:hasSignature ?sig),
> regex(?sig, '(.*) (.*)', ?first, ?last)  -> (?x ex:hasFirstName
> ?first),  (?x ex:hasLastName ?last),  (?x rdf:type ex:Person) ) ]
>
> Note, it's untested and you have to define your prefix ex: in the rules
> file. You might also have to adapt the regex pattern to cover different
> white space chars.
>
> On 12.05.20 00:56, Kenneth Keefe wrote:
> > I am pretty new to using Jena and OWL. I have read many great tutorials
> > regarding RDF and OWL. The focus of those tutorials has largely been how
> to
> > structure the ontology and define restrictions on properties and such.
> > However, I have not been able to find good tutorials that explain how
> > inference is done and how I can define my own inference rules. I'm
> > wondering if I am simply not searching for the right thing.
> >
> > Regardless, here is a significant example that I think will really help
> me
> > get started with inference using Jena. I created a minimal example to
> > enable discussion. Here is a pastebin:  https://pastebin.com/ScTGcbcZ
> >
> > The ontology has two classes, RosterEntry and Person and three data
> > properties, Signature (associated with RosterEntry), and FirstName and
> > LastName (both associated with Person). The example also has two
> > RosterEntry individuals with signatures of "Bob Smith" and "Sally Jones."
> >
> > I would like to write a rule that causes Jena to infer the following new
> > facts:
> >
> > <owl:Individual>
> >>         <rdf:type
> >>             rdf:resource="http://example.com/ont/roster/Person"; />
> >>         <hasFirstName>Bob</hasFirstName>
> >         <hasLastName>Smith</hasLastName>
> >
> >     </owl:Individual>
> >
> >
> > <owl:Individual>
> >>         <rdf:type
> >>             rdf:resource="http://example.com/ont/roster/Person"; />
> >>         <hasFirstName>Sally</hasFirstName>
> >         <hasLastName>Jones</hasLastName>
> >
> >     </owl:Individual>
> >
> >
> > How do I do that? Full answers or nudges in the right direction are both
> > very welcome. Thank you!
> >
> > Ken
> >
>
>

-- 
-------
Ken Keefe
Senior Software Engineer
Information Trust Institute
University of Illinois at Urbana-Champaign
1308 W. Main St.
CSL 225
Urbana, Illinois 61801, USA
Phone: 217-244-3203
Web: https://www.perform.illinois.edu/~kjkeefe
Email: [email protected]

Reply via email to