2011-05-22 9 views
7

Sé que esto suena como una pregunta muy estúpida, pero he estado tratando de resolver esto y no puedo encontrar nada sobre esto, aunque parece obvio que esto debería ser factible.Cómo consultar personas en DL Manchester OWL Sintaxis?

Estoy desarrollando algo que consulta un archivo OWL a través de su API utilizando la sintaxis OWL de Manchester y un razonador HermiT. Alternativamente, también realizo consultas en la pestaña Consulta de DL en Protege 4 para verificar los resultados de mi consulta en ese archivo. El archivo es básicamente la ontología Amigo de un amigo (FOAF) con instancias de datos adicionales.

El problema: no puedo encontrar una manera de consultar una instancia por su identificador único.

Se supone que es el URI, por ejemplo, para un objeto Persona con URI http://xmlns.com/foaf/0.1/Andrew_Kuchling, traté de ejecutar las siguientes consultas:

Person and URI value "http://xmlns.com/foaf/0.1/Andrew_Kuchling" 

Person value "http://xmlns.com/foaf/0.1/Andrew_Kuchling" 

Person and URI value "Andrew_Kuchling" 

Person that "Andrew_Kuchling" 

ninguno de estos trabajos. (El URI se construye con el prefijo http://xmlns.com/foaf/0.1/ en la cadena que ingrese y el URI no se identifica realmente en la ontología como una propiedad).

En FOAF, mbox_sha1sum es el sha1sum de un buzón. Los buzones están conectados de forma única a las personas. Así que probé la siguiente consulta:

Person and mbox_sha1sum value "mbox_sha1sum-property-value-here" 

Sin embargo, ni siquiera ejecutar esta consulta porque se siente la consulta es incorrecta. El valor mbox_sha1sum es el mismo que he agregado para esta persona. Existe en Individuos.

Lo hace ejecutar esta consulta:

tipos de datos
Person and firstName value "Andrew" 

Todas las propiedades de los datos no están especializados. Tratados como literales por defecto.

Realmente no sé lo que estoy haciendo mal. ¿Alguien puede por favor ayudar?

+0

** ¡Acepte la respuesta! ** – gsamaras

Respuesta

6

Sé que esta pregunta ha sido publicado hace más de un año, pero recientemente me hice la misma pregunta y encontré la siguiente solución:

Sólo hay que poner el nombre de la persona/miembro que desea consultar en el llaves:

{MyIndividualEntityName} 

de esta manera incluso se puede consultar para más de una persona a la vez:

{IndividualName1,IndividualName2} 

Tenga en cuenta que estas consultas forman expre clase de las llamadas llamadas enumarated classes. Esto significa que el resultado de esta consulta no será simplemente una lista de todas las súper o sub clases de todas las personas que ha nombrado en su consulta. En cambio, se refiere a una clase anónima que consta de exactamente las personas que ha enumerado. Una clase anónima es una clase que no está disponible desde fuera de su ontología, porque no hay una entidad de búfer referenciable para esta clase (no se hace referencia a IRI).

Puede encontrar más información sobre la sintaxis de OWL Manchester en el formato oficial W3C specification.

+0

¡Dios lo bendiga! Eso funciona. – gsamaras

Cuestiones relacionadas