EAM & Semantic Web und Apache Fuseki OWL-Reasoner

 

Aktuell arbeite ich an einer EAM-Ontologie, um aus wenigen Architektur-Informationen gewinnbrigende Aussagen ableiten zu können – dafür eignen sich die Mittel des Semantic-Web hervorragend. Ein typisches EAM-Fragestellung könnte lauten: Ermittle alle Abhängigkeiten einer Anwendung für die Modernisierungsplanung, ohne dafür die gesamte Anwendungslandschaft akribisch zu untersuchen und alle Elemente zu inventarisieren.

Mit der Kombination einer EAMOntologie auf OWL-Basis, einer EAM-Methodik und einem OWL-Reasoner ist diese Aussage auch alternativ ohne den vielen Excel-Inventarlisten zu schaffen. Elemetar wichtig ist jedoch Regeln zu hinterlegen, die bei jeder Abfrage implizit angewandt werden. Dafür sind im Semantic-Web Umfeld ja die Reasoner und das Inferencing zuständig,
Leider sind diese trotz OWL-Formulierung, -Ablage und SPARQL nicht immer im Standard konfiguriert und somit das Ergebnis nicht wirklich wie zu erwarten . Verwendet man z.B. Apache Fuseki Server (Jena Framework), so muss man die Standardkonfiguration ändern und explizit sagen, dass die gegebenen Fakten und formulierten Regeln durch eine Reasoner aufgelöst werden und damit implizite Aussagen getroffen werden können, ohne diese explizit erfasst zu haben oder Abfragen zu müssen. Dazu ein einfaches Beispiel:

Die Anwender sprechen gerne von Linux-Rechner wenn sie eine bestimmte Hardware meinen, die IT spricht jedoch von konkreter Hardware-Architektur oder  Virtual-Maschinen, die ja eine Rechner-Architektur emulieren kann. Soll die konkrete Frage beantwortet werden, welche Runtime-Umgebung für eine Software zum Einsatz kommen kann, so sollten dann auch alle in der Firma vorhandene VMs auflistet werden und nicht nur die Rechner der gegebenen Architektur.

In OWL-könnte man den Äquivalenz-Ausdruck anwenden und dazu folgende Formulierung wählen:

</rdf:RDF>
  <owl:Ontology rdf:about="computer"/>
  <owl:Class rdf:ID="CPUx86"/>
  <owl:Class rdf:ID="VirtualMachine">
    <owl:equivalentClass  rdf:resource="#CPUx86"/>
  </owl:Class>
  <j.0:CPUx86 rdf:about="#DellPowerEdge"/>
  <j.0:VirtualMachine rdf:about="#OracleVirtualBox"/>
</rdf:RDF>

Damit wird gesagt, dass die OracleVirtualBox auch für das Hosting verwendbar ist nun nicht nur der DELL-PowerEdge Server. Als Ergebnis erwartet man mit der SPARQL-Query:

SELECT ?subject ?object
WHERE { ?subject a ts:CPUx86 }

--------------------------------
| subject             | object |
================================
| ts:DellPowerEdge    |        |
| ts:OracleVirtualBox |        |
--------------------------------

Das Ergebnis ohne OWLReasoner ist jedoch: 

--------------------------------
| subject             | object |
================================
| ts:DellPowerEdge    |        |
--------------------------------

In Fuseki muss dazu in der config.ttl Datei folgender Eintrag zugefügt werde, um das gewünschte Ergebnis zu erhalten:

 

<#service4> rdf:type fuseki:Service ;

    # URI of the dataset — http://host:port/ts

    fuseki:name                        "ts" ;

    fuseki:serviceQuery                "sparql" ;

    fuseki:serviceQuery                "query" ;

    fuseki:serviceUpdate               "update" ;

    fuseki:serviceUpload               "upload" ;

    fuseki:serviceReadWriteGraphStore  "data" ;    
    fuseki:serviceReadGraphStore       "get" ;

    fuseki:dataset                     <#computerDataset> ;

    .

<#computerDataset>    rdf:type ja:RDFDataset ;

    rdfs:label "T-EAM" ;

    ja:defaultGraph

      [ rdfs:label "TEAM" ;   
        a ja:InfModel;

        ja:content [ja:externalContent <file:Data/computer.owl> ] ;

       ja:reasoner  [ ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];

      ] ;

    .

fuseki:services (

  <#service1>

  <#service2>

  <#service3>

  <#service4>

) .

 

Zudem muss nun der Server mit der angelegten Konfiguration gestartet werden

./fuseki-server –update –config=config.ttl /ts

Advertisements

~ von bmaier - 16. Juni 2013.

Kommentar verfassen

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

 
%d Bloggern gefällt das: