For those with a more traditional data modeling background, the idea of a property (aka attribute) with no range or specified data value space seems counter-intuitive. Attributes must be integers or real numbers or pointers to other instances/individuals. However, the OWL language allows range-less properties ... and that can be quite powerful when used in combination with the OWL allValuesFrom restriction.
Take the concept of identification or identifiers as an example. In simple cases, a string is all that's required for an identifier. In other cases, the organization owning the identifier and the specification of its format are very important. So, in some cases a property with a string data type suffices while in others a reference to an instance/individual with properties of its own (e.g. owningOrganization) is required. Here's a diagram of this example:
The key is to use rdf:Property for the rangeless identification property and then to use subClassOf restrictions when to associate the property with an OWL class.
Friday 6 August 2010
Tuesday 2 March 2010
SPARQL for SysML/AP233 Transformations
I've had a little play with SPARQL to see how powerful a transformation engine it can be given the CONSTRUCT capability. It's actually pretty powerful! In a past life I was involved in the OMG/INCOSE/ISO mapping creating a SysML-to-AP233 mapping spec. I thought I'd try a little of that as a test case - here's a SysML Block with name mapped to AP233. Pretty clear, computer interpretable and requires no fancy MOF metamodel like the TGG tools (e.g. MOFLON) require. Worth considering ...
CONSTRUCT { _:s rdf:type ap233:System .
_:s ap233:name ?name .
_:sv rdf:type ap233:SystemVersion .
_:sv ap233:ofProduct _:s .
_:sv ap233:id "1" .
_:svd rdf:type ap233:SystemViewDefinition .
_:svd ap233:ofVersion _:sv .
_:ca rdf:type ap233:ClassificationAssignment .
_:ca ap233:items _:s .
_:ca ap233:externalClass <ap233:rd_block> .
}
WHERE {
?subject rdf:type sysml:Block .
?subject sysml:name ?name .
}
}
CONSTRUCT { _:s rdf:type ap233:System .
_:s ap233:name ?name .
_:sv rdf:type ap233:SystemVersion .
_:sv ap233:ofProduct _:s .
_:sv ap233:id "1" .
_:svd rdf:type ap233:SystemViewDefinition .
_:svd ap233:ofVersion _:sv .
_:ca rdf:type ap233:ClassificationAssignment .
_:ca ap233:items _:s .
_:ca ap233:externalClass <ap233:rd_block> .
}
WHERE {
?subject rdf:type sysml:Block .
?subject sysml:name ?name .
}
}
Saturday 27 February 2010
Working In The Semantic Web Now
I've moved to TopQuadrant to work in the field of Semantic Web technology. A particular interest of mine is applying that technology to engineering data. More to come as projects emerge...
Subscribe to:
Posts (Atom)